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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [include/] [asm-ppc64/] [ppc32.h] - Blame information for rev 1275

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
#ifndef _PPC64_PPC32_H
2
#define _PPC64_PPC32_H
3
 
4
#include <asm/siginfo.h>
5
#include <asm/signal.h>
6
 
7
/*
8
 * Data types and macros for providing 32b PowerPC support.
9
 *
10
 * This program is free software; you can redistribute it and/or
11
 * modify it under the terms of the GNU General Public License
12
 * as published by the Free Software Foundation; either version
13
 * 2 of the License, or (at your option) any later version.
14
 */
15
 
16
#ifndef __KERNEL_STRICT_NAMES
17
#include <linux/types.h>
18
typedef __kernel_fsid_t __kernel_fsid_t32;
19
#endif
20
 
21
/* Use this to get at 32-bit user passed pointers. */
22
/* Things to consider: the low-level assembly stub does
23
   srl x, 0, x for first four arguments, so if you have
24
   pointer to something in the first four arguments, just
25
   declare it as a pointer, not u32. On the other side,
26
   arguments from 5th onwards should be declared as u32
27
   for pointers, and need AA() around each usage.
28
   A() macro should be used for places where you e.g.
29
   have some internal variable u32 and just want to get
30
   rid of a compiler warning. AA() has to be used in
31
   places where you want to convert a function argument
32
   to 32bit pointer or when you e.g. access pt_regs
33
   structure and want to consider 32bit registers only.
34
   -
35
 */
36
#define A(__x) ((unsigned long)(__x))
37
#define AA(__x)                         \
38
({      unsigned long __ret;            \
39
        __asm__ ("clrldi        %0, %0, 32"     \
40
                 : "=r" (__ret)         \
41
                 : "0" (__x));           \
42
        __ret;                          \
43
})
44
 
45
/* These are here to support 32-bit syscalls on a 64-bit kernel. */
46
typedef unsigned int    __kernel_size_t32;
47
typedef int             __kernel_ssize_t32;
48
typedef int             __kernel_ptrdiff_t32;
49
typedef int             __kernel_time_t32;
50
typedef int             __kernel_clock_t32;
51
typedef int             __kernel_pid_t32;
52
typedef unsigned short  __kernel_ipc_pid_t32;
53
typedef unsigned int    __kernel_uid_t32;
54
typedef unsigned int    __kernel_gid_t32;
55
typedef unsigned int    __kernel_dev_t32;
56
typedef unsigned int    __kernel_ino_t32;
57
typedef unsigned int    __kernel_mode_t32;
58
typedef unsigned int    __kernel_umode_t32;
59
typedef short           __kernel_nlink_t32;
60
typedef int             __kernel_daddr_t32;
61
typedef int             __kernel_off_t32;
62
typedef unsigned int    __kernel_caddr_t32;
63
typedef int             __kernel_loff_t32;
64
typedef int             __kernel_key_t32;
65
 
66
struct statfs32 {
67
        int f_type;
68
        int f_bsize;
69
        int f_blocks;
70
        int f_bfree;
71
        int f_bavail;
72
        int f_files;
73
        int f_ffree;
74
        __kernel_fsid_t32 f_fsid;
75
        int f_namelen;  /* SunOS ignores this field. */
76
        int f_spare[6];
77
};
78
 
79
struct ustat32 {
80
        __kernel_daddr_t32      f_tfree;
81
        __kernel_ino_t32        f_tinode;
82
        char                    f_fname[6];
83
        char                    f_fpack[6];
84
};
85
 
86
typedef union sigval32 {
87
        int sival_int;
88
        unsigned int sival_ptr;
89
} sigval_t32;
90
 
91
typedef struct siginfo32 {
92
        int si_signo;
93
        int si_errno;
94
        int si_code;
95
 
96
        union {
97
                int _pad[SI_PAD_SIZE32];
98
 
99
                /* kill() */
100
                struct {
101
                        __kernel_pid_t32 _pid;          /* sender's pid */
102
                        __kernel_uid_t32 _uid;          /* sender's uid */
103
                } _kill;
104
 
105
                /* POSIX.1b timers */
106
                struct {
107
                        unsigned int _timer1;
108
                        unsigned int _timer2;
109
                } _timer;
110
 
111
                /* POSIX.1b signals */
112
                struct {
113
                        __kernel_pid_t32 _pid;          /* sender's pid */
114
                        __kernel_uid_t32 _uid;          /* sender's uid */
115
                        sigval_t32 _sigval;
116
                } _rt;
117
 
118
                /* SIGCHLD */
119
                struct {
120
                        __kernel_pid_t32 _pid;          /* which child */
121
                        __kernel_uid_t32 _uid;          /* sender's uid */
122
                        int _status;                    /* exit code */
123
                        __kernel_clock_t32 _utime;
124
                        __kernel_clock_t32 _stime;
125
                } _sigchld;
126
 
127
                /* SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGEMT */
128
                struct {
129
                        unsigned int _addr; /* faulting insn/memory ref. */
130
                } _sigfault;
131
 
132
                /* SIGPOLL */
133
                struct {
134
                        int _band;      /* POLL_IN, POLL_OUT, POLL_MSG */
135
                        int _fd;
136
                } _sigpoll;
137
        } _sifields;
138
} siginfo_t32;
139
 
