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.
420 lines
10 KiB
420 lines
10 KiB
#ifdef NTVDM
|
|
#include "..\..\host\inc\error.h"
|
|
|
|
#else
|
|
#ifndef _INS_ERROR_H
|
|
#define _INS_ERROR_H
|
|
/*[
|
|
Name: error.h
|
|
Derived From: Base 2.0
|
|
Author(s): M.McCusker and J.D.R. (config msgs)
|
|
Created On: Unknown
|
|
Sccs ID: @(#)error.h 1.45 06/22/95
|
|
Purpose: Define the list of error messages and also the
|
|
interface to the host_error family of functions.
|
|
Notes: This file is guarded against multiple inclusion.
|
|
|
|
MUST INCLUDE
|
|
insignia.h
|
|
|
|
DESCRIPTION
|
|
This file provides an interface into the SoftPC error handling system.
|
|
|
|
It defines the main generic base error messages in a large enum.
|
|
|
|
It also defines a list of error headers and variants. 3.0 host_error
|
|
Now looks up the error code in a table of ERROR_STRUCTs to find what
|
|
header to print and also in which of the possible variants to format
|
|
the error panel.
|
|
|
|
Header types are:-
|
|
EH_WARNING A warning message
|
|
EH_ERROR Runtime Error
|
|
EH_CONFIG Configuration File Problem
|
|
EH_INSTALL installation File Problem.
|
|
|
|
Each variant has up to three separate strings that will be printed on
|
|
the panel. These strings change function depending on the error
|
|
variant.
|
|
|
|
Variant types are:-
|
|
EV_SIMPLE Simple Error Pnael, Message Only.
|
|
EV_EXTRA_CHAR Extra Char panel, current default.
|
|
EV_BAD_FILE Config Error variant bad file.
|
|
EV_SYS_BAD_VALUE Config System Bad Entry.
|
|
EV_BAD_VALUE Config bad user config entry.
|
|
EV_BAD_INPUT Input also variant of EV_EXTRA_CHAR.
|
|
|
|
Each variant interprets the ErrData structure a little differently.
|
|
The BAD VALUE/INPUT variants also allow input form the error panel
|
|
into string_1 of the ErrData Structure. For input if the user hits
|
|
the Continue button on the panel the input filed is strcpy'd to
|
|
string_1. string_1 MUST be a pointer to an adequately sized char[].
|
|
|
|
Name Parameters
|
|
EV_SIMPLE No parameters required.
|
|
EV_EXTRA_CHAR 1 - Extra Char.
|
|
EV_BAD_FILE 1 - Name of problem file.
|
|
EV_SYS_BAD_VALUE 1 - Current Value of entry.
|
|
2 - Bad Option option name.
|
|
EV_BAD_VALUE 1 - Current value char array (i/o).
|
|
2 - Bad Option Name.
|
|
3 - System Default Value.
|
|
EV_BAD_INPUT 1 - Problem Line (i/o).
|
|
|
|
IMPORTED DATA
|
|
Error Description Tables ERROR_STRUCT base_errors[];
|
|
ERROR_STRUCT host_errors[];
|
|
|
|
base and host errors Tables indexed by the error code that provide
|
|
host_error_ext with the header and variant types.
|
|
|
|
TYPEDEFS
|
|
|
|
Parameter to extended error struct
|
|
{
|
|
char *string_1;
|
|
char *string_2;
|
|
char *string_3;
|
|
} ErrData, *ErrDataPtr;
|
|
|
|
Error Function Pointers struct
|
|
{
|
|
SHORT (*error_conf)();
|
|
SHORT (*error)();
|
|
SHORT (*error_ext)();
|
|
} ERRORFUNCS;
|
|
|
|
Ancillary data per error struct
|
|
{
|
|
CHAR header;
|
|
CHAR variant;
|
|
} ERROR_STRUCT;
|
|
|
|
The error code enum, See header file for details.
|
|
|
|
GLOBAL FUNCTIONS
|
|
|
|
Current Error Function Table IMPORT ERRORFUNCS *working_error_funcs;
|
|
|
|
Error Macros host_error_conf(panel, num, opts, extra)
|
|
host_error(num, opts, extra)
|
|
host_error_ext(num, opts, data)
|
|
|
|
host_error_conf
|
|
|
|
SHORT host_error_conf
|
|
(int panel, int errCode, int buttons, char *extraChar)
|
|
|
|
host_error_conf will not be supported by the 3.0 generic Motif UIF.
|
|
This call will just be a straight front end to a call of
|
|
host_error_ext.
|
|
|
|
See Also host_error_ext.
|
|
|
|
host_error
|
|
|
|
SHORT host_error(int errCode, int buttons, char *extraChar)
|
|
|
|
This function loads extraChar into string one of a local ErrData
|
|
structure and calls host_error_ext.
|
|
|
|
See also host_error_ext.
|
|
|
|
host_error_ext
|
|
|
|
SHORT host_error_ext(int errCode, int buttons, ErrDataPtr errDataP)
|
|
|
|
ErrCode is an index into either the base_errors array or the
|
|
host_errors array, 1-999 base, 1001-1999 host_errors. The header
|
|
code and the variant type is looked up in this array.
|
|
|
|
A maximum of three buttons can be or'ed into the buttons parameter
|
|
which are: ERR_QUIT, ERR_CONT, ERR_RESET, ERR_DEF & ERR_CONFIG any
|
|
three of these can be used, NB ERR_CONFIG and ERR_DEF are exactly the
|
|
same ERR_CONFIG is provided for backwards compatibility. The
|
|
following macros are provided for convenience:-
|
|
ERR_QU_CO_RE
|
|
ERR_QU_CO_DE
|
|
ERR_QU_CO
|
|
ERR_QU_RE
|
|
ERR_QU_DE
|
|
ERR_STANDARD Here for compatibility
|
|
|
|
After the panel is displayed, and the user chooses an option button is
|
|
interpreted as follows:-
|
|
ERR_QUIT - Call terminate(), doesn't return.
|
|
ERR_CONT - For some variants strcpy the input field.
|
|
ERR_RESET - Calls Reboot.
|
|
ERR_DEF } - No action.
|
|
ERR_CONFIG}
|
|
|
|
Finally, host_error_ext returns the option the user selected.
|
|
|
|
(c)Copyright Insignia Solutions Ltd., 1990. All rights reserved.
|
|
]*/
|
|
|
|
/*
|
|
* ============================================================================
|
|
* Structure/Data definitions
|
|
* ============================================================================
|
|
*/
|
|
|
|
/*
|
|
* Button bit mask values
|
|
*/
|
|
|
|
#define ERR_QUIT 1
|
|
#define ERR_CONT 2
|
|
#define ERR_RESET 4
|
|
#define ERR_DEF 8
|
|
#define ERR_CONFIG 8
|
|
|
|
#define ERR_QU_CO_RE ( ERR_QUIT | ERR_CONT | ERR_RESET )
|
|
#define ERR_QU_CO_DE ( ERR_QUIT | ERR_CONT | ERR_DEF )
|
|
#define ERR_QU_CO ( ERR_QUIT | ERR_CONT )
|
|
#define ERR_QU_RE ( ERR_QUIT | ERR_RESET )
|
|
#define ERR_QU_DE ( ERR_QUIT | ERR_DEF )
|
|
|
|
#define ERR_STANDARD ( ERR_QU_CO_RE ) /* here for compatibility */
|
|
|
|
/*
|
|
* The following are the Generic Error messages displayed by
|
|
* SoftPC. Host Specific messages are defined in xxxx_error.h
|
|
* where xxxx is the machine ID.
|
|
*/
|
|
|
|
/*
|
|
New messages MUST be added to the end of the list, or replace a
|
|
spare number. This rule prevents undue change to message catalogues,
|
|
both Insignia-generated ones and translations provided by OEMs.
|
|
|
|
YOU MUST UPDATE message.c AND err_tble.c
|
|
YOU MUST REPORT A HOST IMPACT ON MESSAGE CATALOGUES
|
|
*/
|
|
|
|
typedef enum
|
|
{
|
|
EG_BAD_OP=0,
|
|
EG_SLAVEPC_NO_LOGIN,
|
|
EG_SLAVEPC_NO_RESET,
|
|
EG_SLAVEPC_BAD_LINE,
|
|
EG_MISSING_HDISK,
|
|
EG_REAL_FLOPPY_IN_USE,
|
|
EG_HDISK_BADPATH,
|
|
EG_HDISK_BADPERM,
|
|
EG_HDISK_INVALID,
|
|
EG_NO_ROOM_FOR_LIM,
|
|
EG_HDISK_CANNOT_CREATE,
|
|
EG_HDISK_READ_ONLY,
|
|
EG_OWNUP,
|
|
EG_FSA_NOT_FOUND,
|
|
EG_FSA_NOT_DIRECTORY,
|
|
EG_FSA_NO_READ_ACCESS,
|
|
EG_NO_ACCESS_TO_FLOPPY,
|
|
EG_NO_ROM_BASIC,
|
|
EG_SLAVE_ON_TTYA,
|
|
EG_TTYA_ON_SLAVE,
|
|
EG_SAME_HD_FILE,
|
|
EG_DFA_BADOPEN,
|
|
EG_EXPANDED_MEM_FAILURE,
|
|
EG_MISSING_FILE,
|
|
EG_CONT_RESET,
|
|
EG_INVALID_EXTENDED_MEM_SIZE,
|
|
EG_INVALID_EXPANDED_MEM_SIZE,
|
|
EG_INVALID_AUTOFLUSH_DELAY,
|
|
EG_INVALID_VIDEO_MODE,
|
|
EG_NO_GRAPHICS, /* Dumb terminal using spare slot */
|
|
EG_REZ_UPDATE,
|
|
EG_NO_REZ_UPDATE,
|
|
EG_HFX_NO_USE,
|
|
EG_HFX_NO_NET,
|
|
EG_HFX_IN_USE,
|
|
EG_HFX_LOST_DIR,
|
|
EG_HFX_NOT_DIR,
|
|
EG_HFX_CANT_READ,
|
|
EG_HFX_DRIVE_NO_USE,
|
|
EG_HFX_DRIVE_ILL,
|
|
EG_NO_FONTS,
|
|
EG_UNSUPPORTED_VISUAL,
|
|
EG_NO_SOUND,
|
|
EG_SIG_PIPE,
|
|
EG_MALLOC_FAILURE,
|
|
EG_NO_REAL_FLOPPY_AT_ALL,
|
|
EG_SYS_MISSING_SPCHOME,
|
|
EG_SYS_MISSING_FILE,
|
|
EG_BAD_OPTION,
|
|
EG_WRITE_ERROR, /* Dumb terminal using spare slot */
|
|
EG_CONF_MISSING_FILE,
|
|
EG_CONF_FILE_WRITE,
|
|
EG_DEVICE_LOCKED,
|
|
EG_DTERM_BADOPEN,
|
|
EG_DTERM_BADTERMIO,
|
|
EG_BAD_COMMS_NAME,
|
|
EG_BAD_VALUE,
|
|
EG_SYS_BAD_VALUE,
|
|
EG_SYS_BAD_OPTION,
|
|
EG_SYS_CONF_MISSING,
|
|
EG_BAD_CONF,
|
|
EG_CONF_MISSING,
|
|
EG_BAD_MSG_CAT,
|
|
EG_DEMO_EXPIRED,
|
|
EG_GATE_A20,
|
|
EG_NO_LOCKD,
|
|
EG_DATE_FWD,
|
|
EG_DATE_BACK,
|
|
|
|
EG_NOT_CHAR_DEV, /* New generic floppy error. GM */
|
|
EG_MSW_256_COLOURS,
|
|
EG_MSW_16_COLOURS,
|
|
|
|
EG_HDISK_LOCKED,
|
|
EG_UNKNOWN_LOCK,
|
|
EG_NO_TERM_DESCR,
|
|
EG_DEFAULT_TERM,
|
|
|
|
EG_ST_BAD_OPTION, /* New Serial Terminal config error messages */
|
|
EG_ST_BAD_CONF,
|
|
EG_ST_CONF_MISSING,
|
|
|
|
EG_UNSUPPORTED_DEPTH, /* BCN 1622 */
|
|
|
|
EG_INSUF_MEMORY,
|
|
|
|
EG_BAD_DISK_READ,
|
|
EG_BAD_DISK_WRITE,
|
|
|
|
EG_LICENSE_FAILURE, /* Licensing error messages. BCN XXXX */
|
|
EG_LICENSE_EXPIRED,
|
|
EG_LICENSE_LOST,
|
|
EG_3_MINS_LEFT,
|
|
EG_TIMES_UP,
|
|
EG_UNAUTHORISED,
|
|
EG_LICENSE_EXCEEDED,
|
|
EG_INSTALL_ON_SERVER,
|
|
EG_FAILED_LMGRD,
|
|
EG_FAILED_INITTAB,
|
|
EG_UPDATE_LICFILE_FAILED,
|
|
EG_WRONG_MSWDVR,
|
|
#ifdef DOS_APP_LIC
|
|
EG_DAL_TOO_MUCH_NESTING,
|
|
EG_DAL_LIC_EXPIRED,
|
|
EG_DAL_LIC_EXCEEDED,
|
|
#endif
|
|
EG_FAILED_RCLOCAL,
|
|
|
|
#ifdef SOFTWIN_API
|
|
EG_API_MISMATCH,
|
|
#endif /* SOFTWIN_API */
|
|
|
|
EG_OVERWRITE_DRIVE_C,
|
|
|
|
EG_NO_SNDBLST_SUPPORT,
|
|
EG_DIRECTORY,
|
|
#ifdef HOST_HELP
|
|
EG_HELP_ERROR,
|
|
EG_HELP_NOT_INSTALLED,
|
|
#endif /* HOST_HELP */
|
|
#ifdef SECURE
|
|
EG_SYS_INSECURE,
|
|
#endif
|
|
|
|
EG_INFINITE_LOOP,
|
|
EG_DRIVER_MISMATCH,
|
|
EG_MISSING_INS_VXD,
|
|
NUM_BASE_ERRORS
|
|
} base_error_type;
|
|
|
|
/* The error message EG_HDISK_NOT_FOUND was a duplicate of EG_MISSING_HDISK
|
|
** so was removed. This define is in case EG_HDISK_NOT_FOUND is being used
|
|
** in anyone's host.
|
|
*/
|
|
#define EG_HDISK_NOT_FOUND EG_MISSING_HDISK
|
|
|
|
typedef struct
|
|
{
|
|
char header;
|
|
char varient;
|
|
} ERROR_STRUCT;
|
|
|
|
typedef enum
|
|
{
|
|
EH_WARNING=0,
|
|
EH_ERROR,
|
|
EH_CONFIG,
|
|
EH_INSTALL,
|
|
EH_LAST
|
|
} base_error_headers;
|
|
|
|
typedef enum
|
|
{
|
|
EV_SIMPLE=0,
|
|
EV_EXTRA_CHAR,
|
|
EV_BAD_FILE,
|
|
EV_SYS_BAD_VALUE,
|
|
EV_BAD_VALUE,
|
|
EV_BAD_INPUT,
|
|
EV_LAST
|
|
} base_error_varients;
|
|
|
|
/*
|
|
* 'string_1' is always used for input when necessary. When it is
|
|
* used for input it must point to a buffer with ample space.
|
|
*/
|
|
typedef struct
|
|
{
|
|
char *string_1; /* this must be a pointer to an ample buffer */
|
|
char *string_2;
|
|
char *string_3;
|
|
} ErrData, *ErrDataPtr;
|
|
|
|
/*
|
|
* ============================================================================
|
|
* External declarations and macros
|
|
* ============================================================================
|
|
*/
|
|
|
|
#ifdef ANSI
|
|
|
|
typedef struct
|
|
{
|
|
SHORT (*error_conf)(int, int, int, char *);
|
|
SHORT (*error)(int, int, char *);
|
|
SHORT (*error_ext)(int, int, ErrDataPtr);
|
|
} ERRORFUNCS;
|
|
|
|
#else /* ANSI */
|
|
|
|
typedef struct
|
|
{
|
|
SHORT (*error_conf)();
|
|
SHORT (*error)();
|
|
SHORT (*error_ext)();
|
|
} ERRORFUNCS;
|
|
|
|
#endif /* ANSI */
|
|
|
|
IMPORT ERRORFUNCS *working_error_funcs;
|
|
|
|
#define host_error_conf(panel, num, opts, extra)\
|
|
(*working_error_funcs->error_conf)(panel, num, opts, extra)
|
|
|
|
#define host_error(num, opts, extra)\
|
|
(*working_error_funcs->error)(num, opts, extra)
|
|
|
|
#define host_error_ext(num, opts, data)\
|
|
(*working_error_funcs->error_ext)(num, opts, data)
|
|
/* Prototype for the host_get_system_error_function which
|
|
* sits in the source code. Added 8.3.95
|
|
*/
|
|
IMPORT char * host_get_system_error IPT3 (char *, filename, int, line, int, errno);
|
|
|
|
|
|
/*
|
|
* Undefine these GWI defines if the host isn't using the GWI interface
|
|
*/
|
|
|
|
#include "host_gwi.h"
|
|
|
|
#endif /* _INS_ERROR_H */
|
|
#endif /* ntvdm */
|