Initial notification and preemption headers
[akaros.git] / kern / arch / sparc / ros / trapframe.h
1 #ifndef ROS_INCLUDE_ARCH_TRAPFRAME_H
2 #define ROS_INCLUDE_ARCH_TRAPFRAME_H
3
4 typedef struct trapframe
5 {
6         uint32_t gpr[32] __attribute__((aligned (8)));
7         uint32_t psr;
8         uint32_t pc;
9         uint32_t npc;
10         uint32_t wim;
11         uint32_t tbr;
12         uint32_t y;
13         uint32_t asr13;
14         uint32_t pc_insn;
15         uint32_t fault_status;
16         uint32_t fault_addr;
17         uint64_t timestamp;
18 } trapframe_t;
19
20 /* TODO: consider using a user-space specific trapframe, since they don't need
21  * all of this information.  Will do that eventually, but til then: */
22 #define user_trapframe trapframe
23
24 typedef struct ancillary_state
25 {
26         uint32_t fpr[32] __attribute__((aligned (8)));
27         uint32_t fsr;
28 } ancillary_state_t;
29
30 #endif /* !ROS_INCLUDE_ARCH_TRAPFRAME_H */