Defines new struct user_context (XCC)
[akaros.git] / kern / arch / sparc / ros / trapframe.h
1 #ifndef ROS_INC_ARCH_TRAPFRAME_H
2 #define ROS_INC_ARCH_TRAPFRAME_H
3
4 #ifndef ROS_INC_TRAPFRAME_H
5 #error "Do not include include ros/arch/trapframe.h directly"
6 #endif
7
8 #include <ros/common.h>
9 #include <stdint.h>
10
11 typedef struct trapframe
12 {
13         uint32_t gpr[32] __attribute__((aligned (8)));
14         uint32_t psr;
15         uint32_t pc;
16         uint32_t npc;
17         uint32_t wim;
18         uint32_t tbr;
19         uint32_t y;
20         uint32_t fault_status;
21         uint32_t fault_addr;
22         uint64_t timestamp;
23 } trapframe_t;
24
25 /* Temporary aliasing */
26 #define hw_trapframe trapframe
27
28 struct sw_trapframe {
29         /* TODO */
30 };
31
32 /* TODO: consider using a user-space specific trapframe, since they don't need
33  * all of this information.  Will do that eventually, but til then: */
34 #define user_trapframe trapframe
35
36 typedef struct ancillary_state
37 {
38         uint32_t fpr[32] __attribute__((aligned (8)));
39         uint32_t fsr;
40 } ancillary_state_t;
41
42 #endif /* ROS_INC_ARCH_TRAPFRAME_H */