File:  [Power 6/32 Unix Tahoe 4.2BSD] / cci / usr / src / usr.bin / cdb / transBsd / sym.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jul 28 12:25:33 2019 UTC (7 years ago) by root
Branches: bsd, MAIN
CVS tags: v121, HEAD
Power 6/32 Unix version 1.21

/* $Header: /var/lib/cvsd/repos/cci/cci/usr/src/usr.bin/cdb/transBsd/sym.c,v 1.1.1.1 2019/07/28 12:25:33 root Exp $ */
/* (C) Copyright 1985 Third Eye Software, Inc. - All Rights Reserved */

#include "tes42.h"


/* I S Y M   F   S Y M */

export int IsymFSym (sym)
pSYMR	sym;
{
    return (sym - vrgSym);
} /* IsymFSym */


/* S Y M   F   I S Y M */

export pSYMR SymFIsym (isym)
int	isym;
{
    return (vrgSym + isym);
} /* SymFIsym */



/* S Y M   F   I N S E R T */

export pSYMR SymFInsert ()
{
    register pSYMR	sym;
    static SYMR		asymZeroes;

    if (visymMac >= visymMax)
	panic ("symbol overrrun");
    visym = visymMac++;
    sym = vrgSym + visym;

    *sym = asymZeroes;

    return (sym);
} /* SymFInsert */


/* D E L E T E   S Y M */

export void DeleteSym (sym)
pSYMR	sym;
{
    long	isym;

    if (sym >= vrgSym + visymMac)
	panic ("illegal symbol delete");

    visymMac--;
    for (isym = IsymFSym(sym); isym < visymMac; isym++)
	vrgSym[isym] = vrgSym[isym+1];
} /* DeleteSym */


/* S Y M   F   G L O B A L */

export pSYMR SymFGlobal()
{
    pSYMR	sym;
    static SYMR	asymZeroes;
    
    if (visymGlMac >= visymGlMax)
	panic("sym table overrun");

    visymGlobal = visymGlMac++;
    sym = vrgSymGlobal + visymGlobal;

    *sym = asymZeroes;

    return(sym);
} /* SymFGlobal */


/* E X I S T I N G   S Y M   F   S B    P R O C */

export pSYMR ExistingSymFSbProc (iss)
register int iss;
{
    register pPDR	pd= vrgPd + vipd;
    register pPDR	pd0= vrgPd;
    register pSYMR	rgSym= vrgSym;

    while (pd >= pd0 && rgSym [pd->isym].iss != iss)
	    pd--;

    return (pd >= pd0 ? (rgSym + pd->isym) : symNil);

} /* ExistingSymFSbProc */


/* E X I S T I N G   S Y M   F   G L O B A L */

export pSYMR ExistingSymFGlobal (sym)
pSYMR	sym;
{
    register pSYMR	sym1;

    for (sym1 = vrgSymGlobal+visymGlMac;
		(sym1 >= vrgSymGlobal) && (sym1->iss != sym->iss); sym1--)
	;

    return( (sym1 >= vrgSymGlobal) ? sym1 : symNil);
} /* ExistingSymFGlobal */


/* E X I S T I N G   F D  S Y M   F   I S S */

export pSYMR ExistingFdSymFIss (iss)
register int	iss;
{
    register pSYMR	sym1 = vrgSym + visym;
    register pSYMR	symFile = vsymFile;

    while ( (sym1 > symFile) && (sym1->iss != iss))
	sym1--;

    return( (sym1 > symFile) ? sym1 : symNil);
} /* ExistingFdSymFIss */

unix.superglobalmegacorp.com

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