Annotation of coherent/f/etc/conf/bin/src/buildobj.h, revision 1.1.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.