blob: 4322124069118fb2958413f533a4dc740020f72d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#ifndef SETJMP_H
#define SETJMP_H
#include "stdint.h"
// C99 states this should be an array so we can address it without
// the & operator, see prototypes of setjmp and longjmp
// eax, ecx and edx are scratch registers, save the others
// also store the jump address (eip)
typedef struct {
uint32_t ebx;
uint32_t esp;
uint32_t ebp;
uint32_t esi;
uint32_t edi;
uint32_t eip;
} jmp_buf[1];
int setjmp( jmp_buf env );
void longjmp( jmp_buf env, int val );
#endif // SETJMP_H
|