Annotation of coherent/b/STREAMS/conf/bin/src/ehand.h, revision 1.1

1.1     ! root        1: #ifndef        EHAND_H
        !             2: #define        EHAND_H
        !             3: 
        !             4: /*
        !             5:  *-IMPORTS:
        !             6:  *     <sys/compat.h>
        !             7:  *             CONST
        !             8:  *             EXTERN_C_BEGIN
        !             9:  *             EXTERN_C_END
        !            10:  *             PROTO ()
        !            11:  *     <setjmp.h>
        !            12:  *             jmp_buf
        !            13:  *             setjmp ()
        !            14:  */
        !            15: 
        !            16: #include <sys/compat.h>
        !            17: #include <setjmp.h>
        !            18: 
        !            19: /*
        !            20:  * Structure used for error control.
        !            21:  */
        !            22: 
        !            23: typedef struct ehandler        ehand_t;
        !            24: 
        !            25: struct ehandler {
        !            26:        ehand_t       * eh_next;
        !            27:        jmp_buf         eh_buf;
        !            28: };
        !            29: 
        !            30: extern ehand_t       * estack_base;
        !            31: 
        !            32: #define        PUSH_HANDLER(eh)        setjmp (((eh).eh_next = estack_base,\
        !            33:                                         estack_base = & (eh), (eh).eh_buf))
        !            34: #define        POP_HANDLER(eh)         (estack_base != & (eh) ? \
        !            35:                                 error_error (__FILE__, __LINE__) : \
        !            36:                                 (void) (estack_base = (eh).eh_next))
        !            37: #define        CHAIN_ERROR(eh)         (chain_error (& (eh)))
        !            38: 
        !            39: 
        !            40: EXTERN_C_BEGIN
        !            41: 
        !            42: NO_RETURN void throw_error     PROTO ((CONST char * _fmt, ...));
        !            43: void           report_error    PROTO ((CONST char * _fmt, ...));
        !            44: void           error_error     PROTO ((CONST char * _file, int _line));
        !            45: void           chain_error     PROTO ((ehand_t * _ehand));
        !            46: 
        !            47: EXTERN_C_END
        !            48: 
        !            49: 
        !            50: #endif /* ! define (EHAND_H) */

unix.superglobalmegacorp.com

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