[Libsysio-commit] HEAD: libsysio/include dev.h inode.h
Brought to you by:
lward
From: Lee W. <lw...@us...> - 2008-07-11 18:24:02
|
Update of /cvsroot/libsysio/libsysio/include In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14678/include Modified Files: dev.h inode.h Log Message: Complete, finally, the change to use pnodes everywhere. Not ported to the new scheme were; sockets, yod, and incore driver. Index: dev.h =================================================================== RCS file: /cvsroot/libsysio/libsysio/include/dev.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -w -b -B -p -r1.12 -r1.13 --- dev.h 9 May 2007 23:16:20 -0000 1.12 +++ dev.h 11 Jul 2008 18:23:57 -0000 1.13 @@ -73,15 +73,13 @@ extern const struct inode_ops _sysio_nod const char *))_sysio_do_illop #define _sysio_nodev_inop_getattr \ (int (*)(struct pnode *, \ - struct inode *, \ struct intnl_stat *))_sysio_do_ebadf #define _sysio_nodev_inop_setattr \ (int (*)(struct pnode *, \ - struct inode *, \ unsigned , \ struct intnl_stat *))_sysio_do_ebadf #define _sysio_nodev_filldirentries \ - (ssize_t (*)(struct inode *, \ + (ssize_t (*)(struct pnode *, \ _SYSIO_OFF_T *, \ char *, \ size_t))_sysio_do_illop @@ -102,7 +100,7 @@ extern const struct inode_ops _sysio_nod int, \ mode_t))_sysio_do_enodev #define _sysio_nodev_inop_close \ - (int (*)(struct inode *))_sysio_do_ebadf + (int (*)(struct pnode *))_sysio_do_ebadf #define _sysio_nodev_inop_link \ (int (*)(struct pnode *, struct pnode *))_sysio_do_illop #define _sysio_nodev_inop_unlink \ @@ -110,26 +108,24 @@ extern const struct inode_ops _sysio_nod #define _sysio_nodev_inop_rename \ (int (*)(struct pnode *, struct pnode *))_sysio_do_illop #define _sysio_nodev_inop_read \ - (int (*)(struct inode *, \ - struct ioctx *))_sysio_do_ebadf + (int (*)(struct ioctx *))_sysio_do_ebadf #define _sysio_nodev_inop_write \ - (int (*)(struct inode *, \ - struct ioctx *))_sysio_do_ebadf + (int (*)(struct ioctx *))_sysio_do_ebadf #define _sysio_nodev_inop_pos \ - (_SYSIO_OFF_T (*)(struct inode *, _SYSIO_OFF_T))_sysio_do_ebadf + (_SYSIO_OFF_T (*)(struct pnode *, _SYSIO_OFF_T))_sysio_do_ebadf #define _sysio_nodev_inop_iodone \ (int (*)(struct ioctx *))_sysio_do_einval #define _sysio_nodev_inop_fcntl \ - (int (*)(struct inode *, \ + (int (*)(struct pnode *, \ int, \ va_list, \ int *))_sysio_do_ebadf #define _sysio_nodev_inop_sync \ - (int (*)(struct inode *))_sysio_do_ebadf + (int (*)(struct pnode *))_sysio_do_ebadf #define _sysio_nodev_inop_datasync \ - (int (*)(struct inode *))_sysio_do_ebadf + (int (*)(struct pnode *))_sysio_do_ebadf #define _sysio_nodev_inop_ioctl \ - (int (*)(struct inode *, \ + (int (*)(struct pnode *, \ unsigned long int, \ va_list))_sysio_do_ebadf #define _sysio_nodev_inop_mknod \ @@ -139,11 +135,10 @@ extern const struct inode_ops _sysio_nod #ifdef _HAVE_STATVFS #define _sysio_nodev_inop_statvfs \ (int (*)(struct pnode *, \ - struct inode *, \ struct intnl_statvfs *))_sysio_do_illop #endif #define _sysio_nodev_inop_gone \ - (void (*)(struct inode *ino))_sysio_do_noop + (void (*)(struct inode *))_sysio_do_noop extern int _sysio_dev_init(void); extern dev_t _sysio_dev_alloc(void); Index: inode.h =================================================================== RCS file: /cvsroot/libsysio/libsysio/include/inode.h,v retrieving revision 1.40 retrieving revision 1.41 diff -u -w -b -B -p -r1.40 -r1.41 --- inode.h 11 Jul 2008 16:48:01 -0000 1.40 +++ inode.h 11 Jul 2008 18:23:57 -0000 1.41 @@ -79,17 +79,14 @@ struct ioctx; */ struct inode_ops { int (*inop_lookup)(struct pnode *pno, - struct inode **inop, + struct inode **ino, struct intent *intnt, const char *path); - int (*inop_getattr)(struct pnode *pno, - struct inode *ino, - struct intnl_stat *stbuf); + int (*inop_getattr)(struct pnode *pno, struct intnl_stat *stbuf); int (*inop_setattr)(struct pnode *pno, - struct inode *ino, unsigned mask, struct intnl_stat *stbuf); - ssize_t (*inop_filldirentries)(struct inode *ino, + ssize_t (*inop_filldirentries)(struct pnode *pno, _SYSIO_OFF_T *posp, char *buf, size_t nbytes); @@ -98,23 +95,21 @@ struct inode_ops { int (*inop_symlink)(struct pnode *pno, const char *data); int (*inop_readlink)(struct pnode *pno, char *buf, size_t bufsiz); int (*inop_open)(struct pnode *pno, int flags, mode_t mode); - int (*inop_close)(struct inode *ino); + int (*inop_close)(struct pnode *pno); int (*inop_link)(struct pnode *old, struct pnode *new); int (*inop_unlink)(struct pnode *pno); int (*inop_rename)(struct pnode *old, struct pnode *new); - int (*inop_read)(struct inode *ino, struct ioctx *ioctx); - int (*inop_write)(struct inode *ino, struct ioctx *ioctx); - _SYSIO_OFF_T (*inop_pos)(struct inode *ino, _SYSIO_OFF_T off); - int (*inop_iodone)(struct ioctx *iocp); - int (*inop_fcntl)(struct inode *ino, int cmd, va_list ap, int *rtn); - int (*inop_sync)(struct inode *ino); - int (*inop_datasync)(struct inode *ino); - int (*inop_ioctl)(struct inode *ino, unsigned long int request, va_list ap); + int (*inop_read)(struct ioctx *ioctx); + int (*inop_write)(struct ioctx *ioctx); + _SYSIO_OFF_T (*inop_pos)(struct pnode *pno, _SYSIO_OFF_T off); + int (*inop_iodone)(struct ioctx *ioctx); + int (*inop_fcntl)(struct pnode *pno, int cmd, va_list ap, int *rtn); + int (*inop_sync)(struct pnode *pno); + int (*inop_datasync)(struct pnode *pno); + int (*inop_ioctl)(struct pnode *pno, unsigned long int request, va_list ap); int (*inop_mknod)(struct pnode *pno, mode_t mode, dev_t dev); #ifdef _HAVE_STATVFS - int (*inop_statvfs)(struct pnode *pno, - struct inode *ino, - struct intnl_statvfs *buf); + int (*inop_statvfs)(struct pnode *pno, struct intnl_statvfs *buf); #endif void (*inop_gone)(struct inode *ino); }; @@ -509,13 +504,12 @@ struct pnode { #define PNOP_LOOKUP(_pno, _inop, _intnt, _path) \ _PNOP_MKCALL((_pno), lookup, (_pno), (_inop), (_intnt), (_path)) #define PNOP_GETATTR(_pno, _stbuf) \ - _PNOP_CALL((_pno), getattr, (_pno), (_pno)->p_base->pb_ino, (_stbuf)) + _PNOP_CALL((_pno), getattr, (_pno), (_stbuf)) #define PNOP_SETATTR(_pno, _mask, _stbuf) \ _PNOP_CALL((_pno), setattr, \ - (_pno), (_pno)->p_base->pb_ino, (_mask), (_stbuf)) + (_pno), (_mask), (_stbuf)) #define PNOP_FILLDIRENTRIES(_pno, _posp, _buf, _nbytes) \ - _PNOP_CALL((_pno), filldirentries, \ - (_pno)->p_base->pb_ino, (_posp), (_buf), (_nbytes)) + _PNOP_CALL((_pno), filldirentries, (_pno), (_posp), (_buf), (_nbytes)) #define PNOP_MKDIR(_pno, _mode) \ _PNOP_MKCALL((_pno), mkdir, (_pno), (_mode)) #define PNOP_RMDIR(_pno) \ @@ -527,37 +521,35 @@ struct pnode { #define PNOP_OPEN(_pno, _flags, _mode) \ _PNOP_MKCALL((_pno), open, (_pno), (_flags), (_mode)) #define PNOP_CLOSE(_pno) \ - _PNOP_CALL((_pno), close, (_pno)->p_base->pb_ino) + _PNOP_CALL((_pno), close, (_pno)) #define PNOP_LINK(_old, _new) \ _PNOP_CALL((_old), link, (_old), (_new)) #define PNOP_UNLINK(_pno) \ _PNOP_CALL((_pno), unlink, (_pno)) #define PNOP_RENAME(_old, _new) \ _PNOP_CALL((_old), rename, (_old), (_new)) -#define PNOP_READ(_pno, _ioctx) \ - _PNOP_CALL((_pno), read, (_pno)->p_base->pb_ino, (_ioctx)) -#define PNOP_WRITE(_pno, _ioctx) \ - _PNOP_CALL((_pno), write, (_pno)->p_base->pb_ino, (_ioctx)) +#define PNOP_READ(_ioctx) \ + _PNOP_CALL((_ioctx)->ioctx_pno, read, (_ioctx)) +#define PNOP_WRITE(_ioctx) \ + _PNOP_CALL((_ioctx)->ioctx_pno, write, (_ioctx)) #define PNOP_POS(_pno, _off) \ - _PNOP_CALL((_pno), pos, (_pno)->p_base->pb_ino, (_off)) -#define PNOP_IODONE(_pno, _ioctx) \ - _PNOP_CALL((_pno), iodone, (_ioctx)) + _PNOP_CALL((_pno), pos, (_pno), (_off)) +#define PNOP_IODONE(_ioctx) \ + _PNOP_CALL((_ioctx)->ioctx_pno, iodone, (_ioctx)) #define PNOP_FCNTL(_pno, _cmd, _ap, _rtn) \ - _PNOP_CALL((_pno), fcntl, (_pno)->p_base->pb_ino, (_cmd), (_ap), (_rtn)) + _PNOP_CALL((_pno), fcntl, (_pno), (_cmd), (_ap), (_rtn)) #define PNOP_SYNC(_pno) \ - _PNOP_CALL((_pno), sync, (_pno)->p_base->pb_ino) + _PNOP_CALL((_pno), sync, (_pno)) #define PNOP_DATASYNC(_pno) \ - _PNOP_CALL((_pno), datasync, (_pno)->p_base->pb_ino) + _PNOP_CALL((_pno), datasync, (_pno)) #define PNOP_IOCTL(_pno, _request, _ap) \ - _PNOP_CALL((_pno), ioctl, (_pno)->p_base->pb_ino, (_request), (_ap)) + _PNOP_CALL((_pno), ioctl, (_pno), (_request), (_ap)) #define PNOP_MKNOD(_pno, _mode, _dev) \ _PNOP_MKCALL((_pno), mknod, (_pno), (_mode), (_dev)) #ifdef _HAVE_STATVFS #define PNOP_STATVFS(_pno, _buf) \ - _PNOP_CALL((_pno), statvfs, (_pno), (_pno)->p_base->pb_ino, (_buf)) + _PNOP_CALL((_pno), statvfs, (_pno), (_buf)) #endif -#define PNOP_GONE(_pno) \ - _PNOP_CALL((_pno), gone, (_pno)->p_base->pb_ino) /* * An intent record allows callers of namei and lookup to pass some information @@ -650,10 +642,7 @@ struct ioctx { ioctx_fast : 1, /* from stack space */ ioctx_done : 1, /* transfer complete */ ioctx_write : 1; /* op is a write */ -#ifdef not_yet struct pnode *ioctx_pno; /* p-node */ -#endif - struct inode *ioctx_ino; /* i-node (deprecate) */ const struct iovec *ioctx_iov; /* scatter/gather vec */ size_t ioctx_iovlen; /* iovec length */ const struct intnl_xtvec *ioctx_xtv; /* extents */ @@ -672,7 +661,7 @@ struct ioctx { (ioctx)->ioctx_fast = (fast); \ (ioctx)->ioctx_done = 0; \ (ioctx)->ioctx_write = (wr) ? 1 : 0; \ - (ioctx)->ioctx_ino = (pno)->p_base->pb_ino; \ + (ioctx)->ioctx_pno = (pno); \ (ioctx)->ioctx_iov = (iov); \ (ioctx)->ioctx_iovlen = (iovlen); \ (ioctx)->ioctx_xtv = (xtv); \ |