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

1.1       root        1: static char ID[] = "@(#) sync.c: 1.1 3/16/82";
                      2: #include <stdio.h>
                      3: #include "sdp.h"
                      4: #include "define3.h"
                      5: 
                      6: #ifdef SHORT
                      7: #define SY01   "SY01 "
                      8: #define SY02   "SY02 "
                      9: #define SY03   "SY03 "
                     10: #define SY04   "SY04 "
                     11: #define SY05   "SY05 "
                     12: #define SYAU   "SYAU "
                     13: #else
                     14: #define SY01   "SY01 -- error return from readpage\n%o\n",sp
                     15: #define SY02   "SY02 -- error return from writeframe\n%o\n",sp
                     16: #define SY03   "SY03 -- unknown ref/chng flag\n%o\t%d\n",sp,manager[i].ref_chng
                     17: #define SY04   "SY04 -- error return from wtSPACE\n%o\n",sp
                     18: #define SY05   "SY05 -- space not connected\n%o\n",sp
                     19: #define SYAU   "%s","SYAU -- audit failed in sdp_sync\n"
                     20: #endif
                     21: 
                     22: #ifdef SWEET
                     23: #define PROLOG
                     24: #define EPILOG
                     25: #else
                     26: #define PROLOG         if( (aud_flag == AUDITON) && (aud_check() == ERROR) )\
                     27:                                ERR_RET(SYAU,ERROR)
                     28: #define EPILOG         if(aud_flag == AUDITON)\
                     29:                                aud_set() ;\
                     30:                        if(hist_fp != NULL)\
                     31:                                fprintf(hist_fp,"SY\t%o\n",sp) ;
                     32: #endif
                     33: 
                     34: extern int aud_flag ;
                     35: extern struct SPACE *first_space ;
                     36: extern struct LIBFILE *Glib_file ;
                     37: extern FILE *hist_fp ;
                     38: 
                     39: extern int aud_check() ;
                     40: extern aud_set() ;
                     41: extern FATAL() ;
                     42: extern int     readpage() ;
                     43: extern int     wtSPACE() ;
                     44: 
                     45: int                                    /* SUCCESS or ERROR */
                     46: sdp_sync(sp)
                     47: struct SPACE   *sp ;
                     48: {
                     49:        register int             i ;
                     50:        register struct SPACE   *curr ;
                     51:        register struct MANAGER *manager ;
                     52: 
                     53:        PROLOG
                     54:        for(curr=first_space; curr!=NULL; curr=curr->next_space)
                     55:        {
                     56:                if( (curr==sp) || (sp==NULL) )
                     57:                {
                     58:                        Glib_file = curr->lib_file ;
                     59: 
                     60:                        manager = (curr->environ)->manp ;
                     61: 
                     62:                        for(i=0; i<(curr->environ)->num_frames; i++)
                     63:                                switch(manager[i].ref_chng)
                     64:                                {
                     65:                                        case RNLY:
                     66:                                                if(readpage(curr,manager[i].page_id,i) == ERROR)
                     67:                                                        ERR_RET(SY01,ERROR)
                     68:                                                break ;
                     69: 
                     70:                                        case WRTN:
                     71:                                                if( (curr->perms != WRTN)  ||  (writeframe(curr,i) == ERROR) )
                     72:                                                        ERR_RET(SY02,ERROR)
                     73:                                                manager[i].ref_chng = RNLY ;
                     74:                                                break ;
                     75: 
                     76:                                        case RCNULL:
                     77:                                                break ;
                     78: 
                     79:                                        default:
                     80:                                                ERR_RET(SY03,ERROR)
                     81:                                                break ;
                     82: 
                     83:                                }
                     84:                        if ((curr->perms == WRTN) && (wtSPACE(curr) == ERROR))
                     85:                                ERR_RET(SY04,ERROR)
                     86:                        if(sp == curr)
                     87:                                break ;
                     88:                }
                     89:        }
                     90:        if( (curr==NULL) && (sp!=NULL) )
                     91:                ERR_RET(SY04,ERROR)
                     92:        EPILOG
                     93:        return(SUCCESS) ;
                     94: }

unix.superglobalmegacorp.com

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