[Libsysio-commit] HEAD: libsysio/include dev.h inode.h sysio.h
Brought to you by:
lward
|
From: Lee W. <lw...@us...> - 2003-09-27 20:23:10
|
Update of /cvsroot/libsysio/libsysio/include
In directory sc8-pr-cvs1:/tmp/cvs-serv6348/include
Modified Files:
dev.h inode.h sysio.h
Log Message:
- Better checking during chdir().
- Added _sysio_p_chdir() to call change working directory with a pnode.
- test_path.c doesn't follow symlinks anymore.
- sysio_stubs.c defined a bunch of disk ioctl's inappropriately. Removed.
- Added fchmod(), fchown(), rename(), link(), utime().
Index: dev.h
===================================================================
RCS file: /cvsroot/libsysio/libsysio/include/dev.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -b -B -p -r1.2 -r1.3
--- dev.h 24 Mar 2003 22:09:04 -0000 1.2
+++ dev.h 27 Sep 2003 19:42:02 -0000 1.3
@@ -70,71 +70,75 @@ extern const struct inode_ops _sysio_nod
(int (*)(struct pnode *, \
struct inode **, \
struct intent *, \
- const char *))_sysio_dev_e_notdir
+ const char *))_sysio_dev_illop
#define _sysio_nodev_inop_getattr \
(int (*)(struct pnode *, \
struct inode *, \
- struct intnl_stat *))_sysio_dev_e_badf
+ struct intnl_stat *))_sysio_dev_illop
#define _sysio_nodev_inop_setattr \
(int (*)(struct pnode *, \
struct inode *, \
unsigned , \
- struct intnl_stat *))_sysio_dev_e_badf
+ struct intnl_stat *))_sysio_dev_illop
#define _sysio_nodev_getdirentries \
(ssize_t (*)(struct inode *, \
char *, \
size_t , \
- off64_t *))_sysio_dev_e_notdir
+ off64_t *))_sysio_dev_illop
#define _sysio_nodev_inop_mkdir \
(int (*)(struct pnode *, \
- mode_t))_sysio_dev_e_notdir
+ mode_t))_sysio_dev_illop
#define _sysio_nodev_inop_rmdir \
- (int (*)(struct pnode *))_sysio_dev_e_notdir
+ (int (*)(struct pnode *))_sysio_dev_illop
#define _sysio_nodev_inop_symlink \
(int (*)(struct pnode *, \
- const char *))_sysio_dev_e_notdir
+ const char *))_sysio_dev_illop
#define _sysio_nodev_inop_readlink \
(int (*)(struct pnode *, \
char *, \
- size_t))_sysio_dev_e_inval
+ size_t))_sysio_dev_illop
#define _sysio_nodev_inop_open \
(int (*)(struct pnode *, \
int, \
- mode_t))_sysio_dev_e_nxio
+ mode_t))_sysio_dev_illop
#define _sysio_nodev_inop_close \
- (int (*)(struct inode *))_sysio_dev_e_badf
+ (int (*)(struct inode *))_sysio_dev_illop
+#define _sysio_nodev_inop_link \
+ (int (*)(struct pnode *, struct pnode *))_sysio_dev_illop
#define _sysio_nodev_inop_unlink \
- (int (*)(struct pnode *))_sysio_dev_e_notdir
+ (int (*)(struct pnode *))_sysio_dev_illop
+#define _sysio_nodev_inop_rename \
+ (int (*)(struct pnode *, struct pnode *))_sysio_dev_illop
#define _sysio_nodev_inop_ipreadv \
(int (*)(struct inode *, \
struct io_arguments *, \
- struct ioctx **))_sysio_dev_e_inval
+ struct ioctx **))_sysio_dev_illop
#define _sysio_nodev_inop_ipwritev \
(int (*)(struct inode *, \
struct io_arguments *, \
- struct ioctx **))_sysio_dev_e_inval
+ struct ioctx **))_sysio_dev_illop
#define _sysio_nodev_inop_iodone \
- (int (*)(struct ioctx *))_sysio_dev_e_illop
+ (int (*)(struct ioctx *))_sysio_dev_illop
#define _sysio_nodev_inop_fcntl \
(int (*)(struct inode *, \
int, \
- va_list))_sysio_dev_e_inval
+ va_list))_sysio_dev_illop
#define _sysio_nodev_inop_sync \
- (int (*)(struct inode *))_sysio_dev_e_inval
+ (int (*)(struct inode *))_sysio_dev_illop
#define _sysio_nodev_inop_datasync \
- (int (*)(struct inode *))_sysio_dev_e_inval
+ (int (*)(struct inode *))_sysio_dev_illop
#define _sysio_nodev_inop_ioctl \
(int (*)(struct inode *, \
unsigned long int, \
- va_list))_sysio_dev_e_notty
+ va_list))_sysio_dev_illop
#define _sysio_nodev_inop_mknod \
(int (*)(struct pnode *, \
mode_t, \
- dev_t))_sysio_dev_e_notdir
+ dev_t))_sysio_dev_illop
#define _sysio_nodev_inop_statvfs \
(int (*)(struct pnode *, \
struct inode *, \
- struct intnl_statvfs *))_sysio_dev_e_inval
+ struct intnl_statvfs *))_sysio_dev_illop
#define _sysio_nodev_inop_gone \
(void (*)(struct inode *ino))_sysio_dev_noop
@@ -144,10 +148,5 @@ extern struct inode_ops *_sysio_dev_look
extern int _sysio_char_dev_register(int major,
const char *name,
struct inode_ops *ops);
-extern int _sysio_dev_e_notdir(void);
-extern int _sysio_dev_e_badf(void);
-extern int _sysio_dev_e_inval(void);
-extern int _sysio_dev_e_nxio(void);
-extern int _sysio_dev_e_illop(void);
-extern int _sysio_dev_e_notty(void);
+extern int _sysio_dev_illop(void);
extern void _sysio_dev_noop(void);
Index: inode.h
===================================================================
RCS file: /cvsroot/libsysio/libsysio/include/inode.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -w -b -B -p -r1.8 -r1.9
--- inode.h 21 Aug 2003 19:48:37 -0000 1.8
+++ inode.h 27 Sep 2003 19:42:02 -0000 1.9
@@ -94,7 +94,9 @@ struct inode_ops {
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_link)(struct pnode *old, struct pnode *new);
int (*inop_unlink)(struct pnode *pno);
+ int (*inop_rename)(struct pnode *old, struct pnode *new);
int (*inop_ipreadv)(struct inode *ino,
struct io_arguments *ioargs,
struct ioctx **ioctxp);
@@ -441,6 +443,7 @@ extern int _sysio_namei(struct pnode *pn
unsigned flags,
struct intent *intnt,
struct pnode **pnop);
+extern int _sysio_p_chdir(struct pnode *pno);
extern int _sysio_ioctx_init(void);
extern struct ioctx *_sysio_ioctx_new(struct inode *ino,
struct io_arguments *ioargs);
Index: sysio.h
===================================================================
RCS file: /cvsroot/libsysio/libsysio/include/sysio.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -w -b -B -p -r1.8 -r1.9
--- sysio.h 29 Jul 2003 19:53:33 -0000 1.8
+++ sysio.h 27 Sep 2003 19:42:02 -0000 1.9
@@ -110,6 +110,8 @@ struct stat;
struct statvfs;
struct iovec;
+struct utimbuf;
+
struct pnode;
extern struct pnode *_sysio_cwd;
@@ -127,7 +129,9 @@ extern void _sysio_shutdown(void);
extern int access(const char *path, int amode);
extern int chdir(const char *path);
extern int chmod(const char *path, mode_t mode);
+extern int fchmod(int fd, mode_t mode);
extern int chown(const char *path, uid_t owner, gid_t group);
+extern int fchown(int fd, uid_t owner, gid_t group);
extern int close(int d);
extern int dup(int oldfd);
extern int dup2(int oldfd, int newfd);
@@ -148,7 +152,9 @@ extern int truncate(const char *path, of
extern int fstatvfs(int fd, struct statvfs *buf);
extern int rmdir(const char *path);
extern int symlink(const char *path1, const char *path2);
+extern int link(const char *oldpath, const char *newpath);
extern int unlink(const char *path);
+extern int rename(const char *oldpath, const char *newpath);
extern int fdatasync(int fd);
extern int ioctl(int fd, unsigned long request, ...);
extern mode_t umask(mode_t mask);
@@ -176,6 +182,7 @@ extern ioid_t iwrite(int fd, const void
extern ssize_t writev(int fd, const struct iovec *iov, int count);
extern ssize_t write(int fd, const void *buf, size_t count);
extern int mknod(const char *path, mode_t mode, dev_t dev);
+extern int utime(const char *path, const struct utimbuf *buf);
extern int mount(const char *source, const char *target,
const char *filesystemtype,
unsigned long mountflags,
|