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

1.1       root        1: static char ID[] = "@(#) house.c: 1.1 3/16/82";
                      2: #include <stdio.h>
                      3: #include "sdp.h"
                      4: #include "define3.h"
                      5: 
                      6: #ifdef SHORT
                      7: #define HO01   "HO01 "
                      8: #define HO02   "HO02 "
                      9: #define HO03   "HO03 "
                     10: #define HO04   "HO04 "
                     11: #define HOAU   "HOAU "
                     12: #else
                     13: #define HO01   "HO01 -- illegal value of first parameter\n%d\n",num_frames
                     14: #define HO02   "%s","HO02 -- fail to allocate environment\n"
                     15: #define HO03   "%s","HO03 -- fail to allocate managers\n"
                     16: #define HO04   "HO04 -- fail to allocate frame\n%d\n",i
                     17: #define HOAU   "%s","HOAU -- audit failed in sdp_house\n"
                     18: #endif
                     19: 
                     20: #ifdef SWEET
                     21: #define PROLOG
                     22: #define EPILOG
                     23: #else
                     24: #define PROLOG         if( (aud_flag == AUDITON) && (aud_check() == ERROR) )\
                     25:                                ERR_RET(HOAU,NULL)
                     26: #define EPILOG         if(aud_flag == AUDITON)\
                     27:                                aud_set() ;\
                     28:                        if(hist_fp != NULL)\
                     29:                                fprintf(hist_fp,"HO\t%d\t%u\t%o\t%o\n",num_frames,frame_size,library,environ) ;
                     30: #endif
                     31: 
                     32: extern int aud_flag ;
                     33: extern struct ENVIRON *first_environ ;
                     34: extern struct LIBFILE *Glib_file ;
                     35: extern struct LIBMEM *Glib_mem ;
                     36: extern FILE *hist_fp ;
                     37: extern struct LIBMEM lib_mem ;
                     38: 
                     39: extern int *ALLOC() ;
                     40: extern int aud_check() ;
                     41: extern aud_set() ;
                     42: extern FATAL() ;
                     43: 
                     44: struct ENVIRON *                               /* pointer to environment or NULL */
                     45: sdp_house(num_frames,frame_size,library)
                     46: int            num_frames ;
                     47: unsigned       frame_size ;
                     48: struct LIBMEM  *library ;
                     49: {
                     50:        register struct ENVIRON *environ ;
                     51:        register struct MANAGER *manager ;
                     52:        register int            i ;
                     53: 
                     54:        PROLOG
                     55:        Glib_mem = (library == NULL) ? &lib_mem : library ;
                     56: 
                     57:        if(num_frames <= 0)
                     58:                ERR_RET(HO01,NULL)
                     59: 
                     60:        if( (environ = (struct ENVIRON *)MALLOC(sizeof(struct ENVIRON))) == NULL )
                     61:                ERR_RET(HO02,NULL)
                     62: 
                     63:        environ->num_frames   = num_frames ;
                     64:        environ->frame_size    = frame_size ;
                     65:        environ->cnct_count   = 0 ;
                     66:        environ->lib_mem      = Glib_mem ;
                     67: 
                     68:        if(  (environ->manp = (struct MANAGER *)MALLOC((num_frames+1)*sizeof(struct MANAGER))) == NULL )
                     69:                ERR_RET(HO03,NULL)
                     70: 
                     71:        manager = environ->manp ;
                     72:        environ->empties = 0 ;
                     73:        for(i=0; i<num_frames; i++)
                     74:        {
                     75:                manager[i].space      = NULL ;
                     76:                manager[i].page_id    = IDNULL ;
                     77:                manager[i].forward    = i+1 ;
                     78:                manager[i].backward   = END ;
                     79:                manager[i].ref_chng   = RCNULL ;
                     80:                manager[i].usecount   = 0l ;
                     81:                if( (manager[i].frame_pntr = (char *)MALLOC(frame_size)) == NULL )
                     82:                        ERR_RET(HO04,NULL)
                     83:        }
                     84: 
                     85:        manager[num_frames-1].forward   = END ;
                     86:        manager[num_frames].forward     = manager[num_frames].backward = num_frames ;
                     87:        manager[num_frames].space       = NULL ;
                     88:        manager[num_frames].page_id     = IDNULL ;
                     89:        manager[num_frames].ref_chng    = RCNULL ;
                     90:        manager[num_frames].usecount    = 0l ;
                     91:        manager[num_frames].frame_pntr  = NULL ;
                     92: 
                     93:        environ->stats.uses   = 0l ;
                     94:        environ->stats.faults = 0l ;
                     95:        environ->stats.writes = 0l ;
                     96:        environ->stats.maxuse = 0  ;
                     97:        environ->stats.curuse = 0  ;
                     98: 
                     99:        environ->next_environ = first_environ ;
                    100:        first_environ         = environ ;
                    101:        EPILOG
                    102:        return(environ) ;
                    103: }

unix.superglobalmegacorp.com

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