Replaced opendir.c with directory.c, implemented chdir(), fchdir(), and

getcwd().
Introduced new xyz(int fd, char *path, ...) style of functions for
sys_setcwd(), and sys_write_stat().
Added missing sys_fstat(). Removed duplicated prototypes in syscalls.h
Fixed some minor bugs.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@669 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2002-08-09 20:20:28 +00:00
parent 63f16f88e2
commit beddff0f56
9 changed files with 155 additions and 108 deletions
-17
View File
@@ -23,23 +23,6 @@ extern "C" {
int sys_null();
/* fs api */
int sys_mount(const char *path, const char *device, const char *fs_name, void *args);
int sys_unmount(const char *path);
int sys_sync();
int sys_fsync(int fd);
int sys_create(const char *path, int omode, int perms);
int sys_open(const char *path, int omode);
int sys_close(int fd);
off_t sys_seek(int fd, off_t pos, int seek_type);
int sys_ioctl(int fd, ulong op, void *buf, size_t length);
int sys_unlink(const char *path);
int sys_rename(const char *oldpath, const char *newpath);
int sys_fstat(int, struct stat *);
char *sys_getcwd(char* buf, size_t size);
int sys_setcwd(const char* path);
int sys_dup(int fd);
int sys_dup2(int ofd, int nfd);
int sys_getrlimit(int resource, struct rlimit * rlp);
int sys_setrlimit(int resource, const struct rlimit * rlp);
+3 -3
View File
@@ -69,9 +69,9 @@ extern "C" {
/* file functions */
//extern int access(const char *path, int amode);
//extern int chdir(const char *path);
//extern int fchdir(int fd);
//extern char *getcwd(char *buffer, size_t size);
extern int chdir(const char *path);
extern int fchdir(int fd);
extern char *getcwd(char *buffer, size_t size);
//extern int pipe(int fildes[2]);
extern int dup(int fd);
+8 -7
View File
@@ -166,9 +166,9 @@ int sys_create_symlink(const char *path, const char *toPath, int mode);
int sys_unlink(const char *path);
int sys_rename(const char *oldpath, const char *newpath);
int sys_read_stat(const char *path, bool traverseLink, struct stat *stat);
int sys_write_stat(const char *path, bool traverseLink, struct stat *stat, int statMask);
char *sys_getcwd(char *buf, size_t size);
int sys_setcwd(const char* path);
int sys_write_stat(int fd, const char *path, bool traverseLink, struct stat *stat, int statMask);
int sys_getcwd(char *buffer, size_t size);
int sys_setcwd(int fd, const char *path);
/* calls the syscall dispatcher should use for user file I/O */
int user_mount(const char *path, const char *device, const char *fs_name, void *args);
@@ -191,9 +191,9 @@ int user_create_symlink(const char *path, const char *toPath, int mode);
int user_unlink(const char *path);
int user_rename(const char *oldpath, const char *newpath);
int user_read_stat(const char *path, bool traverseLink, struct stat *stat);
int user_write_stat(const char *path, bool traverseLink, struct stat *stat, int statMask);
int user_getcwd(char *buf, size_t size);
int user_setcwd(const char* path);
int user_write_stat(int fd, const char *path, bool traverseLink, struct stat *stat, int statMask);
int user_getcwd(char *buffer, size_t size);
int user_setcwd(int fd, const char *path);
/* fd kernel prototypes (implementation located in fd.c) */
extern ssize_t sys_read(int fd, off_t pos, void *buffer, size_t bufferSize);
@@ -201,6 +201,7 @@ extern ssize_t sys_write(int fd, off_t pos, const void *buffer, size_t bufferSiz
extern int sys_ioctl(int fd, ulong cmd, void *data, size_t length);
extern ssize_t sys_read_dir(int fd, struct dirent *buffer, size_t bufferSize, uint32 maxCount);
extern status_t sys_rewind_dir(int fd);
extern int sys_fstat(int fd, struct stat *);
extern int sys_close(int fd);
extern int sys_dup(int fd);
extern int sys_dup2(int ofd, int nfd);
@@ -211,7 +212,7 @@ extern ssize_t user_write(int fd, off_t pos, const void *buffer, size_t bufferSi
extern int user_ioctl(int fd, ulong cmd, void *data, size_t length);
extern ssize_t user_read_dir(int fd, struct dirent *buffer, size_t bufferSize, uint32 maxCount);
extern status_t user_rewind_dir(int fd);
extern int user_fstat(int, struct stat *);
extern int user_fstat(int fd, struct stat *);
extern int user_close(int fd);
extern int user_dup(int fd);
extern int user_dup2(int ofd, int nfd);