Skip to content

Commit 2df89b0

Browse files
committed
Move the STATE structure from state.c to stdlib.c
1 parent e316c38 commit 2df89b0

3 files changed

Lines changed: 161 additions & 157 deletions

File tree

doc/e9tool-user-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1251,7 +1251,7 @@ Notes:
12511251
* The `state` argument is a pointer to a structure containing all
12521252
general-purpose registers, the flag register (`%rflags`), the stack register
12531253
(`%rsp`) and the instruction pointer register (`%rip`).
1254-
See the `state.c` example for the structure layout.
1254+
See `STATE` defined in `stdlib.c` for the structure layout.
12551255
Except for `%rip`, the values in the structure can be modified, in which
12561256
case the corresponding register will be updated accordingly.
12571257
* The `NAME[i]` argument will either be an integer or a string, depending on

examples/state.c

Lines changed: 0 additions & 156 deletions
Original file line numberDiff line numberDiff line change
@@ -13,162 +13,6 @@
1313

1414
#include "stdlib.c"
1515

16-
/*
17-
* The "state" data structure.
18-
*/
19-
struct STATE
20-
{
21-
union
22-
{
23-
uint16_t rflags;
24-
uint64_t __padding;
25-
};
26-
union
27-
{
28-
int64_t r15;
29-
int32_t r15d;
30-
int16_t r15w;
31-
int8_t r15b;
32-
};
33-
union
34-
{
35-
int64_t r14;
36-
int32_t r14d;
37-
int16_t r14w;
38-
int8_t r14b;
39-
};
40-
union
41-
{
42-
int64_t r13;
43-
int32_t r13d;
44-
int16_t r13w;
45-
int8_t r13b;
46-
};
47-
union
48-
{
49-
int64_t r12;
50-
int32_t r12d;
51-
int16_t r12w;
52-
int8_t r12b;
53-
};
54-
union
55-
{
56-
int64_t r11;
57-
int32_t r11d;
58-
int16_t r11w;
59-
int8_t r11b;
60-
};
61-
union
62-
{
63-
int64_t r10;
64-
int32_t r10d;
65-
int16_t r10w;
66-
int8_t r10b;
67-
};
68-
union
69-
{
70-
int64_t r9;
71-
int32_t r9d;
72-
int16_t r9w;
73-
int8_t r9b;
74-
};
75-
union
76-
{
77-
int64_t r8;
78-
int32_t r8d;
79-
int16_t r8w;
80-
int8_t r8b;
81-
};
82-
union
83-
{
84-
int64_t rdi;
85-
int32_t edi;
86-
int16_t di;
87-
int8_t dil;
88-
};
89-
union
90-
{
91-
int64_t rsi;
92-
int32_t esi;
93-
int16_t si;
94-
int8_t sil;
95-
};
96-
union
97-
{
98-
int64_t rbp;
99-
int32_t ebp;
100-
int16_t bp;
101-
int8_t bpl;
102-
};
103-
union
104-
{
105-
int64_t rbx;
106-
int32_t ebx;
107-
int16_t bx;
108-
struct
109-
{
110-
int8_t bl;
111-
int8_t bh;
112-
};
113-
};
114-
union
115-
{
116-
int64_t rdx;
117-
int32_t edx;
118-
int16_t dx;
119-
struct
120-
{
121-
int8_t dl;
122-
int8_t dh;
123-
};
124-
};
125-
union
126-
{
127-
int64_t rcx;
128-
int32_t ecx;
129-
int16_t cx;
130-
struct
131-
{
132-
int8_t cl;
133-
int8_t ch;
134-
};
135-
};
136-
union
137-
{
138-
int64_t rax;
139-
int32_t eax;
140-
int16_t ax;
141-
struct
142-
{
143-
int8_t al;
144-
int8_t ah;
145-
};
146-
};
147-
union
148-
{
149-
int64_t rsp;
150-
int32_t esp;
151-
int16_t sp;
152-
int16_t spl;
153-
};
154-
const union
155-
{
156-
int64_t rip;
157-
int32_t eip;
158-
int16_t ip;
159-
};
160-
};
161-
162-
/*
163-
* Flags.
164-
*/
165-
#define OF 0x0001
166-
#define CF 0x0100
167-
#define PF 0x0400
168-
#define AF 0x1000
169-
#define ZF 0x4000
170-
#define SF 0x8000
171-
17216
/*
17317
* Colors.
17418
*/

