mirror of https://github.com/lianthony/NT4.0
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.
476 lines
11 KiB
476 lines
11 KiB
/*****************************************************************************/
|
|
/** Microsoft LAN Manager **/
|
|
/** Copyright(c) Microsoft Corp., 1987-1990 **/
|
|
/*****************************************************************************/
|
|
/*****************************************************************************
|
|
File : errors.hxx
|
|
Title : error include file
|
|
Description : This file contains the definitions of errors generated
|
|
By the MIDL compiler.
|
|
History :
|
|
|
|
VibhasC 23-Jul-1990 Created
|
|
NateO 20-Sep-1990 Safeguards against double inclusion
|
|
|
|
*****************************************************************************/
|
|
/****************************************************************************
|
|
*** D errors range :
|
|
*** 1000-1999
|
|
*** C errors range :
|
|
*** 2000-9999
|
|
****************************************************************************/
|
|
|
|
#ifndef __ERRORS_HXX__
|
|
#define __ERRORS_HXX__
|
|
|
|
// define the data structures needed for the error handler
|
|
|
|
typedef unsigned short E_MASK;
|
|
|
|
|
|
// definition of mode switch configuration combinations
|
|
|
|
|
|
#define ZZZ (0)
|
|
#define ZZM (1 << 1)
|
|
#define ZCZ (1 << 2)
|
|
#define ZCM (1 << 3)
|
|
#define AZZ (1 << 4)
|
|
#define AZM (1 << 5)
|
|
#define ACZ (1 << 6)
|
|
#define ACM (1 << 7)
|
|
|
|
// message type
|
|
|
|
#define C_MSG (0)
|
|
#define D_MSG (1)
|
|
|
|
// error class
|
|
|
|
#define CLASS_ERROR (0)
|
|
#define CLASS_WARN (1)
|
|
|
|
|
|
#if 0
|
|
|
|
This is the error reporting mask. Basically an 8-bit mask which has the
|
|
fields relating to the mode configuration switches needed for the error
|
|
to not be reported. It also has 3 bits indicating if a warning is emitted
|
|
and if so at what level, and 1 bit for indicating if it is a command line
|
|
error (D-error) or a compilation related error(C-error).
|
|
|
|
Bits 0-7 : switch configuration where this is not an error
|
|
Bits 8-10 : warning level
|
|
Bit 11 : Message class
|
|
Bit 12 : message type.
|
|
|
|
#endif // 0
|
|
|
|
// macros to generate the mask and extract info out of it.
|
|
|
|
#define OFFSET_SC (0)
|
|
#define SIZE_SC (8)
|
|
#define MASK_SC (0xff)
|
|
|
|
#define SIZE_WL (3)
|
|
#define OFFSET_WL (SIZE_SC + OFFSET_SC)
|
|
#define MASK_WL (0x7)
|
|
|
|
#define SIZE_ECLASS (1)
|
|
#define OFFSET_ECLASS (OFFSET_WL + SIZE_WL)
|
|
#define MASK_ECLASS (1)
|
|
|
|
#define SIZE_MT (1)
|
|
#define OFFSET_MT (OFFSET_ECLASS + SIZE_ECLASS)
|
|
#define MASK_MT (1)
|
|
|
|
#define SET_SC(x) ((x & MASK_SC) << OFFSET_SC )
|
|
#define SET_WL(x) ((x & MASK_WL) << OFFSET_WL )
|
|
#define SET_ECLASS(x) ((x & MASK_ECLASS) << OFFSET_ECLASS )
|
|
#define SET_MT(x) ((x & MASK_MT) << OFFSET_MT )
|
|
|
|
#define GET_SC(x) ((x >> OFFSET_SC) & MASK_SC)
|
|
#define GET_WL(x) ((x >> OFFSET_WL) & MASK_WL)
|
|
#define GET_ECLASS(x) ((x >> OFFSET_ECLASS) & MASK_ECLASS)
|
|
#define GET_MT(x) ((x >> OFFSET_MT) & MASK_MT)
|
|
|
|
|
|
#define MAKE_E_MASK( sc, mt, ec, wl ) \
|
|
(SET_SC(sc) + SET_MT(mt) + SET_ECLASS(ec) + SET_WL(wl) )
|
|
|
|
#define D_ERROR_BASE 1000
|
|
#define C_ERROR_BASE 2000
|
|
#define H_ERROR_BASE 3000
|
|
|
|
enum _status_t
|
|
{
|
|
STATUS_OK
|
|
,D_ERR_START = D_ERROR_BASE
|
|
,NO_INPUT_FILE = D_ERR_START // no input file specified
|
|
,INPUT_OPEN // error in opening file
|
|
,INPUT_READ // error in positioning file
|
|
,PREPROCESSOR_ERROR // error in preprocessing
|
|
,PREPROCESSOR_EXEC // cant exec preprocessor
|
|
,NO_PREPROCESSOR
|
|
,PREPROCESSOR_INVALID
|
|
,SWITCH_REDEFINED // redef of switch
|
|
,UNKNOWN_SWITCH
|
|
,UNKNOWN_ARGUMENT
|
|
,UNIMPLEMENTED_SWITCH
|
|
,MISSING_ARG
|
|
,ILLEGAL_ARGUMENT
|
|
,BAD_SWITCH_SYNTAX
|
|
,NO_CPP_OVERRIDES
|
|
,NO_WARN_OVERRIDES
|
|
,INTERMEDIATE_FILE_CREATE
|
|
,SERVER_AUX_FILE_NOT_SPECIFIED
|
|
,OUT_OF_SYSTEM_FILE_HANDLES
|
|
,BOTH_CSWTCH_SSWTCH
|
|
,CANNOT_OPEN_RESP_FILE
|
|
,ILLEGAL_CHAR_IN_RESP_FILE
|
|
,MISMATCHED_PREFIX_PAIR
|
|
,NESTED_RESP_FILE
|
|
,D_ERR_MAX
|
|
|
|
,C_ERR_START = C_ERROR_BASE
|
|
|
|
// general errors. The ones which are hard to pin down into any category.
|
|
|
|
,ABSTRACT_DECL = C_ERR_START
|
|
,ACTUAL_DECLARATION
|
|
,C_STACK_OVERFLOW
|
|
,DUPLICATE_DEFINITION
|
|
,NO_HANDLE_DEFINED_FOR_PROC
|
|
,OUT_OF_MEMORY
|
|
,RECURSIVE_DEF
|
|
,REDUNDANT_IMPORT
|
|
,SPARSE_ENUM
|
|
,UNDEFINED_SYMBOL
|
|
,UNDEFINED_TYPE
|
|
,UNRESOLVED_TYPE
|
|
,WCHAR_CONSTANT_NOT_OSF
|
|
,WCHAR_STRING_NOT_OSF
|
|
,WCHAR_T_ILLEGAL
|
|
|
|
// syntax related errors
|
|
|
|
,ASSUMING_CHAR
|
|
,DISCARDING_CHAR
|
|
,BENIGN_SYNTAX_ERROR
|
|
,SYNTAX_ERROR
|
|
|
|
// pragma related errors
|
|
|
|
,UNKNOWN_PRAGMA_OPTION
|
|
|
|
// unimplemented messages
|
|
|
|
,UNIMPLEMENTED_FEATURE
|
|
,UNIMPLEMENTED_TYPE
|
|
|
|
// expression errors
|
|
|
|
,EXPR_DEREF_ON_NON_POINTER
|
|
,EXPR_DIV_BY_ZERO
|
|
,EXPR_INCOMPATIBLE_TYPES
|
|
,EXPR_INDEXING_NON_ARRAY
|
|
,EXPR_LHS_NON_COMPOSITE
|
|
,EXPR_NOT_CONSTANT
|
|
,EXPR_NOT_EVALUATABLE
|
|
,EXPR_NOT_IMPLEMENTED
|
|
|
|
// interface errors
|
|
|
|
,NO_PTR_DEFAULT_ON_INTERFACE
|
|
|
|
// parameter related errors
|
|
|
|
,DERIVES_FROM_PTR_TO_CONF
|
|
,DERIVES_FROM_UNSIZED_STRING
|
|
,NON_PTR_OUT
|
|
,OPEN_STRUCT_AS_PARAM
|
|
,OUT_CONTEXT_GENERIC_HANDLE
|
|
,CTXT_HDL_TRANSMIT_AS
|
|
,PARAM_IS_ELIPSIS
|
|
,VOID_PARAM_WITH_NAME
|
|
|
|
// procedure related semantic errors
|
|
|
|
,HANDLE_NOT_FIRST
|
|
,PROC_PARAM_ERROR_STATUS
|
|
,LOCAL_ATTR_ON_PROC
|
|
|
|
// structure semantic errors
|
|
|
|
,CONFORMANT_ARRAY_NOT_LAST
|
|
|
|
// union semantic errors
|
|
|
|
,DUPLICATE_CASE
|
|
,NO_UNION_DEFAULT
|
|
|
|
// attribute semantic errors
|
|
|
|
,ATTRIBUTE_ID_UNRESOLVED
|
|
,ATTR_MUST_BE_INT
|
|
,BYTE_COUNT_INVALID
|
|
,BYTE_COUNT_NOT_OUT_PTR
|
|
,BYTE_COUNT_ON_CONF
|
|
,BYTE_COUNT_PARAM_NOT_IN
|
|
,BYTE_COUNT_PARAM_NOT_INTEGRAL
|
|
,BYTE_COUNT_WITH_SIZE_ATTR
|
|
,CASE_EXPR_NOT_CONST
|
|
,CASE_EXPR_NOT_INT
|
|
,CONTEXT_HANDLE_VOID_PTR
|
|
,ERROR_STATUS_T_REPEATED
|
|
,E_STAT_T_MUST_BE_PTR_TO_E
|
|
,ENDPOINT_SYNTAX
|
|
,INAPPLICABLE_ATTRIBUTE
|
|
,ALLOCATE_INVALID
|
|
,INVALID_ALLOCATE_MODE
|
|
,INVALID_SIZE_ATTR_ON_STRING
|
|
,LAST_AND_LENGTH
|
|
,MAX_AND_SIZE
|
|
,NO_SWITCH_IS
|
|
,NO_UUID_SPECIFIED
|
|
,UUID_LOCAL_BOTH_SPECIFIED
|
|
,SIZE_LENGTH_TYPE_MISMATCH
|
|
,STRING_NOT_ON_BYTE_CHAR
|
|
,SWITCH_TYPE_MISMATCH
|
|
,TRANSMIT_AS_CTXT_HANDLE
|
|
,TRANSMIT_AS_NON_RPCABLE
|
|
,TRANSMIT_AS_POINTER
|
|
,TRANSMIT_TYPE_CONF
|
|
,UUID_FORMAT
|
|
,UUID_NOT_HEX
|
|
|
|
// acf semantic errors
|
|
|
|
,ACF_INTERFACE_MISMATCH
|
|
,CONFLICTING_ATTR
|
|
,INVALID_COMM_STATUS_PARAM
|
|
,LOCAL_PROC_IN_ACF
|
|
,TYPE_HAS_NO_HANDLE
|
|
,UNDEFINED_PROC
|
|
,UNDEF_PARAM_IN_IDL
|
|
|
|
// array and pointer semantic errors
|
|
|
|
,ARRAY_BOUNDS_CONSTRUCT_BAD
|
|
,ILLEGAL_ARRAY_BOUNDS
|
|
,ILLEGAL_CONFORMANT_ARRAY
|
|
,UNSIZED_ARRAY
|
|
|
|
// lex errors
|
|
|
|
,CHAR_CONST_NOT_TERMINATED
|
|
,EOF_IN_COMMENT
|
|
,EOF_IN_STRING
|
|
,ID_TRUNCATED
|
|
,NEWLINE_IN_STRING
|
|
,STRING_TOO_LONG
|
|
,CONSTANT_TOO_BIG
|
|
|
|
// backend related errors
|
|
|
|
,ERROR_OPENING_FILE
|
|
|
|
// more errors
|
|
|
|
,UNIQUE_FULL_PTR_OUT_ONLY
|
|
|
|
,BAD_ATTR_NON_RPC_UNION
|
|
,SIZE_SPECIFIER_CANT_BE_OUT
|
|
,LENGTH_SPECIFIER_CANT_BE_OUT
|
|
|
|
// errors placed here because of the compiler mode switch changes.
|
|
|
|
,BAD_CON_INT
|
|
,BAD_CON_FIELD_VOID
|
|
,BAD_CON_ARRAY_VOID
|
|
,BAD_CON_MSC_CDECL
|
|
,BAD_CON_FIELD_FUNC
|
|
,BAD_CON_ARRAY_FUNC
|
|
,BAD_CON_PARAM_FUNC
|
|
,BAD_CON_BIT_FIELDS
|
|
,BAD_CON_BIT_FIELD_NON_ANSI
|
|
,BAD_CON_BIT_FIELD_NOT_INTEGRAL
|
|
,BAD_CON_CTXT_HDL_FIELD
|
|
,BAD_CON_CTXT_HDL_ARRAY
|
|
,BAD_CON_NON_RPC_UNION
|
|
|
|
,NON_RPC_PARAM_INT
|
|
,NON_RPC_PARAM_VOID
|
|
,NON_RPC_PARAM_BIT_FIELDS
|
|
,NON_RPC_PARAM_CDECL
|
|
,NON_RPC_PARAM_FUNC_PTR
|
|
,NON_RPC_UNION
|
|
,NON_RPC_RTYPE_INT
|
|
,NON_RPC_RTYPE_VOID
|
|
,NON_RPC_RTYPE_BIT_FIELDS
|
|
,NON_RPC_RTYPE_UNION
|
|
,NON_RPC_RTYPE_FUNC_PTR
|
|
|
|
,COMPOUND_INITS_NOT_SUPPORTED
|
|
,ACF_IN_IDL_NEEDS_APP_CONFIG
|
|
,SINGLE_LINE_COMMENT
|
|
,VERSION_FORMAT
|
|
,SIGNED_ILLEGAL
|
|
,ASSIGNMENT_TYPE_MISMATCH
|
|
,ILLEGAL_OSF_MODE_DECL
|
|
,OSF_DECL_NEEDS_CONST
|
|
,COMP_DEF_IN_PARAM_LIST
|
|
,ALLOCATE_NOT_ON_PTR_TYPE
|
|
,ARRAY_OF_UNIONS_ILLEGAL
|
|
,BAD_CON_E_STAT_T_FIELD
|
|
,CASE_LABELS_MISSING_IN_UNION
|
|
,BAD_CON_PARAM_RT_IGNORE
|
|
,MORE_THAN_ONE_PTR_ATTR
|
|
,RECURSION_THRU_REF
|
|
,BAD_CON_FIELD_VOID_PTR
|
|
,INVALID_OSF_ATTRIBUTE
|
|
,WCHAR_T_INVALID_OSF
|
|
,BAD_CON_UNNAMED_FIELD
|
|
,BAD_CON_UNNAMED_FIELD_NO_STRUCT
|
|
,BAD_CON_UNION_FIELD_CONF
|
|
,PTR_WITH_NO_DEFAULT
|
|
,RHS_OF_ASSIGN_NOT_CONST
|
|
,SWITCH_IS_TYPE_IS_WRONG
|
|
,ILLEGAL_CONSTANT
|
|
,IGNORE_UNIMPLEMENTED_ATTRIBUTE
|
|
,BAD_CON_REF_RT
|
|
,ATTRIBUTE_ID_MUST_BE_VAR
|
|
,RECURSIVE_UNION
|
|
,BINDING_HANDLE_IS_OUT_ONLY
|
|
,PTR_TO_HDL_UNIQUE_OR_FULL
|
|
,HANDLE_T_NO_TRANSMIT
|
|
,UNEXPECTED_END_OF_FILE
|
|
,HANDLE_T_XMIT
|
|
,CTXT_HDL_GENERIC_HDL
|
|
,GENERIC_HDL_VOID
|
|
,NO_EXPLICIT_IN_OUT_ON_PARAM
|
|
,TRANSMIT_AS_VOID
|
|
,VOID_NON_FIRST_PARAM
|
|
,SWITCH_IS_ON_NON_UNION
|
|
,STRINGABLE_STRUCT_NOT_SUPPORTED
|
|
,SWITCH_TYPE_TYPE_BAD
|
|
,GENERIC_HDL_HANDLE_T
|
|
,HANDLE_T_CANNOT_BE_OUT
|
|
,SIZE_LENGTH_SW_UNIQUE_OR_FULL
|
|
,CPP_QUOTE_NOT_OSF
|
|
,QUOTED_UUID_NOT_OSF
|
|
,RETURN_OF_UNIONS_ILLEGAL
|
|
,RETURN_OF_CONF_STRUCT
|
|
,XMIT_AS_GENERIC_HANDLE
|
|
,GENERIC_HANDLE_XMIT_AS
|
|
,INVALID_CONST_TYPE
|
|
,INVALID_SIZEOF_OPERAND
|
|
,NAME_ALREADY_USED
|
|
,ERROR_STATUS_T_ILLEGAL
|
|
,CASE_VALUE_OUT_OF_RANGE
|
|
,WCHAR_T_NEEDS_MS_EXT_TO_RPC
|
|
,INTERFACE_ONLY_CALLBACKS
|
|
,REDUNDANT_ATTRIBUTE
|
|
,CTXT_HANDLE_USED_AS_IMPLICIT
|
|
,CONFLICTING_ALLOCATE_OPTIONS
|
|
,ERROR_WRITING_FILE
|
|
,NO_SWITCH_TYPE_AT_DEF
|
|
,ERRORS_PASS1_NO_PASS2
|
|
,HANDLES_WITH_CALLBACK
|
|
,PTR_NOT_FULLY_IMPLEMENTED
|
|
,PARAM_ALREADY_CTXT_HDL
|
|
,CTXT_HDL_HANDLE_T
|
|
,ARRAY_SIZE_EXCEEDS_64K
|
|
,NE_UNION_FIELD_NE_UNION
|
|
,PTR_ATTRS_ON_EMBEDDED_ARRAY
|
|
,ALLOCATE_ON_TRANSMIT_AS
|
|
,SWITCH_TYPE_REQD_THIS_IMP_MODE
|
|
,IMPLICIT_HDL_ASSUMED_PRIMITIVE
|
|
,E_STAT_T_ARRAY_ELEMENT
|
|
,ALLOCATE_ON_HANDLE
|
|
,TRANSMIT_AS_ON_E_STAT_T
|
|
,IGNORE_ON_DISCRIMINANT
|
|
,NOCODE_WITH_SERVER_STUBS
|
|
,NO_REMOTE_PROCS_NO_STUBS
|
|
,TWO_DEFAULT_CASES
|
|
,UNION_NO_FIELDS
|
|
,VALUE_OUT_OF_RANGE
|
|
,CTXT_HDL_NON_PTR
|
|
,NON_RPC_RTYPE_HANDLE_T
|
|
,GEN_HDL_CTXT_HDL
|
|
,NON_RPC_FIELD_INT
|
|
,NON_RPC_FIELD_PTR_TO_VOID
|
|
,NON_RPC_FIELD_BIT_FIELDS
|
|
,NON_RPC_FIELD_NON_RPC_UNION
|
|
,NON_RPC_FIELD_FUNC_PTR
|
|
,PICKLING_AND_REMOTE_PROCS
|
|
,C_ERR_MAX
|
|
|
|
,H_ERR_START = H_ERROR_BASE
|
|
|
|
// text substitution support related errors
|
|
|
|
,MACRO_REDEFINITION = H_ERR_START
|
|
,PARAM_MACRO_UNIMPLEMENTED
|
|
,MACRO_DEF_BUFFER_OVERFLOW
|
|
,NO_LOCAL_SPECIFIED_WITH_HPP
|
|
|
|
,H_ERR_MAX
|
|
|
|
,I_ERR_START = H_ERR_MAX
|
|
|
|
,I_ERR_NO_CHILD = I_ERR_START // no child
|
|
,I_ERR_NO_SIBLING // no sibling
|
|
,I_ERR_NO_PEER // no more peers(siblings)
|
|
,I_ERR_NO_MEMBER // no more members(children)
|
|
,I_ERR_CANNOT_SET_BASIC_TYPE // cant set basic type
|
|
,I_ERR_CANNOT_GET_BASIC_TYPE // cant get basic type
|
|
,I_ERR_NO_RETURN_TYPE // no return type
|
|
,I_ERR_NO_SUCH_PARAMETER // No parameter of the given name
|
|
,I_ERR_NO_LIST // no list available
|
|
,I_ERR_SYMTABLE_UNDERFLOW // symbol table underflow
|
|
,I_ERR_GRAPHTABLE_UNDERFLOW // graph table underflow
|
|
,I_ERR_NO_NEXT_PARAM // No next parameter
|
|
,I_ERR_NO_PARAMETERS // No parameters for proc
|
|
,I_ERR_INCOMPLETE_GRAPH // graph building aborted
|
|
,I_ERR_NULL_OUT_PARAM
|
|
,I_ERR_SYMBOL_NOT_FOUND
|
|
,I_ERR_NO_NEXT_SCOPE
|
|
,I_ERR_NO_PREV_SCOPE
|
|
,I_ERR_UNKNOWN_ACTION
|
|
,I_ERR_INVALID_NODE_TYPE
|
|
,I_ERR_INVALID_EDGE_TYPE
|
|
,I_ERR_UNKNOWN_ERROR
|
|
,I_ERR_NO_UNION_FOR_SWITCH
|
|
,I_ERR_CANNOT_GET_SWITCH_TYPE
|
|
,I_ERR_CANNOT_GET_XMIT_TYPE
|
|
|
|
,I_ERR_DERIVES_FROM_INT
|
|
,I_ERR_DERIVES_FROM_VOID
|
|
,I_ERR_DERIVES_FROM_VOID_PTR
|
|
,I_ERR_DERIVES_FROM_BIT_FIELDS
|
|
,I_ERR_DERIVES_FROM_NRPC_UNION
|
|
,I_ERR_DERIVES_FROM_FUNC_PTR
|
|
,I_ERR_PARAM_IS_ELIPSIS
|
|
,I_ERR_NOT_SUITABLE_FOR_MOPS
|
|
};
|
|
|
|
typedef enum _status_t STATUS_T;
|
|
|
|
#define NOWARN (0)
|
|
#define WARN_LEVEL_MAX (4)
|
|
|
|
#ifdef RPCDEBUG
|
|
|
|
#define CHECK_ERR(n) n,
|
|
|
|
#else // RPCDEBUG
|
|
|
|
#define CHECK_ERR(n)
|
|
|
|
#endif // RPCDEBUG
|
|
|
|
extern void RpcError(char *, short, STATUS_T , char *);
|
|
void ParseError( STATUS_T , char *);
|
|
|
|
#endif // __ERRORS_HXX__
|