Annotation of researchv9/jerq/sgs/libsdp/connect.c, revision 1.1

1.1     ! root        1: static char ID[] = "@(#) connect.c: 1.1 3/16/82";
        !             2: #include <stdio.h>
        !             3: #include "sdp.h"
        !             4: #include "define3.h"
        !             5: 
        !             6: #ifdef SHORT
        !             7: #define CO01   "CO01 "
        !             8: #define CO02   "CO02 "
        !             9: #define CO03   "CO03 "
        !            10: #define CO04   "CO04 "
        !            11: #define CO05   "CO05 "
        !            12: #define CO06   "CO06 "
        !            13: #define COAU   "COAU "
        !            14: #else
        !            15: #define CO01   "CO01 -- unknown permissions\n%d\n",perms
        !            16: #define CO02   "CO02 -- error return from rdSPACE\n%s\n",name
        !            17: #define CO03   "CO03 -- your address space (%ld) not compatible with this version (%ld)\n%s\n",sp->version,compatible,name
        !            18: #define CO04   "CO04 -- environment not housed\n%o\t%s\n",environ,name
        !            19: #define CO05   "CO05 -- framesize not compatible with file size\n%s\t%ld\t%d\n",name,sp->fileinfo[i].leng,environ->frame_size
        !            20: #define CO06   "CO06 -- page/frame conflict\n%s\t%d\t%d\n",name,environ->frame_size,sp->page_size
        !            21: #define COAU   "%s","COAU -- audit failed in sdp_connect\n"
        !            22: #endif
        !            23: 
        !            24: #ifdef SWEET
        !            25: #define PROLOG
        !            26: #define EPILOG
        !            27: #else
        !            28: #define PROLOG         if( (aud_flag == AUDITON) && (aud_check() == ERROR) )\
        !            29:                                ERR_RET(COAU,NULL)
        !            30: #define EPILOG         if(aud_flag == AUDITON)\
        !            31:                                aud_set() ;\
        !            32:                        if(hist_fp != NULL)\
        !            33:                                fprintf(hist_fp,"CO\t%s\t%o\t%o\n",name,environ,sp) ;
        !            34: #endif
        !            35: 
        !            36: extern int aud_flag ;
        !            37: extern struct LIBFILE *Glib_file ;
        !            38: extern int hist_fp ;
        !            39: extern struct LIBFILE lib_file ;
        !            40: extern struct SPACE *first_space ;
        !            41: extern ITEMID *known_idptr ;
        !            42: 
        !            43: extern aud_set() ;
        !            44: extern int aud_check() ;
        !            45: extern long compatible ;
        !            46: extern int ensearch() ;
        !            47: extern FATAL() ;
        !            48: extern struct SPACE *rdSPACE() ;
        !            49: 
        !            50: struct SPACE *                         /* pointer to configuration structure or NULL */
        !            51: sdp_connect(name,environ,library,perms)
        !            52: char           *name ;
        !            53: struct ENVIRON *environ ;
        !            54: struct LIBFILE *library ;
        !            55: int            perms ;
        !            56: {
        !            57:        register struct SPACE   *sp ;
        !            58:        register int            i ;
        !            59:  
        !            60:        PROLOG
        !            61: 
        !            62:        Glib_file = (library == NULL) ? &lib_file : library ;
        !            63:        if( (perms != RNLY)  &&  (perms != WRTN) )
        !            64:                ERR_RET(CO01,NULL)
        !            65: 
        !            66:        if( (sp = rdSPACE(name)) == NULL )
        !            67:                ERR_RET(CO02,NULL)
        !            68: 
        !            69:        if(sp->version < compatible)
        !            70:                ERR_RET(CO03,NULL)
        !            71: 
        !            72:        if( ensearch(environ) == NOTFOUND )
        !            73:                ERR_RET(CO04,NULL)
        !            74: 
        !            75:        for(i=0; i < sp->numbfile; i++)
        !            76:                if( sp->fileinfo[i].leng % environ->frame_size != 0 )
        !            77:                        ERR_RET(CO05,NULL)
        !            78: 
        !            79:        if(environ->frame_size % sp->page_size != 0)
        !            80:                ERR_RET(CO06,NULL)
        !            81: 
        !            82:        sp->next_space = first_space ;
        !            83:        first_space = sp ;
        !            84:        environ->cnct_count++ ;
        !            85:        sp->environ = environ ;
        !            86:        sp->lib_file = Glib_file ;
        !            87:        sp->perms = perms ;
        !            88:        known_idptr = &(sp->known_id) ;
        !            89:        EPILOG
        !            90:        return(sp) ;
        !            91: }

unix.superglobalmegacorp.com

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