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.
 
 
 
 
 
 

206 lines
5.6 KiB

/***********************************************************************
* Microsoft (R) Windows (R) Resource Compiler
*
* Copyright (c) Microsoft Corporation. All rights reserved.
*
* File Comments:
*
*
***********************************************************************/
/************************************************************************/
/* Define types for greater visibility and easier portability */
/************************************************************************/
#ifndef _WINDOWS_
typedef char CHAR;
typedef unsigned char BYTE;
typedef CHAR * PCHAR;
typedef unsigned short WCHAR;
typedef unsigned char UCHAR;
typedef UCHAR * PUCHAR;
typedef WCHAR * PWCHAR;
typedef short SHORT;
typedef SHORT * PSHORT;
typedef unsigned short USHORT;
typedef USHORT * PUSHORT;
typedef int INT;
typedef INT BOOL;
typedef INT * PINT;
typedef unsigned int UINT;
typedef UINT * PUINT;
typedef long LONG;
typedef LONG * PLONG;
typedef unsigned long ULONG;
typedef ULONG * PULONG;
typedef void VOID;
typedef VOID * PVOID;
#endif
typedef double DOUBLE;
typedef DOUBLE * PDOUBLE;
/************************************************************************/
/* */
/* Define internal types */
/* */
/************************************************************************/
#define TRUE 1
#define FALSE 0
#define EXTERN extern
#define REG register
#define STATIC static
#define BIG_BUFFER 512
#define MED_BUFFER 256
#define SMALL_BUFFER 128
#define TINY_BUFFER 32
#define MSG_BUFF_SIZE 2048
#define IFSTACK_SIZE TINY_BUFFER
/*
** some commonly used typdefs for scalar items
*/
typedef UINT p1key_t;
typedef UCHAR hash_t;
typedef UCHAR token_t;
typedef UCHAR shape_t;
typedef UCHAR blknum_t; /* lexical level */
typedef UCHAR class_t;
typedef USHORT btype_t; /* basic type specifier */
typedef USHORT refcnt_t; /* symbol's reference count */
typedef USHORT hey_t; /* unique keys */
typedef USHORT offset_t; /* members offset within a struct */
typedef ULONG abnd_t; /* array bound type */
typedef ULONG len_t; /* number of bytes/bits of member/field */
typedef struct s_adj symadj_t;
typedef struct s_defn defn_t;
typedef struct s_flist flist_t;
typedef struct s_indir indir_t;
typedef struct s_stack stack_t;
typedef struct s_sym sym_t;
typedef struct s_table table_t;
typedef struct s_toklist toklist_t;
typedef struct s_tree tree_t;
typedef struct s_type type_t;
typedef struct s_case case_t;
typedef union u_ivalue ivalue_t;
/*
** abstract char pointer types
*/
typedef PWCHAR ptext_t; /* wherever input text comes from */
/*
** other abstract pointer types
*/
typedef type_t * ptype_t; /* ptr to types */
typedef indir_t * pindir_t; /* ptr to indirections */
typedef flist_t * pflist_t; /* ptr to formal list type */
typedef sym_t * psym_t; /* symbol ptrs */
typedef defn_t * pdefn_t; /* #define names */
typedef tree_t * ptree_t;
typedef struct s_realt {
LONG S_sizet;
DOUBLE S_realt;
} Srealt_t;
/* declspec type */
struct s_declspec {
class_t ds_calss;
ptype_t ds_type;
};
typedef struct s_declspec declspec_t;
typedef declspec_t * pdeclspec_t;
/* string type */
struct s_string {
WCHAR * str_ptr;
USHORT str_len;
};
typedef struct s_string string_t;
typedef string_t * pstring_t;
/* rcon type */
struct rcon {
Srealt_t rcon_real;
};
typedef struct rcon rcon_t;
typedef struct rcon * prcon_t;
/* hln type */
struct s_hln {
PWCHAR hln_name;
UCHAR hln_hash;
UCHAR hln_length;
};
typedef struct s_hln hln_t;
typedef hln_t * phln_t;
/*
** union used to return values from the lexer
*/
typedef union s_lextype {
btype_t yy_btype;
PWCHAR yy_cstr;
int yy_int;
int yy_class;
long yy_long;
hln_t yy_ident;
declspec_t yy_declspec;
string_t yy_string;
psym_t yy_symbol;
token_t yy_token;
ptree_t yy_tree;
ptype_t yy_type;
} lextype_t;
/* value_t definition */
union u_value {
prcon_t v_rcon;
long v_long;
string_t v_string;
psym_t v_symbol;
};
typedef union u_value value_t;
/* keytab_t definition */
typedef struct {
const WCHAR *k_text;
UCHAR k_token;
} keytab_t;
/************************************************************************/
/* LIST definition for \D values */
/************************************************************************/
#define MAXLIST 100
typedef struct LIST {
INT li_top;
WCHAR * li_defns[MAXLIST];
} LIST;
#define UNREFERENCED_PARAMETER(x) (x)