Annotation of qemu/roms/ipxe/src/arch/i386/include/setjmp.h, revision 1.1

1.1     ! root        1: #ifndef ETHERBOOT_SETJMP_H
        !             2: #define ETHERBOOT_SETJMP_H
        !             3: 
        !             4: FILE_LICENCE ( GPL2_OR_LATER );
        !             5: 
        !             6: #include <stdint.h>
        !             7: #include <realmode.h>
        !             8: 
        !             9: /** A jump buffer */
        !            10: typedef struct {
        !            11:        uint32_t retaddr;
        !            12:        uint32_t ebx;
        !            13:        uint32_t esp;
        !            14:        uint32_t ebp;
        !            15:        uint32_t esi;
        !            16:        uint32_t edi;
        !            17: } jmp_buf[1];
        !            18: 
        !            19: /** A real-mode-extended jump buffer */
        !            20: typedef struct {
        !            21:        jmp_buf env;
        !            22:        uint16_t rm_ss;
        !            23:        uint16_t rm_sp;
        !            24: } rmjmp_buf[1];
        !            25: 
        !            26: extern int __asmcall setjmp ( jmp_buf env );
        !            27: extern void __asmcall longjmp ( jmp_buf env, int val );
        !            28: 
        !            29: #define rmsetjmp( _env ) ( {                   \
        !            30:        (_env)->rm_ss = rm_ss;                  \
        !            31:        (_env)->rm_sp = rm_sp;                  \
        !            32:        setjmp ( (_env)->env ); } )             \
        !            33: 
        !            34: #define rmlongjmp( _env, _val ) do {           \
        !            35:        rm_ss = (_env)->rm_ss;                  \
        !            36:        rm_sp = (_env)->rm_sp;                  \
        !            37:        longjmp ( (_env)->env, (_val) );        \
        !            38:        } while ( 0 )
        !            39: 
        !            40: #endif /* ETHERBOOT_SETJMP_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.