[Libsysio-commit] cplant: libsysio/drivers/yod fs_yod.c
Brought to you by:
lward
From: Ruth K. <rk...@us...> - 2003-05-01 22:52:51
|
Update of /cvsroot/libsysio/libsysio/drivers/yod In directory sc8-pr-cvs1:/tmp/cvs-serv29533 Modified Files: Tag: cplant fs_yod.c Log Message: Remove dependency on cplant include file, fix warnings Index: fs_yod.c =================================================================== RCS file: /cvsroot/libsysio/libsysio/drivers/yod/Attic/fs_yod.c,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -w -b -B -p -r1.1.2.3 -r1.1.2.4 --- fs_yod.c 1 May 2003 15:44:42 -0000 1.1.2.3 +++ fs_yod.c 1 May 2003 22:52:46 -0000 1.1.2.4 @@ -74,11 +74,13 @@ * Remote file system driver * calls are re-directed to the initiating yod */ +#include "cplant-yod.h" /* stat struct used by yod, which * is not compiled with __USE_FILE_OFFSET64 */ #define __yod_stat stat +#ifdef ALPHA_LINUX #define COPY_STAT(src, dest) \ do { \ memset((dest), 0, sizeof((*dest))); \ @@ -98,6 +100,25 @@ do { (dest)->st_flags = (src)->st_flags; \ (dest)->st_gen = (src)->st_gen; \ } while (0); +#else +#define COPY_STAT(src, dest) \ +do { \ + memset((dest), 0, sizeof((*dest))); \ + (dest)->st_dev = (src)->st_dev; \ + (dest)->st_ino = (src)->st_ino; \ + (dest)->st_mode = (src)->st_mode; \ + (dest)->st_nlink = (src)->st_nlink; \ + (dest)->st_uid = (src)->st_uid; \ + (dest)->st_gid = (src)->st_gid; \ + (dest)->st_rdev = (src)->st_rdev; \ + (dest)->st_size = (src)->st_size; \ + (dest)->st_atime = (src)->st_atime; \ + (dest)->st_mtime = (src)->st_mtime; \ + (dest)->st_ctime = (src)->st_ctime; \ + (dest)->st_blksize = (src)->st_blksize; \ + (dest)->st_blocks = (src)->st_blocks; \ +} while (0); +#endif /* * Yod file identifiers format. @@ -238,10 +259,12 @@ static int yod_fstat(int fd, struct intnl_stat *buf) { int err; + struct __yod_stat stbuf; - err = fstat_yod(fd, buf); + err = fstat_yod(fd, &stbuf); if (err) err = -errno; + COPY_STAT(&stbuf, buf); return err; } @@ -715,14 +738,12 @@ yod_getdirentries(struct inode *ino, result = *basep; if (*basep != nino->ni_fpos && - lseek_yod( - nino->ni_fd, + (result = lseek_yod(nino->ni_fd, *basep, - &result, - SEEK_SET) == -1) + SEEK_SET) == -1)) return -errno; nino->ni_fpos = result; - cc = getdirentries_yod(nino->ni_fd, buf, nbytes); + cc = getdirentries_yod(nino->ni_fd, buf, nbytes, &result); if (cc < 0) return -errno; nino->ni_fpos += cc; @@ -952,11 +973,9 @@ doio(ssize_t (*f)(int, const struct iove !(S_ISCHR(ino->i_mode) || S_ISSOCK(ino->i_mode) || S_ISFIFO(ino->i_mode)) && - lseek_yod( - nino->ni_fd, + (result = lseek_yod(nino->ni_fd, ioctx->ioctx_offset, - &result, - SEEK_SET) == -1) { + SEEK_SET) == -1)) { ioctx->ioctx_cc = -1; ioctx->ioctx_errno = errno; } else { @@ -983,8 +1002,14 @@ doio(ssize_t (*f)(int, const struct iove static ssize_t _readv(int fd, const struct iovec *vector, int count) { + int i; + ssize_t total; - return read_yod(fd, vector, count); + for (i = 0; i < count; i++) + total += read_yod(fd, + vector[i].iov_base, + vector[i].iov_len); + return total; } static int @@ -1032,7 +1057,7 @@ yod_inop_iodone(struct ioctx *ioctxp __I } static int -yod_inop_fcntl(struct inode *ino, int cmd, va_list ap) +yod_inop_fcntl(struct inode *ino __IS_UNUSED, int cmd, va_list ap __IS_UNUSED) { switch (cmd) { |