iPXE
arch
x86
include
rmsetjmp.h
Go to the documentation of this file.
1
#ifndef _RMSETJMP_H
2
#define _RMSETJMP_H
3
4
FILE_LICENCE
( GPL2_OR_LATER_OR_UBDL );
5
6
#include <
setjmp.h
>
7
#include <
realmode.h
>
8
9
/** A real-mode-extended jump buffer */
10
typedef
struct
{
11
/** Jump buffer */
12
jmp_buf
env
;
13
/** Real-mode stack pointer */
14
segoff_t
rm_stack
;
15
}
rmjmp_buf
[1];
16
17
#define rmsetjmp( _env ) ( { \
18
(_env)->rm_stack.segment = rm_ss; \
19
(_env)->rm_stack.offset = rm_sp; \
20
setjmp ( (_env)->env ); } ) \
21
22
#define rmlongjmp( _env, _val ) do { \
23
rm_ss = (_env)->rm_stack.segment; \
24
rm_sp = (_env)->rm_stack.offset; \
25
longjmp ( (_env)->env, (_val) ); \
26
} while ( 0 )
27
28
#endif
/* _RMSETJMP_H */
FILE_LICENCE
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
Definition
compiler.h:896
setjmp.h
realmode.h
segoff_t
struct segoff segoff_t
Definition
registers.h:196
jmp_buf
A jump buffer.
Definition
setjmp.h:9
rmjmp_buf
A real-mode-extended jump buffer.
Definition
rmsetjmp.h:10
rmjmp_buf::rm_stack
segoff_t rm_stack
Real-mode stack pointer.
Definition
rmsetjmp.h:14
rmjmp_buf::env
jmp_buf env
Jump buffer.
Definition
rmsetjmp.h:12
Generated by
1.14.0