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

1.1     ! root        1: #ifndef        BUILDOBJ_H
        !             2: #define        BUILDOBJ_H
        !             3: 
        !             4: /*
        !             5:  * This file declares structures and function prototypes for some routines
        !             6:  * useful for building up objects a piece at a time.
        !             7:  */
        !             8: 
        !             9: /*
        !            10:  *-IMPORTS:
        !            11:  *     <sys/compat.h>
        !            12:  *             EXTERN_C_BEGIN
        !            13:  *             EXTERN_C_END
        !            14:  *             VOID
        !            15:  *             PROTO ()
        !            16:  *     <stddef.h>
        !            17:  *             size_t
        !            18:  */
        !            19: 
        !            20: #include <sys/compat.h>
        !            21: #include <stddef.h>
        !            22: 
        !            23: /*
        !            24:  * The following code can be used as the basis of a system for building up
        !            25:  * objects such as symbol-table entries incrementally. It's kind of like the
        !            26:  * GNU obstack system (and clearly inspired by it), but it's not free
        !            27:  * software. It's also a little more clearly laid out, and easier to
        !            28:  * understand and modify, and slower.
        !            29:  */
        !            30: 
        !            31: #ifndef        BUILD_T
        !            32: #define        BUILD_T
        !            33: typedef struct builder         build_t;
        !            34: #endif
        !            35: 
        !            36: 
        !            37: /*
        !            38:  * Return values from build functions.
        !            39:  */
        !            40: 
        !            41: enum {
        !            42:        BUILD_CORRUPT = -10,
        !            43:        BUILD_STACK_EMPTY = -9,
        !            44:        BUILD_BAD_NESTING = -8,
        !            45:        BUILD_NOT_LAST = -7,
        !            46:        BUILD_SIZE_OVERFLOW = -6,
        !            47:        BUILD_NO_MEMORY = -5,
        !            48:        BUILD_NO_OBJECT = -4,
        !            49:        BUILD_OBJECT_BEGUN = -3,
        !            50:        BUILD_NULL_BASE = -2,
        !            51:        BUILD_NULL_HEAP = -1,
        !            52:        BUILD_OK
        !            53: };
        !            54: 
        !            55: /*
        !            56:  * Special value for "init" parameter in functions below that causes newly
        !            57:  * allocated memory to be cleared.
        !            58:  */
        !            59: 
        !            60: #define        INIT_ZERO       ((VOID *) 1)
        !            61: 
        !            62: 
        !            63: EXTERN_C_BEGIN
        !            64: 
        !            65: build_t              * builder_alloc   PROTO ((size_t _chunksize, size_t _align));
        !            66: void           builder_free    PROTO ((build_t * _heap));
        !            67: 
        !            68: VOID         * build_malloc    PROTO ((build_t * _heap, size_t _size));
        !            69: 
        !            70: int            build_begin     PROTO ((build_t * _heap, size_t _size,
        !            71:                                        CONST VOID * _init));
        !            72: int            build_add       PROTO ((build_t * _heap, size_t _size,
        !            73:                                        CONST VOID * _init));
        !            74: int            build_addchar   PROTO ((build_t * _heap, char _ch));
        !            75: VOID         * build_end       PROTO ((build_t * _heap, size_t * _size));
        !            76: 
        !            77: int            build_release   PROTO ((build_t * _heap, CONST VOID * _base));
        !            78: 
        !            79: CONST char    *        build_error     PROTO ((int _errcode));
        !            80: 
        !            81: int            build_push      PROTO ((build_t * _heap));
        !            82: int            build_pop       PROTO ((build_t * _heap));
        !            83: 
        !            84: EXTERN_C_END
        !            85: 
        !            86: #endif /* ! defined (BUILDOBJ_H) */

unix.superglobalmegacorp.com

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