1951a39d68df598db08dfced8b4707755864a0492Ying Wang/****************************************************************************
2951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
3951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
4951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   This header was automatically generated from a Linux kernel header
5951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   of the same name, to make information necessary for userspace to
6951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   call into the kernel available to libc.  It contains only constants,
7951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   structures, and macros generated from the original header, and thus,
8951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   contains no copyrightable information.
9951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
10951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
11951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************/
12951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _I386_USER_H
13951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _I386_USER_H
14951a39d68df598db08dfced8b4707755864a0492Ying Wang
15951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <asm/page.h>
16951a39d68df598db08dfced8b4707755864a0492Ying Wang
17951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct user_i387_struct {
18951a39d68df598db08dfced8b4707755864a0492Ying Wang long cwd;
19951a39d68df598db08dfced8b4707755864a0492Ying Wang long swd;
20951a39d68df598db08dfced8b4707755864a0492Ying Wang long twd;
21951a39d68df598db08dfced8b4707755864a0492Ying Wang long fip;
22951a39d68df598db08dfced8b4707755864a0492Ying Wang long fcs;
23951a39d68df598db08dfced8b4707755864a0492Ying Wang long foo;
24951a39d68df598db08dfced8b4707755864a0492Ying Wang long fos;
25951a39d68df598db08dfced8b4707755864a0492Ying Wang long st_space[20];
26951a39d68df598db08dfced8b4707755864a0492Ying Wang};
27951a39d68df598db08dfced8b4707755864a0492Ying Wang
28951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct user_fxsr_struct {
29951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned short cwd;
30951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned short swd;
31951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned short twd;
32951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned short fop;
33951a39d68df598db08dfced8b4707755864a0492Ying Wang long fip;
34951a39d68df598db08dfced8b4707755864a0492Ying Wang long fcs;
35951a39d68df598db08dfced8b4707755864a0492Ying Wang long foo;
36951a39d68df598db08dfced8b4707755864a0492Ying Wang long fos;
37951a39d68df598db08dfced8b4707755864a0492Ying Wang long mxcsr;
38951a39d68df598db08dfced8b4707755864a0492Ying Wang long reserved;
39951a39d68df598db08dfced8b4707755864a0492Ying Wang long st_space[32];
40951a39d68df598db08dfced8b4707755864a0492Ying Wang long xmm_space[32];
41951a39d68df598db08dfced8b4707755864a0492Ying Wang long padding[56];
42951a39d68df598db08dfced8b4707755864a0492Ying Wang};
43951a39d68df598db08dfced8b4707755864a0492Ying Wang
44951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct user_regs_struct {
45951a39d68df598db08dfced8b4707755864a0492Ying Wang long ebx, ecx, edx, esi, edi, ebp, eax;
46951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned short ds, __ds, es, __es;
47951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned short fs, __fs, gs, __gs;
48951a39d68df598db08dfced8b4707755864a0492Ying Wang long orig_eax, eip;
49951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned short cs, __cs;
50951a39d68df598db08dfced8b4707755864a0492Ying Wang long eflags, esp;
51951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned short ss, __ss;
52951a39d68df598db08dfced8b4707755864a0492Ying Wang};
53951a39d68df598db08dfced8b4707755864a0492Ying Wang
54951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct user{
55951a39d68df598db08dfced8b4707755864a0492Ying Wang
56951a39d68df598db08dfced8b4707755864a0492Ying Wang struct user_regs_struct regs;
57951a39d68df598db08dfced8b4707755864a0492Ying Wang
58951a39d68df598db08dfced8b4707755864a0492Ying Wang int u_fpvalid;
59951a39d68df598db08dfced8b4707755864a0492Ying Wang
60951a39d68df598db08dfced8b4707755864a0492Ying Wang struct user_i387_struct i387;
61951a39d68df598db08dfced8b4707755864a0492Ying Wang
62951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned long int u_tsize;
63951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned long int u_dsize;
64951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned long int u_ssize;
65951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned long start_code;
66951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned long start_stack;
67951a39d68df598db08dfced8b4707755864a0492Ying Wang long int signal;
68951a39d68df598db08dfced8b4707755864a0492Ying Wang int reserved;
69951a39d68df598db08dfced8b4707755864a0492Ying Wang struct user_pt_regs * u_ar0;
70951a39d68df598db08dfced8b4707755864a0492Ying Wang
71951a39d68df598db08dfced8b4707755864a0492Ying Wang struct user_i387_struct* u_fpstate;
72951a39d68df598db08dfced8b4707755864a0492Ying Wang unsigned long magic;
73951a39d68df598db08dfced8b4707755864a0492Ying Wang char u_comm[32];
74951a39d68df598db08dfced8b4707755864a0492Ying Wang int u_debugreg[8];
75951a39d68df598db08dfced8b4707755864a0492Ying Wang};
76951a39d68df598db08dfced8b4707755864a0492Ying Wang#define NBPG PAGE_SIZE
77951a39d68df598db08dfced8b4707755864a0492Ying Wang#define UPAGES 1
78951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HOST_TEXT_START_ADDR (u.start_code)
79951a39d68df598db08dfced8b4707755864a0492Ying Wang#define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)
80951a39d68df598db08dfced8b4707755864a0492Ying Wang
81951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
82