Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//
// owner.c : this code manipulates the SBR records for keeping track of
// what SBR file owns a particular DEF/REF
//
#include "mbrmake.h"
VA near vaRootSbr; // head of SBR list
VA near vaTailSbr; // tail of SBR list
WORD near SbrCnt; // count of sbr files
VA VaSbrAdd(WORD fUpdate, LSZ lszName) // add a new sbr entry to the list -- we promise that cSBR will be the
// setup for the newly added vaSbr
//
{ WORD cb; VA vaSbr;
vaSbr = vaRootSbr; while (vaSbr) { gSBR(vaSbr); if (strcmpi(cSBR.szName, lszName) == 0) { cSBR.fUpdate |= fUpdate; pSBR(vaSbr); return vaSbr; } vaSbr = cSBR.vaNextSbr; }
cb = strlen(lszName);
vaSbr = VaAllocGrpCb(grpSbr, sizeof(SBR) + cb);
gSBR(vaSbr); cSBR.vaNextSbr = vaNil; cSBR.fUpdate |= fUpdate; cSBR.isbr = -1; strcpy(cSBR.szName, lszName); pSBR(vaSbr);
if (vaTailSbr) { gSBR(vaTailSbr); cSBR.vaNextSbr = vaSbr; pSBR(vaTailSbr); } else vaRootSbr = vaSbr; vaTailSbr = vaSbr;
gSBR(vaSbr);
SbrCnt++; return vaSbr; }
VA VaSbrFrName(LSZ lszName) // find the .sbr entry matching the given name
//
{ VA vaSbr;
vaSbr = vaRootSbr; while (vaSbr) { gSBR(vaSbr); if (strcmp(cSBR.szName, lszName) == 0) return vaSbr; vaSbr = cSBR.vaNextSbr; } return vaNil; }
|