|
|
1.1 ! root 1: /* ! 2: * static char ID_strcth[] = "@(#) struct.h: 1.1 1/7/82"; ! 3: */ ! 4: ! 5: /* ! 6: * Each manager keeps track of information relevant to a particular ! 7: * frame. There is one manager for each frame. ! 8: * ! 9: * forward, backward: link the managers into a doubly-linked list of ! 10: * available (e.g., free) page frames ! 11: * frame_pntr: the address of the start of the ! 12: * associated frame. ! 13: * ! 14: * These three fields are initialized by function sdpinit(), and do ! 15: * not change. ! 16: * ! 17: * page_id: the itemid of the start of the page ! 18: * which resides in the associated frame. ! 19: * ref_chng: a flag which indicates whether or not ! 20: * the page which resides in the associated frame ! 21: * has been changed. ! 22: * lock_count: the number of lock calls made on items on the resident ! 23: * page without a corresponding unlock call being issued ! 24: * partition: the number of the page-frame partition ! 25: * to which this manager belongs ! 26: * ! 27: * The value of these last three members is transient. ! 28: */ ! 29: ! 30: struct frame_manager { ! 31: long page_id; /* itemid to start of resident page */ ! 32: int lock_count; /* number of locks without matching ! 33: unlocks */ ! 34: int forward; /* forward link to next manager */ ! 35: int backward; /* backward link to previous manager */ ! 36: int ref_chng; /* reference/change flag */ ! 37: int partition; /* page frame partition */ ! 38: char *frame_pntr; /* address of associated frame */ ! 39: }; ! 40: ! 41: typedef struct frame_manager MANAGER; ! 42: /*eject*/ ! 43: /* ! 44: * A structure header_buffer exists for each open address space. ! 45: * Each structure contains information which descirbe the status ! 46: * of the associated address space. ! 47: */ ! 48: ! 49: struct header_buffer { ! 50: long maxpage; /* largest page number allocated */ ! 51: long curpage; /* page number of current page */ ! 52: int curoffset; /* offset into current page */ ! 53: int numbfiles; /* number of files composing space */ ! 54: long filesize[MAXFILES]; /* size (in pages) of files */ ! 55: int filedes[MAXFILES]; /* file descriptors of files */ ! 56: }; ! 57: ! 58: typedef struct header_buffer HEADER;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.