140
#define __old_sigset_t32        old_sigset_t32
141
#define __old_sigaction32       old_sigaction32
142
 
143
typedef unsigned int __old_sigset_t32;
144
struct __old_sigaction32 {
145
        unsigned int            sa_handler;
146
        __old_sigset_t32        sa_mask;
147
        unsigned int            sa_flags;
148
        unsigned int            sa_restorer;     /* not used by Linux/SPARC yet */
149
};
150
 
151
 
152
 
153
#define _PPC32_NSIG            64
154
#define _PPC32_NSIG_BPW        32
155
#define _PPC32_NSIG_WORDS              (_PPC32_NSIG / _PPC32_NSIG_BPW)
156
 
157
typedef struct {
158
       unsigned int sig[_PPC32_NSIG_WORDS];
159
} sigset32_t;
160
 
161
struct sigaction32 {
162
       unsigned int  sa_handler;        /* Really a pointer, but need to deal with 32 bits */
163
       unsigned int sa_flags;
164
       unsigned int sa_restorer;        /* Another 32 bit pointer */
165
       sigset32_t sa_mask;              /* A 32 bit mask */
166
};
167
 
168
typedef struct sigaltstack_32 {
169
        unsigned int ss_sp;
170
        int ss_flags;
171
        __kernel_size_t32 ss_size;
172
} stack_32_t;
173
 
174
struct flock32 {
175
        short l_type;
176
        short l_whence;
177
        __kernel_off_t32 l_start;
178
        __kernel_off_t32 l_len;
179
        __kernel_pid_t32 l_pid;
180
        short __unused;
181
};
182
 
183
struct stat32 {
184
        __kernel_dev_t32   st_dev; /* 2 */
185
        /* __kernel_dev_t32 __pad1; */ /* 2 */
186
        __kernel_ino_t32   st_ino; /* 4  */
187
        __kernel_mode_t32  st_mode; /* 2  */
188
        short              st_nlink; /* 2 */
189
        __kernel_uid_t32   st_uid; /* 2 */
190
        __kernel_gid_t32   st_gid; /* 2 */
191
        __kernel_dev_t32   st_rdev; /* 2 */
192
        /* __kernel_dev_t32 __pad2; */ /* 2 */
193
        __kernel_off_t32   st_size; /* 4 */
194
        __kernel_off_t32   st_blksize; /* 4 */
195
        __kernel_off_t32   st_blocks; /* 4 */
196
        __kernel_time_t32  st_atime; /* 4 */
197
        unsigned int       __unused1; /* 4 */
198
        __kernel_time_t32  st_mtime; /* 4 */
199
        unsigned int       __unused2; /* 4 */
200
        __kernel_time_t32  st_ctime; /* 4 */
201
        unsigned int       __unused3; /* 4 */
202
        unsigned int  __unused4[2]; /* 2*4 */
203
};
204
 
205
struct __old_kernel_stat32
206
{
207
        unsigned short st_dev;
208
        unsigned short st_ino;
209
        unsigned short st_mode;
210
        unsigned short st_nlink;
211
        unsigned short st_uid;
212
        unsigned short st_gid;
213
        unsigned short st_rdev;
214
        unsigned int   st_size;
215
        unsigned int   st_atime;
216
        unsigned int   st_mtime;
217
        unsigned int   st_ctime;
218
};
219
 
220
struct sigcontext32 {
221
        unsigned int    _unused[4];
222
        int             signal;
223
        unsigned int    handler;
224
        unsigned int    oldmask;
225
        u32 regs;  /* 4 byte pointer to the pt_regs32 structure. */
226
};
227
 
228
struct ucontext32 {
229
        unsigned int      uc_flags;
230
        unsigned int      uc_link;
231
        stack_32_t        uc_stack;
232
        struct sigcontext32 uc_mcontext;
233
        sigset_t          uc_sigmask;   /* mask last for extensibility */
234
};
235
 
236
struct ipc_kludge_32 {
237
        unsigned int msgp;
238
        int msgtyp;
239
};
240
 
241
struct ipc_perm32 {
242
        __kernel_key_t32  key;
243
        __kernel_uid_t32  uid;
244
        __kernel_gid_t32  gid;
245
        __kernel_uid_t32  cuid;
246
        __kernel_gid_t32  cgid;
247
        __kernel_mode_t32 mode;
248
        unsigned short  seq;
249
};
250
 
251
struct ipc64_perm32 {
252
        __kernel_key_t32 key;
253
        __kernel_uid_t32 uid;
254
        __kernel_gid_t32 gid;
255
        __kernel_uid_t32 cuid;
256
        __kernel_gid_t32 cgid;
257
        __kernel_mode_t32 mode;
258
        unsigned int    seq;
259
        unsigned int    __pad1;
260
        unsigned long   __unused1;
261
        unsigned long   __unused2;
262
};
263
 
264
#endif  /* _PPC64_PPC32_H */

powered by: WebSVN 2.1.0

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