WindowsXP-SP1/com/rpc/midl/common/common.hxx
2020-09-30 16:53:49 +02:00

172 lines
4.1 KiB
C++

/*
** File: common.hxx
**
** (C) 1989 Microsoft Corp.
*/
/*****************************************************************************/
/** Microsoft LAN Manager **/
/** Copyright(c) Microsoft Corp., 1987-1990 **/
/*****************************************************************************/
/*****************************************************************************
File : rpctypes.hxx
Title : rpc type node defintions
Description : Common header file for MIDL compiler
History :
??-Aug-1990 ??? Created
20-Sep-1990 NateO Safeguards against double inclusion
*****************************************************************************/
#ifndef __COMMON_HXX__
#define __COMMON_HXX__
#include "nulldefs.h"
extern "C" {
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include "midldebug.h"
};
typedef unsigned short USHORT;
typedef int BOOL;
typedef __int64 LONGLONG;
#if _MSC_VER < 1100
#define true (1)
#define false (0)
#endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#define RET_VAL "_ret_value"
class BufferManager;
extern void * AllocateNew( size_t size );
extern void AllocateDelete( void * p );
extern void * AllocateOnceNew( size_t size );
extern void AllocateOnceDelete( void * p );
inline void * operator new( size_t size )
{
return AllocateNew( size );
}
inline void operator delete( void * p )
{
AllocateDelete( p );
}
extern char * MIDLStrDup(char * p);
extern void UseBackEndHeap();
extern void DestroyBackEndHeap();
#define IN
#define OUT
#define OPTIONAL
//////////////////////////////////////////////////////////////////////////////
// optimisation options
//////////////////////////////////////////////////////////////////////////////
//
// These are the switches to be set corresponding to the optimisations
// options specified by the user. If no optimisations are specified,
// then the compiler optimises for speed.
//
//
typedef unsigned short OPTIM_OPTION;
#define OPTIMIZE_NONE 0x0000
#define OPTIMIZE_SIZE 0x0001
#define OPTIMIZE_INTERPRETER 0x0002
#define OPTIMIZE_NO_REF_CHECK 0x0004
#define OPTIMIZE_NO_BOUNDS_CHECK 0x0008
#define OPTIMIZE_NO_CTXT_CHECK 0x0010
#define OPTIMIZE_NO_GEN_HDL_CHECK 0x0011
#define OPTIMIZE_THUNKED_INTERPRET 0x0020
#define OPTIMIZE_NON_NT35 0x0040
#define OPTIMIZE_STUBLESS_CLIENT 0x0040 // same as non-nt35
#define OPTIMIZE_NON_NT351 0x0080
#define OPTIMIZE_INTERPRETER_V2 0x0080 // same as non-nt351
#define OPTIMIZE_INTERPRETER_IX 0x0100 // cmd only: the best Oi* possible
#define OPTIMIZE_ALL_I0_FLAGS 0x0002
#define OPTIMIZE_ALL_I1_FLAGS 0x0042
#define OPTIMIZE_ALL_I2_FLAGS 0x00c2
#define OPTIMIZE_ANY_INTERPRETER 0x01c2
#define DEFAULT_OPTIM_OPTIONS ( \
OPTIMIZE_SIZE \
)
//
// These are internal optimization level values
//
typedef enum _opt_level_enum
{
OPT_LEVEL_OS,
OPT_LEVEL_OI,
OPT_LEVEL_OIC,
OPT_LEVEL_OICF,
} OPT_LEVEL_ENUM;
typedef enum _syntax_enum
{
SYNTAX_DCE = 1,
SYNTAX_NDR64,
SYNTAX_BOTH
} SYNTAX_ENUM;
#define HPP_TYPE_NAME_PREFIX ( "P" )
// RKK64: TBD
// With full support for 64b expressions, we would need -i64toa etc.
#define MIDL_SPAWNLP _spawnlp
#define MIDL_FGETCHAR _fgetchar
#define MIDL_FILENO _fileno
#define MIDL_ITOA _itoa
#define MIDL_LTOA _ltoa
#define MIDL_UNLINK _unlink
//
// forward declarations.
//
class node_skl;
class node_base_attr;
#define SIZE_2GB 0x80000000
#if defined(MIDL_ENABLE_ASSERTS)
int DisplayAssertMsg(char *pFileName, int , char *pExpr );
#define MIDL_ASSERT( expr ) \
( ( expr ) ? 1 : DisplayAssertMsg( __FILE__ , __LINE__, #expr ) )
#else
#define MIDL_ASSERT( expr )
#endif
#endif // __COMMON_HXX__