• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _ASM_SIGCONTEXT_H
20 #define _ASM_SIGCONTEXT_H
21 
22 #include <linux/types.h>
23 #include <linux/posix_types.h>
24 
25 /* FP context was used */
26 #define SC_USED_FP		(1 << 0)
27 /* Address error was due to memory load */
28 #define SC_ADDRERR_RD		(1 << 30)
29 /* Address error was due to memory store */
30 #define SC_ADDRERR_WR		(1 << 31)
31 
32 struct sigcontext {
33 	__u64	sc_pc;
34 	__u64	sc_regs[32];
35 	__u32	sc_flags;
36 	__u64	sc_extcontext[0] __attribute__((__aligned__(16)));
37 };
38 
39 #define CONTEXT_INFO_ALIGN	16
40 struct sctx_info {
41 	__u32	magic;
42 	__u32	size;
43 	__u64	padding;	/* padding to 16 bytes */
44 };
45 
46 /* FPU context */
47 #define FPU_CTX_MAGIC		0x46505501
48 #define FPU_CTX_ALIGN		8
49 struct fpu_context {
50 	__u64	regs[32];
51 	__u64	fcc;
52 	__u32	fcsr;
53 };
54 
55 /* LSX context */
56 #define LSX_CTX_MAGIC		0x53580001
57 #define LSX_CTX_ALIGN		16
58 struct lsx_context {
59 	__u64	regs[2*32];
60 	__u64	fcc;
61 	__u32	fcsr;
62 };
63 
64 /* LASX context */
65 #define LASX_CTX_MAGIC		0x41535801
66 #define LASX_CTX_ALIGN		32
67 struct lasx_context {
68 	__u64	regs[4*32];
69 	__u64	fcc;
70 	__u32	fcsr;
71 };
72 
73 /* LBT context */
74 #define LBT_CTX_MAGIC		0x42540001
75 #define LBT_CTX_ALIGN		8
76 struct lbt_context {
77 	__u64	scr[4];
78 	__u32	eflags;
79 };
80 
81 #endif /* _ASM_SIGCONTEXT_H */
82