blob: 50b3c919edf0c4047855c38c757615cc18589d22 [file] [log] [blame]
// TODO: Generate using cgo like defs_linux_{386,amd64}.h
// Constants
enum {
EINTR = 0x4,
ENOMEM = 0xc,
EAGAIN = 0xb,
PROT_NONE = 0,
PROT_READ = 0x1,
PROT_WRITE = 0x2,
PROT_EXEC = 0x4,
MAP_ANON = 0x20,
MAP_PRIVATE = 0x2,
MAP_FIXED = 0x10,
MADV_DONTNEED = 0x4,
SA_RESTART = 0x10000000,
SA_ONSTACK = 0x8000000,
SA_RESTORER = 0, // unused on ARM
SA_SIGINFO = 0x4,
SIGHUP = 0x1,
SIGINT = 0x2,
SIGQUIT = 0x3,
SIGILL = 0x4,
SIGTRAP = 0x5,
SIGABRT = 0x6,
SIGBUS = 0x7,
SIGFPE = 0x8,
SIGKILL = 0x9,
SIGUSR1 = 0xa,
SIGSEGV = 0xb,
SIGUSR2 = 0xc,
SIGPIPE = 0xd,
SIGALRM = 0xe,
SIGSTKFLT = 0x10,
SIGCHLD = 0x11,
SIGCONT = 0x12,
SIGSTOP = 0x13,
SIGTSTP = 0x14,
SIGTTIN = 0x15,
SIGTTOU = 0x16,
SIGURG = 0x17,
SIGXCPU = 0x18,
SIGXFSZ = 0x19,
SIGVTALRM = 0x1a,
SIGPROF = 0x1b,
SIGWINCH = 0x1c,
SIGIO = 0x1d,
SIGPWR = 0x1e,
SIGSYS = 0x1f,
FPE_INTDIV = 0x1,
FPE_INTOVF = 0x2,
FPE_FLTDIV = 0x3,
FPE_FLTOVF = 0x4,
FPE_FLTUND = 0x5,
FPE_FLTRES = 0x6,
FPE_FLTINV = 0x7,
FPE_FLTSUB = 0x8,
BUS_ADRALN = 0x1,
BUS_ADRERR = 0x2,
BUS_OBJERR = 0x3,
SEGV_MAPERR = 0x1,
SEGV_ACCERR = 0x2,
ITIMER_REAL = 0,
ITIMER_PROF = 0x2,
ITIMER_VIRTUAL = 0x1,
O_RDONLY = 0,
O_CLOEXEC = 02000000,
EPOLLIN = 0x1,
EPOLLOUT = 0x4,
EPOLLERR = 0x8,
EPOLLHUP = 0x10,
EPOLLRDHUP = 0x2000,
EPOLLET = -0x80000000,
EPOLL_CLOEXEC = 0x80000,
EPOLL_CTL_ADD = 0x1,
EPOLL_CTL_DEL = 0x2,
EPOLL_CTL_MOD = 0x3,
};
// Types
#pragma pack on
typedef struct Timespec Timespec;
struct Timespec {
int32 tv_sec;
int32 tv_nsec;
};
typedef struct SigaltstackT SigaltstackT;
struct SigaltstackT {
void *ss_sp;
int32 ss_flags;
uint32 ss_size;
};
typedef struct Sigcontext Sigcontext;
struct Sigcontext {
uint32 trap_no;
uint32 error_code;
uint32 oldmask;
uint32 arm_r0;
uint32 arm_r1;
uint32 arm_r2;
uint32 arm_r3;
uint32 arm_r4;
uint32 arm_r5;
uint32 arm_r6;
uint32 arm_r7;
uint32 arm_r8;
uint32 arm_r9;
uint32 arm_r10;
uint32 arm_fp;
uint32 arm_ip;
uint32 arm_sp;
uint32 arm_lr;
uint32 arm_pc;
uint32 arm_cpsr;
uint32 fault_address;
};
typedef struct Ucontext Ucontext;
struct Ucontext {
uint32 uc_flags;
Ucontext *uc_link;
SigaltstackT uc_stack;
Sigcontext uc_mcontext;
uint32 uc_sigmask;
int32 __unused[31];
uint32 uc_regspace[128];
};
typedef struct Timeval Timeval;
struct Timeval {
int32 tv_sec;
int32 tv_usec;
};
typedef struct Itimerval Itimerval;
struct Itimerval {
Timeval it_interval;
Timeval it_value;
};
typedef struct Siginfo Siginfo;
struct Siginfo {
int32 si_signo;
int32 si_errno;
int32 si_code;
uint8 _sifields[4];
};
typedef struct SigactionT SigactionT;
struct SigactionT {
void *sa_handler;
uint32 sa_flags;
void *sa_restorer;
uint64 sa_mask;
};
typedef struct EpollEvent EpollEvent;
struct EpollEvent {
uint32 events;
uint32 _pad;
byte data[8]; // to match amd64
};
#pragma pack off