1
2 #ifndef _ASMARM_UCONTEXT_H
3 #define _ASMARM_UCONTEXT_H
4
5 #include <asm/fpstate.h>
6 #include <asm/user.h>
7
8
9
10
11
12
13
14
15
16
17
18 struct ucontext {
19 unsigned long uc_flags;
20 struct ucontext *uc_link;
21 stack_t uc_stack;
22 struct sigcontext uc_mcontext;
23 sigset_t uc_sigmask;
24
25 int __unused[32 - (sizeof (sigset_t) / sizeof (int))];
26
27
28 unsigned long uc_regspace[128] __attribute__((__aligned__(8)));
29 };
30
31 #ifdef __KERNEL__
32
33
34
35
36
37
38
39
40
41
42
43
44 #define DUMMY_MAGIC 0xb0d9ed01
45
46 #ifdef CONFIG_CRUNCH
47 #define CRUNCH_MAGIC 0x5065cf03
48 #define CRUNCH_STORAGE_SIZE (CRUNCH_SIZE + 8)
49
50 struct crunch_sigframe {
51 unsigned long magic;
52 unsigned long size;
53 struct crunch_state storage;
54 } __attribute__((__aligned__(8)));
55 #endif
56
57 #ifdef CONFIG_IWMMXT
58
59 #define IWMMXT_MAGIC 0x12ef842a
60 #define IWMMXT_STORAGE_SIZE (IWMMXT_SIZE + 8)
61
62 struct iwmmxt_sigframe {
63 unsigned long magic;
64 unsigned long size;
65 struct iwmmxt_struct storage;
66 } __attribute__((__aligned__(8)));
67 #endif
68
69 #ifdef CONFIG_VFP
70 #define VFP_MAGIC 0x56465001
71
72 struct vfp_sigframe
73 {
74 unsigned long magic;
75 unsigned long size;
76 struct user_vfp ufp;
77 struct user_vfp_exc ufp_exc;
78 } __attribute__((__aligned__(8)));
79
80
81
82
83
84 #define VFP_STORAGE_SIZE sizeof(struct vfp_sigframe)
85
86 #endif
87
88
89
90
91
92
93
94 struct aux_sigframe {
95 #ifdef CONFIG_CRUNCH
96 struct crunch_sigframe crunch;
97 #endif
98 #ifdef CONFIG_IWMMXT
99 struct iwmmxt_sigframe iwmmxt;
100 #endif
101 #ifdef CONFIG_VFP
102 struct vfp_sigframe vfp;
103 #endif
104
105 unsigned long end_magic;
106 } __attribute__((__aligned__(8)));
107
108 #endif
109
110 #endif