Annotation of researchv10no/cmd/odist/pax/include/stack.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * G. S. Fowler
        !             3:  * AT&T Bell Laboratories
        !             4:  *
        !             5:  * stack routine definitions
        !             6:  */
        !             7: 
        !             8: #ifndef __STACK_H
        !             9: 
        !            10: #define __STACK_H
        !            11: 
        !            12: #ifndef VOID
        !            13: #define VOID   char
        !            14: #endif
        !            15: 
        !            16: typedef struct stacktable* STACK;      /* stack pointer                */
        !            17: typedef struct stackposition STACKPOS; /* stack position               */
        !            18: 
        !            19: struct stackblock                      /* stack block cell             */
        !            20: {
        !            21:        char**            stack;        /* actual stack                 */
        !            22:        struct stackblock* prev;        /* previous block in list       */
        !            23:        struct stackblock* next;        /* next block in list           */
        !            24: };
        !            25: 
        !            26: struct stackposition                   /* stack position               */
        !            27: {
        !            28:        struct stackblock* block;       /* current block pointer        */
        !            29:        int             index;          /* index within current block   */
        !            30: };
        !            31: 
        !            32: struct stacktable                      /* stack information            */
        !            33: {
        !            34:        struct stackblock* blocks;      /* stack table blocks           */
        !            35:        char*           error;          /* error return value           */
        !            36:        int             size;           /* size of each block           */
        !            37:        STACKPOS        position;       /* current stack position       */
        !            38: };
        !            39: 
        !            40: #if __STDC__ || __cplusplus || c_plusplus
        !            41: 
        !            42: #if __cplusplus
        !            43: extern "C" {
        !            44: #endif
        !            45: 
        !            46: extern STACK   mkstack(int size, char* error);
        !            47: extern void    rmstack(STACK stack);
        !            48: extern void    clrstack(STACK stack);
        !            49: extern char*   getstack(STACK stack);
        !            50: extern int     pushstack(STACK stack, char* value);
        !            51: extern int     popstack(STACK stack);
        !            52: extern void    posstack(STACK stack, int set, STACKPOS* position);
        !            53: 
        !            54: #if __cplusplus
        !            55: }
        !            56: #endif
        !            57: 
        !            58: #else
        !            59: 
        !            60: extern STACK   mkstack();
        !            61: extern void    rmstack();
        !            62: extern void    clrstack();
        !            63: extern char*   getstack();
        !            64: extern int     pushstack();
        !            65: extern int     popstack();
        !            66: extern void    posstack();
        !            67: 
        !            68: #endif
        !            69: 
        !            70: #endif

unix.superglobalmegacorp.com

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