x86, um: get rid of uml unistd.h
[linux-2.6-block.git] / arch / um / sys-i386 / user-offsets.c
CommitLineData
8d0b9dc9 1#include <stdio.h>
16dd07bc 2#include <stddef.h>
8d0b9dc9 3#include <signal.h>
16dd07bc 4#include <sys/poll.h>
189872f9 5#include <sys/user.h>
16dd07bc 6#include <sys/mman.h>
8d0b9dc9 7#include <asm/ptrace.h>
8d0b9dc9
AV
8
9#define DEFINE(sym, val) \
63ae2a94 10 asm volatile("\n->" #sym " %0 " #val : : "i" (val))
8d0b9dc9 11
ecba97d4 12#define DEFINE_LONGS(sym, val) \
63ae2a94 13 asm volatile("\n->" #sym " %0 " #val : : "i" (val/sizeof(unsigned long)))
ecba97d4 14
8d0b9dc9
AV
15#define OFFSET(sym, str, mem) \
16 DEFINE(sym, offsetof(struct str, mem));
17
18void foo(void)
19{
ecba97d4
AV
20 OFFSET(HOST_SC_TRAPNO, sigcontext, trapno);
21 OFFSET(HOST_SC_ERR, sigcontext, err);
22 OFFSET(HOST_SC_CR2, sigcontext, cr2);
8d0b9dc9 23
189872f9 24 DEFINE_LONGS(HOST_FP_SIZE, sizeof(struct user_fpregs_struct));
47906dd9 25 DEFINE_LONGS(HOST_FPX_SIZE, sizeof(struct user_fpxregs_struct));
8d0b9dc9
AV
26
27 DEFINE(HOST_IP, EIP);
28 DEFINE(HOST_SP, UESP);
29 DEFINE(HOST_EFLAGS, EFL);
30 DEFINE(HOST_EAX, EAX);
31 DEFINE(HOST_EBX, EBX);
32 DEFINE(HOST_ECX, ECX);
33 DEFINE(HOST_EDX, EDX);
34 DEFINE(HOST_ESI, ESI);
35 DEFINE(HOST_EDI, EDI);
36 DEFINE(HOST_EBP, EBP);
37 DEFINE(HOST_CS, CS);
38 DEFINE(HOST_SS, SS);
39 DEFINE(HOST_DS, DS);
40 DEFINE(HOST_FS, FS);
41 DEFINE(HOST_ES, ES);
42 DEFINE(HOST_GS, GS);
ecba97d4 43 DEFINE(UM_FRAME_SIZE, sizeof(struct user_regs_struct));
63ae2a94
JD
44
45 /* XXX Duplicated between i386 and x86_64 */
46 DEFINE(UM_POLLIN, POLLIN);
47 DEFINE(UM_POLLPRI, POLLPRI);
48 DEFINE(UM_POLLOUT, POLLOUT);
16dd07bc
JD
49
50 DEFINE(UM_PROT_READ, PROT_READ);
51 DEFINE(UM_PROT_WRITE, PROT_WRITE);
52 DEFINE(UM_PROT_EXEC, PROT_EXEC);
8d0b9dc9 53}