OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-x86_64/] [ia32.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
#ifndef _ASM_X86_64_IA32_H
2
#define _ASM_X86_64_IA32_H
3
 
4
#include <linux/config.h>
5
 
6
#ifdef CONFIG_IA32_EMULATION
7
 
8
/*
9
 * 32 bit structures for IA32 support.
10
 */
11
 
12
/* 32bit compatibility types */
13
typedef unsigned int           __kernel_size_t32;
14
typedef int                    __kernel_ssize_t32;
15
typedef int                    __kernel_ptrdiff_t32;
16
typedef int                    __kernel_time_t32;
17
typedef int                    __kernel_clock_t32;
18
typedef int                    __kernel_pid_t32;
19
typedef unsigned short         __kernel_ipc_pid_t32;
20
typedef unsigned short         __kernel_uid_t32;
21
typedef unsigned               __kernel_uid32_t32;
22
typedef unsigned short         __kernel_gid_t32;
23
typedef unsigned               __kernel_gid32_t32;
24
typedef unsigned short         __kernel_dev_t32;
25
typedef unsigned int           __kernel_ino_t32;
26
typedef unsigned short         __kernel_mode_t32;
27
typedef unsigned short         __kernel_umode_t32;
28
typedef short                  __kernel_nlink_t32;
29
typedef int                    __kernel_daddr_t32;
30
typedef int                    __kernel_off_t32;
31
typedef unsigned int           __kernel_caddr_t32;
32
typedef long                   __kernel_loff_t32;
33
typedef __kernel_fsid_t        __kernel_fsid_t32;
34
 
35
 
36
/* fcntl.h */
37
struct flock32 {
38
       short l_type;
39
       short l_whence;
40
       __kernel_off_t32 l_start;
41
       __kernel_off_t32 l_len;
42
       __kernel_pid_t32 l_pid;
43
};
44
 
45
 
46
struct ia32_flock64 {
47
        short  l_type;
48
        short  l_whence;
49
        loff_t l_start;  /* unnatural alignment */
50
        loff_t l_len;
51
        pid_t  l_pid;
52
} __attribute__((packed));
53
 
54
#define F_GETLK64       12      /*  using 'struct flock64' */
55
#define F_SETLK64       13
56
#define F_SETLKW64      14
57
 
58
#include <asm/sigcontext32.h>
59
 
60
/* signal.h */
61
#define _IA32_NSIG             64
62
#define _IA32_NSIG_BPW         32
63
#define _IA32_NSIG_WORDS               (_IA32_NSIG / _IA32_NSIG_BPW)
64
 
65
typedef struct {
66
       unsigned int sig[_IA32_NSIG_WORDS];
67
} sigset32_t;
68
 
69
struct sigaction32 {
70
       unsigned int  sa_handler;        /* Really a pointer, but need to deal
71
                                             with 32 bits */
72
       unsigned int sa_flags;
73
       unsigned int sa_restorer;        /* Another 32 bit pointer */
74
       sigset32_t sa_mask;              /* A 32 bit mask */
75
};
76
 
77
typedef unsigned int old_sigset32_t;    /* at least 32 bits */
78
 
79
struct old_sigaction32 {
80
       unsigned int  sa_handler;        /* Really a pointer, but need to deal
81
                                             with 32 bits */
82
       old_sigset32_t sa_mask;          /* A 32 bit mask */
83
       unsigned int sa_flags;
84
       unsigned int sa_restorer;        /* Another 32 bit pointer */
85
};
86
 
87
typedef struct sigaltstack_ia32 {
88
        unsigned int    ss_sp;
89
        int             ss_flags;
90
        unsigned int    ss_size;
91
} stack_ia32_t;
92
 
93
struct ucontext_ia32 {
94
        unsigned int      uc_flags;
95
        unsigned int      uc_link;
96
        stack_ia32_t      uc_stack;
97
        struct sigcontext_ia32 uc_mcontext;
98
        sigset32_t        uc_sigmask;   /* mask last for extensibility */
99
};
100
 
101
struct stat32 {
102
       unsigned short st_dev;
103
       unsigned short __pad1;
104
       unsigned int st_ino;
105
       unsigned short st_mode;
106
       unsigned short st_nlink;
107
       unsigned short st_uid;
108
       unsigned short st_gid;
109
       unsigned short st_rdev;
110
       unsigned short __pad2;
111
       unsigned int  st_size;
112
       unsigned int  st_blksize;
113
       unsigned int  st_blocks;
114
       unsigned int  st_atime;
115
       unsigned int  __unused1;
116
       unsigned int  st_mtime;
117
       unsigned int  __unused2;
118
       unsigned int  st_ctime;
119
       unsigned int  __unused3;
120
       unsigned int  __unused4;
121
       unsigned int  __unused5;
122
};
123
 
124
 
125
/* This matches struct stat64 in glibc2.2, hence the absolutely
126
 * insane amounts of padding around dev_t's.
127
 */
128
struct stat64 {
129
        unsigned long long      st_dev;
130
        unsigned char           __pad0[4];
131
 
132
#define STAT64_HAS_BROKEN_ST_INO        1
133
        unsigned int            __st_ino;
134
 
135
        unsigned int            st_mode;
136
        unsigned int            st_nlink;
137
 
138
        unsigned int            st_uid;
139
        unsigned int            st_gid;
140
 
141
        unsigned long long      st_rdev;
142
        unsigned char           __pad3[4];
143
 
144
        long long               st_size;
145
        unsigned int            st_blksize;
146
 
147
        long long               st_blocks;/* Number 512-byte blocks allocated. */
148
 
149
        unsigned long long      st_atime;
150
        unsigned long long      st_mtime;
151
        unsigned long long      st_ctime;
152
 
153
        unsigned long long      st_ino;
154
} __attribute__((packed));
155
 
156
 
157
struct statfs32 {
158
       int f_type;
159
       int f_bsize;
160
       int f_blocks;
161
       int f_bfree;
162
       int f_bavail;
163
       int f_files;
164
       int f_ffree;
165
       __kernel_fsid_t32 f_fsid;
166
       int f_namelen;  /* SunOS ignores this field. */
167
       int f_spare[6];
168
};
169
 
170
typedef union sigval32 {
171
        int sival_int;
172
        unsigned int sival_ptr;
173
} sigval_t32;
174
 
175
typedef struct siginfo32 {
176
        int si_signo;
177
        int si_errno;
178
        int si_code;
179
 
180
        union {
181
                int _pad[((128/sizeof(int)) - 3)];
182
 
183
                /* kill() */
184
                struct {
185
                        unsigned int _pid;      /* sender's pid */
186
                        unsigned int _uid;      /* sender's uid */
187
                } _kill;
188
 
189
                /* POSIX.1b timers */
190
                struct {
191
                        unsigned int _timer1;
192
                        unsigned int _timer2;
193
                } _timer;
194
 
195
                /* POSIX.1b signals */
196
                struct {
197
                        unsigned int _pid;      /* sender's pid */
198
                        unsigned int _uid;      /* sender's uid */
199
                        sigval_t32 _sigval;
200
                } _rt;
201
 
202
                /* SIGCHLD */
203
                struct {
204
                        unsigned int _pid;      /* which child */
205
                        unsigned int _uid;      /* sender's uid */
206
                        int _status;            /* exit code */
207
                        __kernel_clock_t32 _utime;
208
                        __kernel_clock_t32 _stime;
209
                } _sigchld;
210
 
211
                /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
212
                struct {
213
                        unsigned int _addr;     /* faulting insn/memory ref. */
214
                } _sigfault;
215
 
216
                /* SIGPOLL */
217
                struct {
218
                        int _band;      /* POLL_IN, POLL_OUT, POLL_MSG */
219
                        int _fd;
220
                } _sigpoll;
221
        } _sifields;
222
} siginfo_t32;
223
 
224
 
225
struct ustat32 {
226
        __u32   f_tfree;
227
        __kernel_ino_t32                f_tinode;
228
        char                    f_fname[6];
229
        char                    f_fpack[6];
230
};
231
 
232
struct iovec32 {
233
        unsigned int iov_base;
234
        int iov_len;
235
};
236
 
237
struct timespec32 {
238
        int     tv_sec;
239
        int     tv_nsec;
240
};
241
 
242
#endif /* !CONFIG_IA32_SUPPORT */
243
 
244
#endif 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.