Annotation of researchv9/jerq/sgs/libsdp/generate.c, revision 1.1.1.1

1.1       root        1: static char ID[] = "@(#) generate.c: 1.2 12/8/82";
                      2: #include <stdio.h>
                      3: #include "sdp.h"
                      4: 
                      5: #define YYMMDD 811221
                      6: 
                      7: #include "define3.h"
                      8: 
                      9: #ifdef SHORT
                     10: #define GE01   "GE01 "
                     11: #define GE02   "GE02 "
                     12: #define GE03   "GE03 "
                     13: #define GE04   "GE04 "
                     14: #define GE05   "GE05 "
                     15: #define GE06   "GE06 "
                     16: #define GEAU   "GEAU "
                     17: #else
                     18: #define GE01   "GE01 -- fail to allocate header\n%s\n",name
                     19: #define GE02   "GE02 -- fail to allocate for file structure\n%s\n",name
                     20: #define GE03   "GE03 -- fail to allocate stacks structure\n%s\n",name
                     21: #define GE04   "GE04 -- fail to build name\n%s\n",name
                     22: #define GE05   "GE05 -- fail to create header file\n%s\n",sp->head_name
                     23: #define GE06   "GE06 -- error return from wtSPACE\n%s\n",name
                     24: #define GEAU   "%s","GEAU -- audit failed in sdp_generate\n"
                     25: #endif
                     26: 
                     27: #ifdef SWEET
                     28: #define PROLOG
                     29: #define EPILOG
                     30: #else
                     31: #define PROLOG         if( (aud_flag == AUDITON) && (aud_check() == ERROR) )\
                     32:                                ERR_RET(GEAU,ERROR)
                     33: #define EPILOG         if(aud_flag == AUDITON)\
                     34:                                aud_set() ;\
                     35:                        if(hist_fp != NULL)\
                     36:                                fprintf(hist_fp,"GE\t%s\t%u\t%o\n",name,page_size,library) ;
                     37: #endif
                     38: 
                     39: 
                     40: extern int aud_flag ;
                     41: extern struct LIBFILE *Glib_file ;
                     42: extern long Gln_file[] ;
                     43: extern int Gnumbfile ;
                     44: extern int Gnumbstax ;
                     45: extern int  Gsz_stax[] ;
                     46: extern FILE *hist_fp ;
                     47: extern struct LIBFILE lib_file ;
                     48: 
                     49: extern int *ALLOC() ;
                     50: extern char *BUILDNAME() ;
                     51: extern aud_set() ;
                     52: extern int aud_check() ;
                     53: extern struct LIBFILE lib_file ;
                     54: extern struct LIBFILE *Glib_file ;
                     55: extern FATAL() ;
                     56: extern int     wtSPACE() ;
                     57: extern         freeSPACE() ;
                     58: 
                     59: int                                    /* SUCCESS or ERROR */
                     60: sdp_generate(name,page_size,library,mode)
                     61: char           *name ;
                     62: unsigned       page_size ;
                     63: struct LIBFILE *library ;
                     64: int            mode ;
                     65: {
                     66:        register struct SPACE   *sp ;
                     67:        register int            i ;
                     68: 
                     69:        PROLOG
                     70: 
                     71:        Glib_file = (library == NULL) ? &lib_file : library ;
                     72: 
                     73:        if( (sp = (struct SPACE *)ALLOC(sizeof(struct SPACE))) == NULL )
                     74:                ERR_RET(GE01,ERROR)
                     75: 
                     76:        sp->version    = YYMMDD ;
                     77:        sp->page_size  = page_size ;
                     78:        sp->maxpage    = 0l ;
                     79:        sp->curpage    = IDNULL ;
                     80:        sp->curleft    = 0 ;
                     81:        sp->perms      = WRTN ;
                     82:        sp->mode       = mode ;
                     83:        sp->numbfile   = Gnumbfile ;
                     84:        sp->numbstax   = Gnumbstax+1 ;
                     85:        sp->known_id   = IDNULL ;
                     86:        sp->environ    = NULL ;
                     87:        sp->lib_file       = NULL ;
                     88:        sp->next_space = NULL ;
                     89:        sp->sp1_hash   = HASHNULL ;
                     90:        sp->sp2_hash   = HASHNULL ;
                     91: 
                     92:        if( (sp->fileinfo = (struct FILEINFO *)ALLOC(sp->numbfile*sizeof(struct FILEINFO))) == NULL )
                     93:                ERR_RET(GE02,ERROR)
                     94: 
                     95:        for(i=0; i<sp->numbfile; i++)
                     96:        {
                     97:                sp->fileinfo[i].leng = Gln_file[i] ;
                     98:                sp->fileinfo[i].desc = NOTMADE ;
                     99:        }
                    100: 
                    101:        if( (sp->staxinfo = (struct STAXINFO *)ALLOC((sp->numbstax+1)*sizeof(struct STAXINFO))) == NULL )
                    102:                ERR_RET(GE03,ERROR)
                    103: 
                    104:        sp->staxinfo[0].top  = IDNULL ;
                    105:        sp->staxinfo[0].size = 0 ;
                    106:        sp->staxinfo[0].depth = 0 ;
                    107:        for(i=1; i<sp->numbstax; i++)
                    108:        {
                    109:                sp->staxinfo[i].top =  IDNULL ;
                    110:                sp->staxinfo[i].size = Gsz_stax[i-1] ;
                    111:                sp->staxinfo[i].depth = 0 ;
                    112:        }
                    113: 
                    114:        if( (sp->head_name = MBUILDNAME(name,-1)) == NULL )
                    115:                ERR_RET(GE04,ERROR)
                    116:        if(MCREATE(sp->head_name,mode) == ERROR)
                    117:                ERR_RET(GE05,ERROR)
                    118: 
                    119:        if(wtSPACE(sp) == ERROR)
                    120:                ERR_RET(GE06,ERROR)
                    121: 
                    122:        freeSPACE(sp) ;
                    123: 
                    124: 
                    125:        EPILOG
                    126:        return(SUCCESS) ;
                    127: }

unix.superglobalmegacorp.com

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