Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

190 lines
8.6 KiB

/*
* |-----------------------------------------------------------|
* | Copyright (c) 1990 MIPS Computer Systems, Inc. |
* | All Rights Reserved |
* |-----------------------------------------------------------|
* | Restricted Rights Legend |
* | Use, duplication, or disclosure by the Government is |
* | subject to restrictions as set forth in |
* | subparagraph (c)(1)(ii) of the Rights in Technical |
* | Data and Computer Software Clause of DFARS 52.227-7013. |
* | MIPS Computer Systems, Inc. |
* | 950 DeGuigne Drive |
* | Sunnyvale, CA 94086 |
* |-----------------------------------------------------------|
*/
/*
*-------------------------------------------------------------
*| RESTRICTED RIGHTS LEGEND |
*| Use, duplication, or disclosure by the Government is |
*| subject to restrictions as set forth in subparagraph |
*| (c)(1)(ii) of the Rights in Technical Data and Computer |
*| Software Clause at DFARS 252.227-7013. |
*| MIPS Computer Systems, Inc. |
*| 928 Arques Avenue |
*| Sunnyvale, CA 94086 |
*-------------------------------------------------------------
*/
/* $Header: stsupport.h,v 2020.2.1.1 91/02/25 17:53:24 jalal Exp $ */
/*
* Author Mark I. Himelstein
* Date Started 5/15/85
* Purpose provide support to uc to produce mips symbol tables.
*/
#ifndef __CMPLRS_STSUPPORT_H
#define __CMPLRS_STSUPPORT_H
#ifdef LANGUAGE_C
AUXU _auxtemp;
#define AUXINT(c) ((_auxtemp.isym = c), _auxtemp)
/* the following struct frames the FDR dtructure and is used at runtime
* to access the objects in the FDR with pointers (since the FDR
* only has indeces.
*/
typedef struct {
pFDR pfd; /* file descriptor for this file */
pSYMR psym; /* symbols for this file */
long csymMax; /* max allocated */
pAUXU paux; /* auxiliaries for this file */
long cauxMax; /* max allocated */
char *pss; /* strings space for this file */
long cbssMax; /* max bytes allowed in ss */
pOPTR popt; /* optimization table for this file */
long coptMax; /* max allocated */
pLINER pline; /* lines for this file */
long clineMax; /* max allocated */
pRFDT prfd; /* file indirect for this file */
long crfdMax; /* max allocated */
pPDR ppd; /* procedure descriptor tables */
long cpdMax; /* max allocated */
long freadin; /* set if read in */
} CFDR, *pCFDR;
#define cbCFDR sizeof (CFDR)
#define cfdNil ((pCFDR) 0)
#define icfdNil -1
/* the following struct embodies the HDRR dtructure and is used at runtime
* to access the objects in the HDRR with pointers (since the HDRR
* only has indeces.
*/
typedef struct {
long fappend; /* are we appending to this beast ? */
pCFDR pcfd; /* the compile time file descriptors */
pFDR pfd; /* all of the file descriptors in this cu */
long cfd; /* count of file descriptors */
long cfdMax; /* max file descriptors */
pSYMR psym; /* the symbols for this cu */
pEXTR pext; /* externals for this cu */
long cext; /* number of externals */
long cextMax; /* max currently allowed */
char *pssext; /* string space for externals */
long cbssext; /* # of bytes in ss */
long cbssextMax; /* # of bytes allowed in ss */
pAUXU paux; /* auxiliaries for this cu */
char *pss; /* string space for this cu */
pDNR pdn; /* dense number table for this cu */
long cdn; /* number of dn's */
long cdnMax; /* max currently allowed */
pOPTR popt; /* optimization table for this cu */
pLINER pline; /* lines for this cu */
pRFDT prfd; /* file indirect for this cu */
pPDR ppd; /* procedure descriptor tables */
int flags; /* which has been read in already */
int fswap; /* do dubtables need to be swapped */
HDRR hdr; /* header from disk */
} CHDRR, *pCHDRR;
#define cbCHDRR sizeof (CHDRR)
#define chdrNil ((pCHDRR) 0)
#define ichdrNil -1
#endif // LANGUAGE_C
/* constants and macros */
#define ST_FILESINIT 25 /* initial number of files */
#define ST_STRTABINIT 512 /* initial number of bytes in strring space */
#define ST_EXTINIT 32 /* initial number of symbols/file */
#define ST_SYMINIT 64 /* initial number of symbols/file */
#define ST_AUXINIT 64 /* initial number of auxiliaries/file */
#define ST_LINEINIT 512 /* initial number of auxiliaries/file */
#define ST_PDINIT 32 /* initial number of procedures in one file */
#define ST_DNINIT 128 /* initial # of dense numbers */
#define ST_FDISS 1 /* we expect a fd's iss to be this */
#define ST_IDNINIT 2 /* start the dense num tab with this entry */
#define ST_PROCTIROFFSET 1 /* offset from aux of proc's tir */
#define ST_RELOC 1 /* this sym has been reloced already */
#ifdef LANGUAGE_FORTRAN
#define ST_EXTIFD 0x7fffffff /* ifd for externals */
#define ST_RFDESCAPE 0xfff /* rndx.rfd escape says next aux is rfd */
#define ST_ANONINDEX 0xfffff /* rndx.index for anonymous names */
#endif
#ifdef LANGUAGE_C
#define ST_EXTIFD 0x7fffffff /* ifd for externals */
#define ST_RFDESCAPE 0xfff /* rndx.rfd escape says next aux is rfd */
#define ST_ANONINDEX 0xfffff /* rndx.index for anonymous names */
#define ST_PEXTS 0x01 /* mask, if set externals */
#define ST_PSYMS 0x02 /* mask, if set symbols */
#define ST_PLINES 0x04 /* mask, if set lines */
#define ST_PHEADER 0x08 /* mask, if set headers */
#define ST_PDNS 0x10 /* mask, if set dense numbers */
#define ST_POPTS 0x20 /* mask, if set optimization entries */
#define ST_PRFDS 0x40 /* mask, if set file indirect entries */
#define ST_PSSS 0x80 /* mask, if set string space */
#define ST_PPDS 0x100 /* mask, if set proc descriptors */
#define ST_PFDS 0x200 /* mask, if set file descriptors */
#define ST_PAUXS 0x400 /* mask, if set auxiliaries */
#define ST_PSSEXTS 0x800 /* mask, if set external string space */
#endif // LANGUAGE_C
#ifdef LANGUAGE_PASCAL
#define ST_EXTIFD 16#7fffffff /* ifd for externals */
#define ST_RFDESCAPE 16#fff /* rndx.rfd escape says next aux is rfd */
#define ST_ANONINDEX 16#fffff /* rndx.index for anonymous names */
#define ST_PEXTS 16#01 /* mask, if set externals */
#define ST_PSYMS 16#02 /* mask, if set symbols */
#define ST_PLINES 16#04 /* mask, if set lines */
#define ST_HEADER 16#08 /* mask, if set header */
#define ST_PDNS 16#10 /* mask, if set dense numbers */
#define ST_POPTS 16#20 /* mask, if set optimization entries */
#define ST_PRFDS 16#40 /* mask, if set file indirect entries */
#define ST_PSSS 16#80 /* mask, if set string space */
#define ST_PPDS 16#100 /* mask, if set proc descriptors */
#define ST_PFDS 16#200 /* mask, if set file descriptors */
#define ST_PAUXS 16#400 /* mask, if set auxiliaries */
#define ST_PSSEXTS 16#800 /* mask, if set external string space */
#endif // LANGUAGE_PASCAL
#define ST_FCOMPLEXBT(bt) ((bt == btStruct) || (bt == btUnion) || (bt == btTypedef) || (bt == btEnum))
#define valueNil 0
#define export
/*
* Constants to describe aux types used in swap_aux( , ,type);
*/
#define ST_AUX_TIR 0
#define ST_AUX_RNDXR 1
#define ST_AUX_DNLOW 2
#define ST_AUX_DNMAC 3
#define ST_AUX_ISYM 4
#define ST_AUX_ISS 5
#define ST_AUX_WIDTH 6
/* $Log: stsupport.h,v $
* Revision 2020.2.1.1 91/02/25 17:53:24 jalal
* update copyright
*
* Revision 2020.2 90/02/19 14:12:44 bettina
* 2.20 - add legend
*
* Revision 2010.3 89/09/26 23:53:12 lai
* updated wrapper
*
* Revision 2010.2 89/09/26 22:16:29 lai
* added wrapper and $LOG
*
*/
#endif