-
+/*
+ */
#ifndef _SYS_TYPES_H
#define _SYS_TYPES_H
+#include <stdint.h>
typedef struct {
int st_dev; //dev_t
#define S_IFSOCK 0140000 /* socket */
#define S_IFIFO 0010000 /* fifo */
+#define FD_SETSIZE 128
+
+
+#define CLONE_VM 0x10
+
+/**
+ * \brief fd_set for select()
+ */
+typedef struct
+{
+ uint16_t flags[FD_SETSIZE/16];
+} fd_set;
+
+struct s_sysACL {
+ union {
+ struct {
+ unsigned group: 1;
+ unsigned id: 31;
+ };
+ uint32_t object;
+ };
+ union {
+ struct {
+ unsigned invert: 1;
+ unsigned perms: 31;
+ };
+ uint32_t rawperms;
+ };
+};
+struct s_sysFInfo {
+ unsigned int uid, gid;
+ unsigned int flags;
+ uint64_t size;
+ uint64_t atime;
+ uint64_t mtime;
+ uint64_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] &= (uint16_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] |= (uint16_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)) );
+}
+
+typedef uint32_t pid_t;
+typedef uint32_t tid_t;
+typedef int64_t time_t;
+
+typedef unsigned int uint;
+
#endif