GUI: Fix Tomato RAF theme for all builds. Compilation typo.
[tomato.git] / release / src-rt-6.x.4708 / linux / linux-2.6.36 / arch / parisc / include / asm / compat_rt_sigframe.h
blob068fe6e865a78389b3fffe3e2945ddb04aa3388c
1 #include<linux/compat.h>
2 #include<linux/compat_siginfo.h>
3 #include<asm/compat_ucontext.h>
5 #ifndef _ASM_PARISC_COMPAT_RT_SIGFRAME_H
6 #define _ASM_PARISC_COMPAT_RT_SIGFRAME_H
8 /* In a deft move of uber-hackery, we decide to carry the top half of all
9 * 64-bit registers in a non-portable, non-ABI, hidden structure.
10 * Userspace can read the hidden structure if it *wants* but is never
11 * guaranteed to be in the same place. Infact the uc_sigmask from the
12 * ucontext_t structure may push the hidden register file downards
14 struct compat_regfile {
15 /* Upper half of all the 64-bit registers that were truncated
16 on a copy to a 32-bit userspace */
17 compat_int_t rf_gr[32];
18 compat_int_t rf_iasq[2];
19 compat_int_t rf_iaoq[2];
20 compat_int_t rf_sar;
23 #define COMPAT_SIGRETURN_TRAMP 4
24 #define COMPAT_SIGRESTARTBLOCK_TRAMP 5
25 #define COMPAT_TRAMP_SIZE (COMPAT_SIGRETURN_TRAMP + COMPAT_SIGRESTARTBLOCK_TRAMP)
27 struct compat_rt_sigframe {
28 compat_uint_t tramp[COMPAT_TRAMP_SIZE];
29 compat_siginfo_t info;
30 struct compat_ucontext uc;
31 /* Hidden location of truncated registers, *must* be last. */
32 struct compat_regfile regs;
36 * The 32-bit ABI wants at least 48 bytes for a function call frame:
37 * 16 bytes for arg0-arg3, and 32 bytes for magic (the only part of
38 * which Linux/parisc uses is sp-20 for the saved return pointer...)
39 * Then, the stack pointer must be rounded to a cache line (64 bytes).
41 #define SIGFRAME32 64
42 #define FUNCTIONCALLFRAME32 48
43 #define PARISC_RT_SIGFRAME_SIZE32 \
44 (((sizeof(struct compat_rt_sigframe) + FUNCTIONCALLFRAME32) + SIGFRAME32) & -SIGFRAME32)
46 #endif