X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2Finclude%2Fsys%2Ftypes.h;h=84fb497d1fd485f05c6954fdb0aefca2846c879c;hb=ad39285c100ee2c5e5a34a9c1010d10fcea77067;hp=2fad39fc38459216454542a7c66c6c50d9d0f8e4;hpb=d55488f17f9fbd25d9126853720e2fd78bd8540f;p=tpg%2Facess2.git diff --git a/Usermode/include/sys/types.h b/Usermode/include/sys/types.h index 2fad39fc..84fb497d 100644 --- a/Usermode/include/sys/types.h +++ b/Usermode/include/sys/types.h @@ -2,7 +2,7 @@ */ #ifndef _SYS_TYPES_H #define _SYS_TYPES_H -#include +//#include typedef struct { int st_dev; //dev_t @@ -18,18 +18,57 @@ typedef struct { long st_ctime; } t_fstat; -#define S_IFMT 0170000 /* type of file */ -#define S_IFDIR 0040000 /* directory */ -#define S_IFCHR 0020000 /* character special */ -#define S_IFBLK 0060000 /* block special */ -#define S_IFREG 0100000 /* regular */ -#define S_IFLNK 0120000 /* symbolic link */ -#define S_IFSOCK 0140000 /* socket */ -#define S_IFIFO 0010000 /* fifo */ +#define FD_SETSIZE 128 -typedef uint32_t pid_t; -typedef uint32_t tid_t; -typedef int64_t time_t; +#define CLONE_VM 0x10 + +typedef unsigned long pid_t; +typedef unsigned long tid_t; +typedef signed long long time_t; + +typedef unsigned int uint; + +typedef unsigned short fd_set_ent_t; + +/** + * \brief fd_set for select() + */ +typedef struct +{ + fd_set_ent_t flags[FD_SETSIZE/16]; +} fd_set; + +struct s_sysACL { + unsigned long object; //!< Group or user (bit 31 determines) + unsigned long perms; //!< Inverted by bit 31 +}; +struct s_sysFInfo { + unsigned int uid; + unsigned int gid; + unsigned int flags; + unsigned long long size; + time_t atime; + time_t mtime; + time_t ctime; + int numacls; + struct s_sysACL acls[]; +}; +typedef struct s_sysFInfo t_sysFInfo; +typedef struct s_sysACL t_sysACL; + +static inline void FD_ZERO(fd_set *fdsetp) {int i=FD_SETSIZE/16;while(i--)fdsetp->flags[i]=0; } +static inline void FD_CLR(int fd, fd_set *fdsetp) { + if(fd < 0 || fd > FD_SETSIZE) return; + fdsetp->flags[fd/16] &= (fd_set_ent_t) ((~1 << (fd%16))) & 0xFFFF; +} +static inline void FD_SET(int fd, fd_set *fdsetp) { + if(fd < 0 || fd > FD_SETSIZE) return; + fdsetp->flags[fd/16] |= (fd_set_ent_t) (1 << (fd%16)); +} +static inline int FD_ISSET(int fd, fd_set *fdsetp) { + if(fd < 0 || fd > FD_SETSIZE) return 0; + return !!( fdsetp->flags[fd/16] & (1<<(fd%16)) ); +} #endif