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.
 
 
 
 
 
 

165 lines
3.7 KiB

#ifndef _XT_H
#define _XT_H
/*[
Name: xt.h
Derived From: VPC-XT Revision 1.0 (xt.h)
Author: Henry Nash
Created On:
Sccs ID: @(#)xt.h 1.19 05/15/95
Purpose: General include file for VPC-XT
Notes: This file should be included by all source modules.
It includes the host specific general include file.
(c)Copyright Insignia Solutions Ltd., 1990. All rights reserved.
]*/
/*
* Useful defines
*/
#define HALF_WORD_SIZE sizeof (half_word)
#define WORD_SIZE sizeof (word)
#define DOUBLE_WORD_SIZE sizeof (double_word)
/*
* Used for specifying 8, 16 bit or 32 bit sizes.
*/
typedef enum {EIGHT_BIT, SIXTEEN_BIT, THIRTY_TWO_BIT} SIZE_SPECIFIER;
#ifndef TRUE
#define FALSE 0
#define TRUE !FALSE
#endif /* ! TRUE */
#undef SUCCESS
#undef FAILURE
#define SUCCESS 0
#define FAILURE ~SUCCESS
#ifndef NULL
#define NULL 0
#endif
#ifndef NULL_STRING
#define NULL_STRING ""
#endif
#ifdef SOFTWINDOWS
#define SPC_PRODUCT_NAME "SoftWindows"
#else
#define SPC_PRODUCT_NAME "SoftPC"
#endif
/***********************************************************************\
* host_gen.h is guarenteed to be included early in every C source file. *
* It should contain those defines which are common to all versions *
* built for a given host, to reduce the overhead in the "m" script. *
* Bod 15/3/89. *
\***********************************************************************/
#include "host_gen.h"
#ifndef MAXPATHLEN
#define MAXPATHLEN 1024
#endif
/*
* Effective address calculation stuff
*/
#ifdef CPU_30_STYLE
/* ========================================================== */
/*
Our model for the data extracted from a decriptor entry.
*/
typedef struct
{
double_word base; /* 32-bit base address */
double_word limit; /* 32-bit offset limit */
word AR; /* 16-bit attributes/access rights */
} DESCR;
extern LIN_ADDR effective_addr IPT2( IU16, seg, IU32, off);
extern void read_descriptor IPT2( LIN_ADDR, addr, DESCR*, descr);
extern boolean selector_outside_table IPT2( IU16, selector, IU32*, descr_addr);
/* ========================================================== */
#else /* CPU_30_STYLE */
/* ========================================================== */
#ifdef A2CPU
/*
* Effective address macro
*/
#define effective_addr(seg, offset) (((double_word) seg * 0x10) + offset)
#endif /* A2CPU */
#ifdef CCPU
extern sys_addr effective_addr IPT2( word, seg, word, ofs);
#endif /* CCPU */
/* ========================================================== */
#endif /* CPU_30_STYLE */
#ifdef CCPU
/*
* CCPU has no descriptor cache - so this should just fail.
*/
#define Cpu_find_dcache_entry(seg, base) ((IBOOL)FALSE)
#else /* not CCPU */
extern IBOOL Cpu_find_dcache_entry IPT2(word, seg, double_word *, base);
#endif
/*
* Global Flags and Variables
*/
extern char **pargv; /* Pointer to argv */
extern int *pargc; /* Pointer to argc */
extern int verbose; /* FALSE => only report errors */
extern IU32 io_verbose; /* TRUE => report io errors */
extern IBOOL Running_SoftWindows; /* Are we SoftWindows? */
extern CHAR *SPC_Product_Name; /* "SoftPC" or "SoftWindows" */
/*
* The Parity Lookup table
*/
#ifndef CPU_30_STYLE
extern half_word pf_table[]; /* shouldn't this be in host_cpu.h ? */
#endif /* CPU_30_STYLE */
/*
* External function declarations.
*/
#ifdef ANSI
extern void applInit(int, char *[]);
extern void applClose(void);
extern void terminate(void);
extern void host_terminate(void);
#else
extern void applInit();
extern void applClose();
extern void terminate();
extern void host_terminate();
#endif /* ANSI */
#ifdef SPC386
extern IBOOL CsIsBig IPT1(IU16, csVal); /* is this a 32 bit code segment? */
#endif /* SPC386 */
extern void exitswin IPT0();
#endif /* _XT_H */