Annotation of researchv10no/cmd/hdr/alloc.h, revision 1.1

1.1     ! root        1: extern char    *alloc_end;
        !             2: extern char    *alloc_ptr;
        !             3: extern cfrag   *kfree;
        !             4: extern cfrag   *ktmp;
        !             5: extern cnode   *cfree;
        !             6: extern cnode   *ctmp;
        !             7: extern token   *tfree;
        !             8: extern token   *ttmp;
        !             9: extern xnode   *xfree;
        !            10: extern xnode   *xtmp;
        !            11: 
        !            12: extern char    *alloc_fill();
        !            13: extern char    *alloc_vector();
        !            14: extern char    *chunk();
        !            15: extern char    *rechunk();
        !            16: extern cfrag   *kreplenish();
        !            17: extern cnode   *creplenish();
        !            18: extern token   *treplenish();
        !            19: extern void    free_chunk();
        !            20: extern xnode   *xreplenish();
        !            21: 
        !            22: #define        alloc(n)        ((alloc_ptr += (n)) > alloc_end ? alloc_fill(n) : (alloc_ptr - (n)))
        !            23: #define        talloc(x)       (x *)alloc(sizeof(x))
        !            24: #define        vector(p, n, t) (t *)alloc_vector((char *)p, (n) * sizeof (t))
        !            25: 
        !            26: #if    !defined(ALLOC_CALLS) && !defined(ALLOC_INTRIN)
        !            27: #define        new_cnode()     (cfree = (ctmp = cfree == NULL ? creplenish() : cfree)->c_next, ctmp)
        !            28: #define        free_cnode(c)   (ctmp = cfree, (cfree = c)->c_next = ctmp)
        !            29: 
        !            30: #define        new_cfrag()     (kfree = (ktmp = kfree == NULL ? kreplenish() : kfree)->k_next, ktmp)
        !            31: #define        free_cfrag(k)   (ktmp = kfree, (kfree = k)->k_next = ktmp)
        !            32: 
        !            33: #define        new_token()     (tfree = (ttmp = tfree == NULL ? treplenish() : tfree)->t_value.t, ttmp)
        !            34: #define        free_token(p)   (ttmp = tfree, (tfree = p)->t_value.t = ttmp)
        !            35: 
        !            36: #define        new_xnode()     (xfree = (xtmp = xfree == NULL ? xreplenish() : xfree)->x_left, xtmp)
        !            37: #define        free_xnode(x)   (xtmp = xfree, (xfree = x)->x_left = xtmp)
        !            38: #else
        !            39: extern void    free_cnode();
        !            40: extern cnode   *new_cnode();
        !            41: extern void    free_cfrag();
        !            42: extern cfrag   *new_cfrag();
        !            43: extern void    free_token();
        !            44: extern token   *new_token();
        !            45: extern void    free_xnode();
        !            46: extern xnode   *new_xnode();
        !            47: #endif

unix.superglobalmegacorp.com

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