|
|
1.1 ! root 1: static char ID[] = "@(#) fault.c: 1.1 3/16/82"; ! 2: #include "sdp.h" ! 3: #include "define3.h" ! 4: ! 5: #ifdef SHORT ! 6: #define FA01 "FA01 " ! 7: #define FA02 "FA02 " ! 8: #define FA03 "FA03 " ! 9: #define FA04 "FA04 " ! 10: #else ! 11: #define FA01 "%s","FA01 -- error return from nextsearch\n" ! 12: #define FA02 "%s","FA02 -- error return from writeframe\n" ! 13: #define FA03 "FA03 -- unknown ref/change value\n%d\t%o\t%d\n",manager[frame].ref_chng,sp,frame ! 14: #define FA04 "%s","FA04 -- error return from readpage\n" ! 15: #endif ! 16: ! 17: extern FATAL() ; ! 18: extern struct LIBFILE *Glib_file ; ! 19: extern nextsearch() ; ! 20: extern readpage() ; ! 21: extern writeframe() ; ! 22: ! 23: int /* frame number of ERROR */ ! 24: fault(sp,id) ! 25: struct SPACE *sp ; ! 26: ITEMID id ; ! 27: { ! 28: register int frame ; ! 29: register struct MANAGER *manager ; ! 30: ! 31: id -= id % (sp->environ)->frame_size ; ! 32: if( (frame = nextsearch(sp->environ)) == NOTFOUND) ! 33: ERR_RET(FA01,ERROR) ! 34: ! 35: manager = (sp->environ)->manp ; ! 36: switch(manager[frame].ref_chng) ! 37: { ! 38: case WRTN: ! 39: if(writeframe(manager[frame].space,frame) == ERROR) ! 40: ERR_RET(FA02,ERROR) ! 41: ! 42: case RCNULL: ! 43: case RNLY: ! 44: break ; ! 45: ! 46: default: ! 47: ERR_RET(FA03,ERROR) ! 48: break ; ! 49: } ! 50: ! 51: if(readpage(sp,id,frame) == ERROR) ! 52: ERR_RET(FA04,ERROR) ! 53: ! 54: manager[frame].space = sp ; ! 55: manager[frame].page_id = id ; ! 56: ! 57: return(frame) ; ! 58: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.