Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / arch / powerpc / kernel / ppc32.h
1 #ifndef _PPC64_PPC32_H
2 #define _PPC64_PPC32_H
3
4 #include <linux/compat.h>
5 #include <asm/siginfo.h>
6 #include <asm/signal.h>
7
8 /*
9  * Data types and macros for providing 32b PowerPC support.
10  * 
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version
14  * 2 of the License, or (at your option) any later version.
15  */
16
17 /* These are here to support 32-bit syscalls on a 64-bit kernel. */
18
19 struct pt_regs32 {
20         unsigned int gpr[32];
21         unsigned int nip;
22         unsigned int msr;
23         unsigned int orig_gpr3;         /* Used for restarting system calls */
24         unsigned int ctr;
25         unsigned int link;
26         unsigned int xer;
27         unsigned int ccr;
28         unsigned int mq;                /* 601 only (not used at present) */
29         unsigned int trap;              /* Reason for being here */
30         unsigned int dar;               /* Fault registers */
31         unsigned int dsisr;
32         unsigned int result;            /* Result of a system call */
33 };
34
35 struct sigcontext32 {
36         unsigned int    _unused[4];
37         int             signal;
38         compat_uptr_t   handler;
39         unsigned int    oldmask;
40         compat_uptr_t   regs;  /* 4 byte pointer to the pt_regs32 structure. */
41 };
42
43 struct mcontext32 {
44         elf_gregset_t32         mc_gregs;
45         elf_fpregset_t          mc_fregs;
46         unsigned int            mc_pad[2];
47         elf_vrregset_t32        mc_vregs __attribute__((__aligned__(16)));
48         elf_vsrreghalf_t32      mc_vsregs __attribute__((__aligned__(16)));
49 };
50
51 struct ucontext32 { 
52         unsigned int            uc_flags;
53         unsigned int            uc_link;
54         compat_stack_t          uc_stack;
55         int                     uc_pad[7];
56         compat_uptr_t           uc_regs;        /* points to uc_mcontext field */
57         compat_sigset_t         uc_sigmask;     /* mask last for extensibility */
58         /* glibc has 1024-bit signal masks, ours are 64-bit */
59         int                     uc_maskext[30];
60         int                     uc_pad2[3];
61         struct mcontext32       uc_mcontext;
62 };
63
64 #endif  /* _PPC64_PPC32_H */