enum {
O_ACCMODE = 0003,
O_RDONLY = 00,
O_WRONLY = 01,
O_RDWR = 02,
O_CREAT = 0100,
O_EXCL = 0200,
O_NOCTTY = 0400,
O_TRUNC = 01000,
O_APPEND = 02000,
O_NONBLOCK = 04000,
O_NDELAY = 04000,
O_SYNC = 010000,
FASYNC = 020000,
};
enum {
FD_CLOEXEC = 1,
};
enum {
F_DUPFD = 0,
F_GETFD,
F_SETFD,
F_GETFL,
F_SETFL,
F_GETLK,
F_SETLK,
F_SETLKW,
F_SETOWN,
F_GETOWN,
F_GETSIG,
F_GETLK64 = 12,
F_SETLK64 = 13,
};
enum {
S_IFMT = 0170000,
S_IFSOCK = 0140000,
S_IFLNK = 0120000,
S_IFREG = 0100000,
S_IFBLK = 0060000,
S_IFDIR = 0040000,
S_IFCHR = 0020000,
S_IFIFO = 0010000,
S_ISUID = 0004000,
S_ISGID = 0002000,
S_ISVTX = 0001000,
};
enum {
PROT_READ = 0x01,
PROT_WRITE = 0x02,
PROT_EXEC = 0x04,
PROT_SEM = 0x08,
PROT_NONE = 0x00,
PROT_GROWSDOWN = 0x01000000,
PROT_GROWSUP = 0x02000000,
MAP_SHARED = 0x01,
MAP_PRIVATE = 0x02,
MAP_TYPE = 0x0f,
MAP_FIXED = 0x10,
MAP_ANONYMOUS = 0x20,
MREMAP_MAYMOVE = 1,
MREMAP_FIXED = 2,
};
enum {
CLONE_VM = 0x00000100,
CLONE_FS = 0x00000200,
CLONE_FILES = 0x00000400,
CLONE_SIGHAND = 0x00000800,
CLONE_PTRACE = 0x00002000,
CLONE_VFORK = 0x00004000,
CLONE_PARENT = 0x00008000,
CLONE_THREAD = 0x00010000,
CLONE_NEWNS = 0x00020000,
CLONE_SYSVSEM = 0x00040000,
CLONE_SETTLS = 0x00080000,
CLONE_PARENT_SETTID = 0x00100000,
CLONE_CHILD_CLEARTID = 0x00200000,
CLONE_DETACHED = 0x00400000,
CLONE_UNTRACED = 0x00800000,
CLONE_CHILD_SETTID = 0x01000000,
CLONE_STOPPED = 0x02000000,
};
enum {
EPERM = 1,
ENOENT = 2,
ESRCH = 3,
EINTR = 4,
EIO = 5,
ENXIO = 6,
E2BIG = 7,
ENOEXEC = 8,
EBADF = 9,
ECHILD = 10,
EAGAIN = 11,
ENOMEM = 12,
EACCES = 13,
EFAULT = 14,
ENOTBLK = 15,
EBUSY = 16,
EEXIST = 17,
EXDEV = 18,
ENODEV = 19,
ENOTDIR = 20,
EISDIR = 21,
EINVAL = 22,
ENFILE = 23,
EMFILE = 24,
ENOTTY = 25,
ETXTBSY = 26,
EFBIG = 27,
ENOSPC = 28,
ESPIPE = 29,
EROFS = 30,
EMLINK = 31,
EPIPE = 32,
EDOM = 33,
ERANGE = 34,
EDEADLK = 35,
ENAMETOOLONG = 36,
ENOLCK = 37,
ENOSYS = 38,
ENOTEMPTY = 39,
ELOOP = 40,
ENOMSG = 42,
EIDRM = 43,
ECHRNG = 44,
EL2NSYNC = 45,
EL3HLT = 46,
EL3RST = 47,
ELNRNG = 48,
EUNATCH = 49,
ENOCSI = 50,
EL2HLT = 51,
EBADE = 52,
EBADR = 53,
EXFULL = 54,
ENOANO = 55,
EBADRQC = 56,
EBADSLT = 57,
EBFONT = 59,
ENOSTR = 60,
ENODATA = 61,
ETIME = 62,
ENOSR = 63,
ENONET = 64,
ENOPKG = 65,
EREMOTE = 66,
ENOLINK = 67,
EADV = 68,
ESRMNT = 69,
ECOMM = 70,
EPROTO = 71,
EMULTIHOP = 72,
EDOTDOT = 73,
EBADMSG = 74,
EOVERFLOW = 75,
ENOTUNIQ = 76,
EBADFD = 77,
EREMCHG = 78,
ELIBACC = 79,
ELIBBAD = 80,
ELIBSCN = 81,
ELIBMAX = 82,
ELIBEXEC = 83,
EILSEQ = 84,
ERESTART = 85,
ESTRPIPE = 86,
EUSERS = 87,
ENOTSOCK = 88,
EDESTADDRREQ = 89,
EMSGSIZE = 90,
EPROTOTYPE = 91,
ENOPROTOOPT = 92,
EPROTONOSUPPORT = 93,
ESOCKTNOSUPPORT = 94,
EOPNOTSUPP = 95,
EPFNOSUPPORT = 96,
EAFNOSUPPORT = 97,
EADDRINUSE = 98,
EADDRNOTAVAIL = 99,
ENETDOWN = 100,
ENETUNREACH = 101,
ENETRESET = 102,
ECONNABORTED = 103,
ECONNRESET = 104,
ENOBUFS = 105,
EISCONN = 106,
ENOTCONN = 107,
ESHUTDOWN = 108,
ETOOMANYREFS = 109,
ETIMEDOUT = 110,
ECONNREFUSED = 111,
EHOSTDOWN = 112,
EHOSTUNREACH = 113,
EALREADY = 114,
EINPROGRESS = 115,
ESTALE = 116,
EUCLEAN = 117,
ENOTNAM = 118,
ENAVAIL = 119,
EISNAM = 120,
EREMOTEIO = 121,
EDQUOT = 122,
ENOMEDIUM = 123,
EMEDIUMTYPE = 124,
EMAX = 125,
};
#define EWOULDBLOCK EAGAIN
#define EDEADLOCK EDEADLK
#define ENOATTR ENODATA
enum {
POLLIN = (1<<0),
POLLPRI = (1<<1),
POLLOUT = (1<<2),
POLLERR = (1<<3),
POLLHUP = (1<<4),
POLLNVAL = (1<<5),
POLLRDNORM = (1<<6),
POLLRDBAND = (1<<7),
POLLWRNORM = (1<<8),
POLLWRBAND = (1<<9),
POLLMSG = (1<<10),
POLLREMOVE = (1<<11),
POLLRDHUP = 0x2000,
EPOLLONESHOT = (1<<30),
EPOLLET = (1<<31),
};
enum {
SIGHUP = 1,
SIGINT = 2,
SIGQUIT = 3,
SIGILL = 4,
SIGTRAP = 5,
SIGABRT = 6,
SIGIOT = 6,
SIGBUS = 7,
SIGFPE = 8,
SIGKILL = 9,
SIGUSR1 = 10,
SIGSEGV = 11,
SIGUSR2 = 12,
SIGPIPE = 13,
SIGALRM = 14,
SIGTERM = 15,
SIGSTKFLT = 16,
SIGCHLD = 17,
SIGCONT = 18,
SIGSTOP = 19,
SIGTSTP = 20,
SIGTTIN = 21,
SIGTTOU = 22,
SIGURG = 23,
SIGXCPU = 24,
SIGXFSZ = 25,
SIGVTALRM = 26,
SIGPROF = 27,
SIGWINCH = 28,
SIGIO = 29,
SIGPOLL = 29,
SIGLOST = 29,
SIGPWR = 30,
SIGSYS = 31,
SIGRT1 = 32,
SIGRT2 = 33,
SIGRT3 = 34,
SIGRT4 = 35,
SIGRT5 = 36,
SIGRT6 = 37,
SIGRT7 = 38,
SIGRT8 = 39,
SIGMAX = 40,
};
enum {
SI_USER = 0,
SI_QUEUE = -1,
SI_TIMER = -2,
SI_MESGQ = -3,
SI_ASYNCIO = -4,
SI_SIGIO = -5,
SI_TKILL = -6,
SI_DETHREAD = -7,
};
enum {
ILL_ILLOPC = 1,
ILL_ILLOPN,
ILL_ILLADR,
ILL_ILLTRP,
ILL_PROVOPC,
ILL_PRVREG,
ILL_COPROC,
ILL_BADSTK,
};
enum {
FPE_INTDIV = 1,
FPE_INTOVF,
FPE_FLTDIV,
FPE_FLTOVF,
FPE_FLTUND,
FPE_FLTRES,
FPE_FLTINV,
FPE_FLTSUB,
};
enum {
WNOHANG =0x00000001,
WUNTRACED =0x00000002,
WSTOPPED =0x00000002,
WEXITED =0x00000004,
WCONTINUED =0x00000008,
WNOWAIT =0x01000000,
WNOTHREAD =0x20000000,
WALL =0x40000000,
WCLONE =0x80000000,
};
struct linux_timeval
{
long tv_sec;
long tv_usec;
};
struct linux_timespec
{
long tv_sec;
long tv_nsec;
};
struct linux_user_desc {
uint entry_number;
ulong base_addr;
uint limit;
uint seg_32bit:1;
int contents:2;
uint read_exec_only:1;
uint limit_in_pages:1;
uint seg_not_present:1;
uint useable:1;
};
|