examples/stdlib.c

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5513,6 +5513,166 @@ static uint16_t htons(uint16_t) __attribute__((__alias__("ntohs")));
55135513
static uint32_t htonl(uint32_t) __attribute__((__alias__("ntohl")));
55145514
static uint64_t htonll(uint64_t) __attribute__((__alias__("ntohll")));
55155515

5516+
/****************************************************************************/
5517+
/* STATE */
5518+
/****************************************************************************/
5519+
5520+
/*
5521+
* The "state" data structure.
5522+
*/
5523+
struct STATE
5524+
{
5525+
union
5526+
{
5527+
uint16_t rflags;
5528+
uint64_t __padding;
5529+
};
5530+
union
5531+
{
5532+
int64_t r15;
5533+
int32_t r15d;
5534+
int16_t r15w;
5535+
int8_t r15b;
5536+
};
5537+
union
5538+
{
5539+
int64_t r14;
5540+
int32_t r14d;
5541+
int16_t r14w;
5542+
int8_t r14b;
5543+
};
5544+
union
5545+
{
5546+
int64_t r13;
5547+
int32_t r13d;
5548+
int16_t r13w;
5549+
int8_t r13b;
5550+
};
5551+
union
5552+
{
5553+
int64_t r12;
5554+
int32_t r12d;
5555+
int16_t r12w;
5556+
int8_t r12b;
5557+
};
5558+
union
5559+
{
5560+
int64_t r11;
5561+
int32_t r11d;
5562+
int16_t r11w;
5563+
int8_t r11b;
5564+
};
5565+
union
5566+
{
5567+
int64_t r10;
5568+
int32_t r10d;
5569+
int16_t r10w;
5570+
int8_t r10b;
5571+
};
5572+
union
5573+
{
5574+
int64_t r9;
5575+
int32_t r9d;
5576+
int16_t r9w;
5577+
int8_t r9b;
5578+
};
5579+
union
5580+
{
5581+
int64_t r8;
5582+
int32_t r8d;
5583+
int16_t r8w;
5584+
int8_t r8b;
5585+
};
5586+
union
5587+
{
5588+
int64_t rdi;
5589+
int32_t edi;
5590+
int16_t di;
5591+
int8_t dil;
5592+
};
5593+
union
5594+
{
5595+
int64_t rsi;
5596+
int32_t esi;
5597+
int16_t si;
5598+
int8_t sil;
5599+
};
5600+
union
5601+
{
5602+
int64_t rbp;
5603+
int32_t ebp;
5604+
int16_t bp;
5605+
int8_t bpl;
5606+
};
5607+
union
5608+
{
5609+
int64_t rbx;
5610+
int32_t ebx;
5611+
int16_t bx;
5612+
struct
5613+
{
5614+
int8_t bl;
5615+
int8_t bh;
5616+
};
5617+
};
5618+
union
5619+
{
5620+
int64_t rdx;
5621+
int32_t edx;
5622+
int16_t dx;
5623+
struct
5624+
{
5625+
int8_t dl;
5626+
int8_t dh;
5627+
};
5628+
};
5629+
union
5630+
{
5631+
int64_t rcx;
5632+
int32_t ecx;
5633+
int16_t cx;
5634+
struct
5635+
{
5636+
int8_t cl;
5637+
int8_t ch;
5638+
};
5639+
};
5640+
union
5641+
{
5642+
int64_t rax;
5643+
int32_t eax;
5644+
int16_t ax;
5645+
struct
5646+
{
5647+
int8_t al;
5648+
int8_t ah;
5649+
};
5650+
};
5651+
union
5652+
{
5653+
int64_t rsp;
5654+
int32_t esp;
5655+
int16_t sp;
5656+
int16_t spl;
5657+
};
5658+
const union
5659+
{
5660+
int64_t rip;
5661+
int32_t eip;
5662+
int16_t ip;
5663+
};
5664+
};
5665+
5666+
/*
5667+
* Flags.
5668+
*/
5669+
#define OF 0x0001
5670+
#define CF 0x0100
5671+
#define PF 0x0400
5672+
#define AF 0x1000
5673+
#define ZF 0x4000
5674+
#define SF 0x8000
5675+
55165676
/****************************************************************************/
55175677
/* MISC */
55185678
/****************************************************************************/

0 commit comments

Comments
 (0)