Annotation of researchv10dc/630/3binc/patch.h, revision 1.1

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

unix.superglobalmegacorp.com

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