Annotation of researchv10no/cmd/hdr/alloc.h, revision 1.1.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.