/* * Copyright 2004-2007, Haiku Inc. All Rights Reserved. * Distributed under the terms of the MIT License. */ #ifndef _FSSH_UNISTD_H #define _FSSH_UNISTD_H #include "fssh_defs.h" /* access modes */ #define FSSH_R_OK 4 #define FSSH_W_OK 2 #define FSSH_X_OK 1 #define FSSH_F_OK 0 /* standard file descriptors */ #define FSSH_STDIN_FILENO 0 #define FSSH_STDOUT_FILENO 1 #define FSSH_STDERR_FILENO 2 /* lseek() constants */ #ifndef FSSH_SEEK_SET # define FSSH_SEEK_SET 0 #endif #ifndef FSSH_SEEK_CUR # define FSSH_SEEK_CUR 1 #endif #ifndef FSSH_SEEK_END # define FSSH_SEEK_END 2 #endif #ifdef __cplusplus extern "C" { #endif /* file functions */ extern int fssh_access(const char *path, int accessMode); extern int fssh_chdir(const char *path); extern int fssh_fchdir(int fd); extern char *fssh_getcwd(char *buffer, fssh_size_t size); extern int fssh_dup(int fd); extern int fssh_dup2(int fd1, int fd2); extern int fssh_close(int fd); extern int fssh_link(const char *name, const char *new_name); extern int fssh_unlink(const char *name); extern int fssh_rmdir(const char *path); extern fssh_ssize_t fssh_readlink(const char *path, char *buffer, fssh_size_t bufferSize); extern int fssh_symlink(const char *from, const char *to); extern int fssh_ftruncate(int fd, fssh_off_t newSize); extern int fssh_truncate(const char *path, fssh_off_t newSize); extern int fssh_ioctl(int fd, unsigned long op, ...); extern fssh_ssize_t fssh_read(int fd, void *buffer, fssh_size_t count); extern fssh_ssize_t fssh_read_pos(int fd, fssh_off_t pos, void *buffer, fssh_size_t count); extern fssh_ssize_t fssh_pread(int fd, void *buffer, fssh_size_t count, fssh_off_t pos); extern fssh_ssize_t fssh_write(int fd, const void *buffer, fssh_size_t count); extern fssh_ssize_t fssh_write_pos(int fd, fssh_off_t pos, const void *buffer, fssh_size_t count); extern fssh_ssize_t fssh_pwrite(int fd, const void *buffer, fssh_size_t count, fssh_off_t pos); extern fssh_off_t fssh_lseek(int fd, fssh_off_t offset, int whence); extern int fssh_sync(void); extern int fssh_fsync(int fd); /* access permissions */ extern fssh_gid_t fssh_getegid(void); extern fssh_uid_t fssh_geteuid(void); extern fssh_gid_t fssh_getgid(void); extern int fssh_getgroups(int groupSize, fssh_gid_t groupList[]); extern fssh_uid_t fssh_getuid(void); #ifdef __cplusplus } #endif #endif /* _FSSH_UNISTD_H */