SCCS-vsn: sys/stand.att/lseek.c 7.1
--- /dev/null
+/*-
+ * Copyright (c) 1982, 1988 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * %sccs.include.proprietary.c%
+ *
+ * @(#)lseek.c 7.1 (Berkeley) %G%
+ */
+
+#include <sys/param.h>
+#include "saio.h"
+
+lseek(fdesc, addr, ptr)
+ int fdesc, ptr;
+ off_t addr;
+{
+ register struct iob *io;
+
+#ifndef SMALL
+ if (ptr != L_SET) {
+ printf("Seek not from beginning of file\n");
+ errno = EOFFSET;
+ return (-1);
+ }
+#endif
+ fdesc -= 3;
+#ifndef SMALL
+ if (fdesc < 0 || fdesc >= SOPEN_MAX ||
+ ((io = &iob[fdesc])->i_flgs & F_ALLOC) == 0) {
+ errno = EBADF;
+ return (-1);
+ }
+#endif
+ io->i_offset = addr;
+ io->i_bn = addr / DEV_BSIZE;
+ io->i_cc = 0;
+ return (0);
+}