Annotation of cci/usr/src/usr.bin/cdb/transBsd/sym.c, revision 1.1

1.1     ! root        1: /* $Header: sym.c,v 1.1 86/03/24 16:19:22 rcs Exp $ */
        !             2: /* (C) Copyright 1985 Third Eye Software, Inc. - All Rights Reserved */
        !             3: 
        !             4: #include "tes42.h"
        !             5: 
        !             6: 
        !             7: /* I S Y M   F   S Y M */
        !             8: 
        !             9: export int IsymFSym (sym)
        !            10: pSYMR  sym;
        !            11: {
        !            12:     return (sym - vrgSym);
        !            13: } /* IsymFSym */
        !            14: 
        !            15: 
        !            16: /* S Y M   F   I S Y M */
        !            17: 
        !            18: export pSYMR SymFIsym (isym)
        !            19: int    isym;
        !            20: {
        !            21:     return (vrgSym + isym);
        !            22: } /* SymFIsym */
        !            23: 
        !            24: 
        !            25: 
        !            26: /* S Y M   F   I N S E R T */
        !            27: 
        !            28: export pSYMR SymFInsert ()
        !            29: {
        !            30:     register pSYMR     sym;
        !            31:     static SYMR                asymZeroes;
        !            32: 
        !            33:     if (visymMac >= visymMax)
        !            34:        panic ("symbol overrrun");
        !            35:     visym = visymMac++;
        !            36:     sym = vrgSym + visym;
        !            37: 
        !            38:     *sym = asymZeroes;
        !            39: 
        !            40:     return (sym);
        !            41: } /* SymFInsert */
        !            42: 
        !            43: 
        !            44: /* D E L E T E   S Y M */
        !            45: 
        !            46: export void DeleteSym (sym)
        !            47: pSYMR  sym;
        !            48: {
        !            49:     long       isym;
        !            50: 
        !            51:     if (sym >= vrgSym + visymMac)
        !            52:        panic ("illegal symbol delete");
        !            53: 
        !            54:     visymMac--;
        !            55:     for (isym = IsymFSym(sym); isym < visymMac; isym++)
        !            56:        vrgSym[isym] = vrgSym[isym+1];
        !            57: } /* DeleteSym */
        !            58: 
        !            59: 
        !            60: /* S Y M   F   G L O B A L */
        !            61: 
        !            62: export pSYMR SymFGlobal()
        !            63: {
        !            64:     pSYMR      sym;
        !            65:     static SYMR        asymZeroes;
        !            66:     
        !            67:     if (visymGlMac >= visymGlMax)
        !            68:        panic("sym table overrun");
        !            69: 
        !            70:     visymGlobal = visymGlMac++;
        !            71:     sym = vrgSymGlobal + visymGlobal;
        !            72: 
        !            73:     *sym = asymZeroes;
        !            74: 
        !            75:     return(sym);
        !            76: } /* SymFGlobal */
        !            77: 
        !            78: 
        !            79: /* E X I S T I N G   S Y M   F   S B    P R O C */
        !            80: 
        !            81: export pSYMR ExistingSymFSbProc (iss)
        !            82: register int iss;
        !            83: {
        !            84:     register pPDR      pd= vrgPd + vipd;
        !            85:     register pPDR      pd0= vrgPd;
        !            86:     register pSYMR     rgSym= vrgSym;
        !            87: 
        !            88:     while (pd >= pd0 && rgSym [pd->isym].iss != iss)
        !            89:            pd--;
        !            90: 
        !            91:     return (pd >= pd0 ? (rgSym + pd->isym) : symNil);
        !            92: 
        !            93: } /* ExistingSymFSbProc */
        !            94: 
        !            95: 
        !            96: /* E X I S T I N G   S Y M   F   G L O B A L */
        !            97: 
        !            98: export pSYMR ExistingSymFGlobal (sym)
        !            99: pSYMR  sym;
        !           100: {
        !           101:     register pSYMR     sym1;
        !           102: 
        !           103:     for (sym1 = vrgSymGlobal+visymGlMac;
        !           104:                (sym1 >= vrgSymGlobal) && (sym1->iss != sym->iss); sym1--)
        !           105:        ;
        !           106: 
        !           107:     return( (sym1 >= vrgSymGlobal) ? sym1 : symNil);
        !           108: } /* ExistingSymFGlobal */
        !           109: 
        !           110: 
        !           111: /* E X I S T I N G   F D  S Y M   F   I S S */
        !           112: 
        !           113: export pSYMR ExistingFdSymFIss (iss)
        !           114: register int   iss;
        !           115: {
        !           116:     register pSYMR     sym1 = vrgSym + visym;
        !           117:     register pSYMR     symFile = vsymFile;
        !           118: 
        !           119:     while ( (sym1 > symFile) && (sym1->iss != iss))
        !           120:        sym1--;
        !           121: 
        !           122:     return( (sym1 > symFile) ? sym1 : symNil);
        !           123: } /* ExistingFdSymFIss */

unix.superglobalmegacorp.com

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