[Libsysio-commit] HEAD: libsysio/dev/stdfd stdfd.c
Brought to you by:
lward
From: Lee W. <lw...@us...> - 2008-07-11 18:24:02
|
Update of /cvsroot/libsysio/libsysio/dev/stdfd In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14678/dev/stdfd Modified Files: stdfd.c Log Message: Complete, finally, the change to use pnodes everywhere. Not ported to the new scheme were; sockets, yod, and incore driver. Index: stdfd.c =================================================================== RCS file: /cvsroot/libsysio/libsysio/dev/stdfd/stdfd.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -w -b -B -p -r1.15 -r1.16 --- stdfd.c 17 Jun 2008 15:10:39 -0000 1.15 +++ stdfd.c 11 Jul 2008 18:23:56 -0000 1.16 @@ -77,13 +77,13 @@ */ static int stdfd_open(struct pnode *pno, int flags, mode_t mode); -static int stdfd_close(struct inode *ino); -static int stdfd_read(struct inode *ino, struct ioctx *ioctx); -static int stdfd_write(struct inode *ino, struct ioctx *ioctx); +static int stdfd_close(struct pnode *pno); +static int stdfd_read(struct ioctx *ioctx); +static int stdfd_write(struct ioctx *ioctx); static int stdfd_iodone(struct ioctx *ioctx); -static int stdfd_datasync(struct inode *ino); -static int stdfd_fcntl(struct inode *ino, int cmd, va_list ap, int *rtn); -static int stdfd_ioctl(struct inode *ino, +static int stdfd_datasync(struct pnode *pno); +static int stdfd_fcntl(struct pnode *pno, int cmd, va_list ap, int *rtn); +static int stdfd_ioctl(struct pnode *pno, unsigned long int request, va_list ap); @@ -122,7 +122,7 @@ stdfd_open(struct pnode *pno __IS_UNUSED } static int -stdfd_close(struct inode *ino __IS_UNUSED) +stdfd_close(struct pnode *pno __IS_UNUSED) { return 0; @@ -130,9 +130,9 @@ stdfd_close(struct inode *ino __IS_UNUSE static int doio(ssize_t (*f)(void *, size_t, _SYSIO_OFF_T, struct inode *), - struct inode *ino, struct ioctx *ioctx) { + struct inode *ino; if (ioctx->ioctx_xtvlen != 1) { /* @@ -141,6 +141,8 @@ doio(ssize_t (*f)(void *, size_t, _SYSIO */ return -EINVAL; } + ino = ioctx->ioctx_pno->p_base->pb_ino; + assert(ino); ioctx->ioctx_cc = _sysio_doio(ioctx->ioctx_xtv, ioctx->ioctx_xtvlen, ioctx->ioctx_iov, ioctx->ioctx_iovlen, @@ -169,10 +171,10 @@ stdfd_read_simple(void *buf, } static int -stdfd_read(struct inode *ino, struct ioctx *ioctx) +stdfd_read(struct ioctx *ioctx) { - return doio(stdfd_read_simple, ino, ioctx); + return doio(stdfd_read_simple, ioctx); } static ssize_t @@ -191,19 +193,18 @@ stdfd_write_simple(const void *buf, } static int -stdfd_write(struct inode *ino, struct ioctx *ioctx) +stdfd_write(struct ioctx *ioctx) { return doio((ssize_t (*)(void *, size_t, _SYSIO_OFF_T, struct inode *))stdfd_write_simple, - ino, ioctx); } static int -stdfd_iodone(struct ioctx *iocp __IS_UNUSED) +stdfd_iodone(struct ioctx *ioctx __IS_UNUSED) { /* @@ -213,15 +214,19 @@ stdfd_iodone(struct ioctx *iocp __IS_UNU } static int -stdfd_fcntl(struct inode *ino, +stdfd_fcntl(struct pnode *pno, int cmd, va_list ap, int *rtn) { + struct inode *ino; + int fd; int err; - int fd = SYSIO_MINOR_DEV(ino->i_stbuf.st_rdev); long arg; + ino = pno->p_base->pb_ino; + assert(ino); + fd = SYSIO_MINOR_DEV(ino->i_stbuf.st_rdev); err = 0; switch (cmd) { case F_GETFL: @@ -244,7 +249,7 @@ stdfd_fcntl(struct inode *ino, } static int -stdfd_datasync(struct inode *ino __IS_UNUSED) +stdfd_datasync(struct pnode *pno __IS_UNUSED) { /* @@ -254,7 +259,7 @@ stdfd_datasync(struct inode *ino __IS_UN } static int -stdfd_ioctl(struct inode *ino __IS_UNUSED, +stdfd_ioctl(struct pnode *pno __IS_UNUSED, unsigned long int request __IS_UNUSED, va_list ap __IS_UNUSED) { |