/****************************************************************************/
/*                                                                          */
/*  RMX_HI.H:       Prototypes for iRMX HUMAN INTERFACE  system  calls  and */
/*                  definitions for special values and exception codes used */
/*                  with and/or returned by them.                           */
/*                                                                          */
/*  LAST UPDATE:    September 4, 1991 [10:38:00]                            */
/*                                                                          */
/*  DEPENDENCIES:   See RMX_EXC.H.                                          */
/*                                                                          */
/****************************************************************************/

#ifndef _RMX_HI_H
#define _RMX_HI_H

#ifndef _RMX_EXC_H
#include <rmx_exc.h>
#endif

/*  ENVIRONMENTAL EXCEPTIONS  */

#define E_LITERAL               0x0080
#define E_RMXSTR_BUFFER         0x0081
#define E_SEPARATOR             0x0082
#define E_CONTINUED             0x0083
#define E_INVALID_NUMERIC       0x0084
#define E_LIST                  0x0085
#define E_WILDCARD              0x0086
#define E_PREPOSITION           0x0087
#define E_PATH                  0x0088
#define E_CONTROL_C             0x0089
#define E_CONTROL               0x008A
#define E_UNMATCHED_LISTS       0x008B
#define E_INVALID_DATE          0x008C
#define E_NO_PARAMETERS         0x008D
#define E_VERSION               0x008E
#define E_GET_PATH_ORDER        0x008F
#define E_PERMISSION            0x0090
#define E_INVALID_TIME          0x0091

/*  PROGRAMMING EXCEPTIONS  */

#define E_PARSE_TABLES          0x8080
#define E_JOB_TABLES            0x8081
#define E_DEFAULT_SO            0x8083
#define E_RMXSTR                0x8084
#define E_ERROR_OUTPUT          0x8085

/* BASIC LITERALS */

#define SAME_PREPOSITION        0
#define DEFAULT_PREPOSITION     0
#define TO_PREPOSITION          1
#define OVER_PREPOSITION        2
#define AFTER_PREPOSITION       3

#define CONSOLE_INPUT_DEVICE    "\004:CI:"
#define CONSOLE_OUTPUT_DEVICE   "\004:CO:"
#define PC_COM1_DEVICE          "\006:COM1:"
#define PC_COM2_DEVICE          "\006:COM2:"
#define LINE_PRINTER_DEVICE     "\004:LP:"
#define TERMINAL_DEVICE         "\006:TERM:"
#define SYSTEM_DISK_DEVICE      "\004:SD:"

#define COMMANDS_DIRECTORY      "\010:SYSTEM:"
#define LANGUAGES_DIRECTORY     "\006:LANG:"
#define UTILITIES_DIRECTORY     "\007:UTILS:"
#define UTILITIES_DIRECTORY_2   "\007:UTIL286:"
#define USERS_HOME_DIRECTORY    "\006:HOME:"
#define USERS_PROGRAM_DIRECTORY "\006:PROG:"
#define CURRENT_DIRECTORY       "\003:$:"

/* ROUTINE PROTOTYPES */

#pragma fixedparams( RQCBACKUPCHAR, RQCCREATECOMMANDCONNECTION )
#pragma fixedparams( RQCDELETECOMMANDCONNECTION, RQCFORMATEXCEPTION )
#pragma fixedparams( RQCGETCHAR, RQCGETCOMMANDNAME, RQCGETINPUTCONNECTION )
#pragma fixedparams( RQCGETINPUTPATHNAME, RQCGETINPUTPATHNAMENOWC )
#pragma fixedparams( RQCGETOUTPUTCONNECTION, RQCGETOUTPUTPATHNAME )
#pragma fixedparams( RQCGETPARAMETER, RQCSENDCORESPONSE, RQCSENDCOMMAND )
#pragma fixedparams( RQCSENDEORESPONSE, RQCSETCONTROLC, RQCSETPARSEBUFFER )

void        RQCBACKUPCHAR( RMXRET *status );
RMXOBJ      RQCCREATECOMMANDCONNECTION( RMXOBJ ci_tkn, RMXOBJ co_tkn,
                U16 flags, RMXRET *status );
void        RQCDELETECOMMANDCONNECTION( RMXOBJ connection_tkn,
                RMXRET *status );
void        RQCFORMATEXCEPTION( RMXSTR *buffer_ptr, U16 buffer_size,
                U16 execption_code, U8 reserved, RMXRET *status );
char        RQCGETCHAR( RMXRET *status );
void        RQCGETCOMMANDNAME( RMXSTR *path_ptr, U16 path_buffer_size,
                RMXRET *status );
RMXOBJ      RQCGETINPUTCONNECTION( RMXSTR *path_ptr, RMXRET *status );
void        RQCGETINPUTPATHNAME( RMXSTR *path_ptr, U16 path_buffer_size,
                RMXRET *status );
void        RQCGETINPUTPATHNAMENOWC( RMXSTR *path_ptr, U16 path_buffer_size,
                RMXRET *status );
RMXOBJ      RQCGETOUTPUTCONNECTION( RMXSTR *path_ptr, U8 mode,
                RMXRET *status );
U8          RQCGETOUTPUTPATHNAME( RMXSTR *path_ptr, U16 path_buffer_size,
                RMXSTR *output_name_ptr, RMXRET *status );
char        RQCGETPARAMETER( RMXSTR *name_ptr, U16 name_buffer_size,
                void *value_ptr, U16 value_buffer_size, char *index_ptr,
                void *predict_list_ptr, RMXRET *status );
void        RQCSENDCORESPONSE( RMXSTR *response_ptr, U16 response_buffer_size,
                RMXSTR *message_ptr, RMXRET *status );
void        RQCSENDCOMMAND( RMXOBJ connection_tkn, RMXSTR *command_ptr,
                RMXRET *exception_ptr, RMXRET *status );
void        RQCSENDEORESPONSE( RMXSTR *response_ptr, U16 response_buffer_size,
                RMXSTR *message_ptr, RMXRET *status );
void        RQCSETCONTROLC( RMXOBJ semaphore_tkn, RMXRET *status );
U16         RQCSETPARSEBUFFER( RMXSTR *buffer_ptr, U16 buffer_size,
                RMXRET *status );

#endif /* ndef _RMX_HI_H */

