Usermode - Added sys/stat.h to help with cross compiles
[tpg/acess2.git] / Usermode / include / sys / types.h
1 /*
2  */
3 #ifndef _SYS_TYPES_H
4 #define _SYS_TYPES_H
5 //#include <stdint.h>
6
7 typedef struct stat     t_fstat;
8
9 #define FD_SETSIZE      128
10
11
12 #define CLONE_VM        0x10
13
14 typedef unsigned long   pid_t;
15 typedef unsigned long   tid_t;
16 typedef signed long long        time_t;
17
18 typedef unsigned int    uint;
19
20 typedef unsigned short  fd_set_ent_t;
21
22 /**
23  * \brief fd_set for select()
24  */
25 typedef struct
26 {
27         fd_set_ent_t    flags[FD_SETSIZE/16];
28 }       fd_set;
29
30 struct s_sysACL {
31         unsigned long   object; //!< Group or user (bit 31 determines)
32         unsigned long   perms;  //!< Inverted by bit 31
33 };
34 struct s_sysFInfo {
35         unsigned int    mount;
36         unsigned long long      inode;
37         unsigned int    uid;
38         unsigned int    gid;
39         unsigned int    flags;
40         unsigned long long      size;
41         time_t  atime;
42         time_t  mtime;
43         time_t  ctime;
44          int    numacls;
45         struct s_sysACL acls[];
46 };
47 typedef struct s_sysFInfo       t_sysFInfo;
48 typedef struct s_sysACL t_sysACL;
49
50 static inline void FD_ZERO(fd_set *fdsetp) {int i=FD_SETSIZE/16;while(i--)fdsetp->flags[i]=0; }
51 static inline void FD_CLR(int fd, fd_set *fdsetp) {
52         if(fd < 0 || fd > FD_SETSIZE)   return;
53         fdsetp->flags[fd/16] &= (fd_set_ent_t) ((~1 << (fd%16))) & 0xFFFF;
54 }
55 static inline void FD_SET(int fd, fd_set *fdsetp) {
56         if(fd < 0 || fd > FD_SETSIZE)   return;
57         fdsetp->flags[fd/16] |= (fd_set_ent_t) (1 << (fd%16));
58 }
59 static inline int FD_ISSET(int fd, fd_set *fdsetp) {
60         if(fd < 0 || fd > FD_SETSIZE)   return 0;
61         return !!( fdsetp->flags[fd/16] & (1<<(fd%16)) );
62 }
63
64 #include <sys/stat.h>
65
66 #endif

UCC git Repository :: git.ucc.asn.au