|
|
1.1 ! root 1: /* ! 2: * static char ID_patch[] = "@(#) patch.h: 1.3 7/23/82"; ! 3: */ ! 4: ! 5: struct plist ! 6: { ! 7: long blk_cnt; /* the number of blocks */ ! 8: union pentry ! 9: { ! 10: struct ! 11: { ! 12: long blk_addr; /* block address */ ! 13: long blk_size; /* size of block */ ! 14: unsigned short blk_scnum; /* section of block */ ! 15: char blk_type; /* type of block */ ! 16: char blk_pad; /* padding */ ! 17: } type01; /* FREE or OLD FCN */ ! 18: struct ! 19: { ! 20: long blk_addr; /* block address */ ! 21: long blk_ndx; /* fcn tv index */ ! 22: unsigned short blk_scnum; /* section of block */ ! 23: char blk_type; /* type of block */ ! 24: char blk_size; /* size of block */ ! 25: } type2; /* DECF */ ! 26: } block[1]; ! 27: }; ! 28: ! 29: #define PLIST struct plist ! 30: #define PENTRY union pentry ! 31: ! 32: #define PLSIZE sizeof(PLIST) ! 33: #define PESIZE sizeof(PENTRY) ! 34: ! 35: /* ! 36: * There are three types of patch list items: ! 37: * ! 38: * type0 : a block of FREE, unallocated patch space. This space ! 39: * can be used for overwrites ! 40: * type1 : a block of text space belonging to a function which ! 41: * has been replaced. The OLD Function can still ! 42: * be active ! 43: * type2 : a DECision Function, currently in use ! 44: */ ! 45: ! 46: #define FREE_patch 0 ! 47: #define OLDF_patch 1 ! 48: #define DECF_patch 2 ! 49: ! 50: /* ! 51: * Specify the number of bytes to leave at the start of any replaced ! 52: * function, when tv are not being used ! 53: * ! 54: * This space holds the explicit branch instruction - a "pseudo tv" - ! 55: * and must be an integral number of words, to insure proper function ! 56: * alignment ! 57: */ ! 58: ! 59: #define BRANCH 8
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.