iPXE
setjmp.h
Go to the documentation of this file.
1 #ifndef _SETJMP_H
2 #define _SETJMP_H
3 
4 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
5 
6 #include <stdint.h>
7 
8 /** A jump buffer */
9 typedef struct {
10  /** Saved return address */
12  /** Saved stack pointer */
14  /** Saved %ebx */
16  /** Saved %esi */
18  /** Saved %edi */
20  /** Saved %ebp */
22 } jmp_buf[1];
23 
24 extern int __asmcall __attribute__ (( returns_twice ))
25 setjmp ( jmp_buf env );
26 
27 extern void __asmcall __attribute__ (( noreturn ))
28 longjmp ( jmp_buf env, int val );
29 
30 #endif /* _SETJMP_H */
uint32_t stack
Saved stack pointer.
Definition: setjmp.h:13
A jump buffer.
Definition: setjmp.h:9
#define __asmcall
Declare a function with standard calling conventions.
Definition: compiler.h:15
uint32_t ebp
Saved ebp.
Definition: setjmp.h:21
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
uint32_t ebx
Saved ebx.
Definition: setjmp.h:15
unsigned int uint32_t
Definition: stdint.h:12
void __asmcall int val
Definition: setjmp.h:28
int __asmcall __attribute__((returns_twice)) setjmp(jmp_buf env)
uint32_t esi
Saved esi.
Definition: setjmp.h:17
uint32_t retaddr
Saved return address.
Definition: setjmp.h:11
uint32_t edi
Saved edi.
Definition: setjmp.h:19