[Libsysio-commit] HEAD: libsysio/drivers/native fs_native.c
Brought to you by:
lward
|
From: Ruth K. <rk...@us...> - 2003-08-14 18:50:18
|
Update of /cvsroot/libsysio/libsysio/drivers/native
In directory sc8-pr-cvs1:/tmp/cvs-serv16191/drivers/native
Modified Files:
fs_native.c
Log Message:
merge cplant branch into head
Index: fs_native.c
===================================================================
RCS file: /cvsroot/libsysio/libsysio/drivers/native/fs_native.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -w -b -B -p -r1.15 -r1.16
--- fs_native.c 4 Aug 2003 15:30:27 -0000 1.15
+++ fs_native.c 14 Aug 2003 18:39:33 -0000 1.16
@@ -116,9 +116,19 @@ do {
(dest)->st_gen = (src)->st_gen; \
} while (0);
+/* SYS_lseek has a different interface on alpha
+ */
+#define CALL_LSEEK(fd, off, rc, wh) \
+ (rc = syscall(SYS_lseek, fd, off, wh))
+
#else
+
#define __native_stat intnl_stat
#define COPY_STAT(src, dest) *(dest) = *(src)
+
+#define CALL_LSEEK(fd, off, rc, wh) \
+ (syscall(SYS_lseek, fd, off, &rc, wh))
+
#endif
#if defined(USE_NATIVE_STAT)
@@ -293,10 +303,12 @@ static int
native_fstat(int fd, struct intnl_stat *buf)
{
int err;
+ struct __native_stat stbuf;
- err = syscall(__SYS_FSTAT, fd, buf);
+ err = syscall(__SYS_FSTAT, fd, &stbuf);
if (err)
err = -errno;
+ COPY_STAT(&stbuf, buf);
return err;
}
@@ -829,10 +841,9 @@ native_getdirentries(struct inode *ino,
result = *basep;
if (*basep != nino->ni_fpos &&
- syscall(SYS_lseek,
- nino->ni_fd,
+ CALL_LSEEK(nino->ni_fd,
*basep,
- &result,
+ result,
SEEK_SET) == -1)
return -errno;
nino->ni_fpos = result;
@@ -1075,10 +1086,9 @@ doio(ssize_t (*f)(int, const struct iove
!(S_ISCHR(ino->i_mode) ||
S_ISSOCK(ino->i_mode) ||
S_ISFIFO(ino->i_mode)) &&
- syscall(SYS_lseek,
- nino->ni_fd,
+ CALL_LSEEK(nino->ni_fd,
ioctx->ioctx_offset,
- &result,
+ result,
SEEK_SET) == -1) {
ioctx->ioctx_cc = -1;
ioctx->ioctx_errno = errno;
|