Architectural Support: x86_64 (#37)
[lunaix-os.git] / lunaix-os / arch / x86 / includes / sys / interrupt64.S.inc
1
2 #define regsize     8
3 #define regsize32   4
4
5 /* stack layout: saved interrupt context */
6     .struct 0
7 idepth:
8     .struct idepth + regsize
9 irax:
10     .struct irax + regsize
11 irbx:
12     .struct irbx + regsize
13 ircx:
14     .struct ircx + regsize
15 irdx:
16     .struct irdx + regsize
17 irdi:
18     .struct irdi + regsize
19 irbp:
20     .struct irbp + regsize
21 irsi:
22     .struct irsi + regsize
23 ir8:
24     .struct ir8 + regsize
25 ir9:
26     .struct ir9 + regsize
27 ir10:
28     .struct ir10 + regsize
29 ir11:
30     .struct ir11 + regsize
31 ir12:
32     .struct ir12 + regsize
33 ir13:
34     .struct ir13 + regsize
35 ir14:
36     .struct ir14 + regsize
37 ir15:
38     .struct ir15 + regsize
39 iexecp:
40 irsp:
41     .struct irsp + regsize
42 isave_parent:
43     .struct isave_parent + regsize
44 ivec:
45     .struct ivec + regsize
46 iecode:
47     .struct iecode + regsize
48 irip:
49     .struct irip + regsize
50 ics:
51     .struct ics + regsize
52 irflags:
53     .struct irflags + regsize
54 iursp:
55     .struct iursp + regsize
56 iuss:
57
58
59 /* stack layout: execution (flow-control) state context */
60     .struct 0
61 exsave_prev:
62     .struct exsave_prev + regsize
63 exvec:
64     .struct exvec + regsize
65 execode:
66     .struct execode + regsize
67 exrip:
68     .struct exrip + regsize
69 excs:
70     .struct excs + regsize
71 exrflags:
72     .struct exrflags + regsize
73 exursp:
74     .struct exursp + regsize
75 exuss:
76
77 /* struct layout: critical section of struct proc_info */
78     .struct 0
79 thread_hstate:
80     .struct thread_hstate + regsize
81 thread_ustack_top:
82
83 /* struct layout: proc_sig */
84     .struct 0
85 psig_signum:
86     .struct psig_signum + regsize32
87 psig_sigact:
88     .struct psig_sigact + regsize
89 psig_sighand:
90     .struct psig_sighand + regsize
91 psig_saved_hstate:
92
93 /* struct layout: x86_tss */
94     .struct 0
95     .struct regsize32
96 rsp_0:
97     .struct rsp_0 + regsize
98 rsp_1:
99     .struct rsp_1 + regsize
100 rsp_2:
101     .struct rsp_2 + regsize
102 rsp_3:
103     .struct rsp_3 + regsize
104 ist_null:
105     .struct ist_null + regsize
106 ist_1:
107