/****************************************************************************** * * api_public.h - public include file for both ends of the Intercall api * * Module %M% Version %I% Date %H% * * (c) Copyright 1998 Ardent Software Inc. - All Rights Reserved * This is unpublished proprietary source code of Ardent Software Inc. * The copyright notice above does not evidence any actual or intended * publication of such source code. * ******************************************************************************* * * Maintenence log - insert most recent change descriptions at top * * Date.... GTAR# WHO Description......................................... * 10/14/98 23801 SAP Change copyrights. * 04/01/98 22815 RJE Added Teminos security functionality * 11/31/97 22201 AGM Added LOCAL_CONNECTION_STRING * 06/02/97 20104 DW Prepare NLS errors to match new NLS locale codes * 05/27/97 20104 DW Fix IK_mark tokens to match UniVerse NLSsetsrvmap * 03/07/97 20104 DW Added NLS tokens. * 07/16/96 18856 ALC Changed meaning of 80011 and 80019. 8011 is now a * failure to login (login id or password incorrect) * 80019 is a password expired failure. * 06/06/96 18451 DJD CHhanged EXTERN's so it will build on 16bit clients. * 05/15/95 18451 DJD Added support for NT Port. * 05/01/96 18115 DJD Added IE_CREATE_FAILED * 03/28/96 18208 AGM Add IE_SR_SELECT_FAIL * 03/26/96 18189 DJD Added error for icsessioninfo * 02/01/96 18025 DJD InterCall 2.1 functionality. * 12/05/95 17162 AGM Add old IE_ tokens for compatibility * 11/23/95 17162 DJD Added another one line fix * 11/08/95 17162 DJD Added login and account code. * 10/26/95 17162 DJD Changes for new execute. * 01/04/95 17162 GMM Module Created (based on icerrors.h) * ******************************************************************************/ /* execute special control codes */ #define ENDOFEXECUTE 0x03 #define INPUTEXECUTE 0x04 /* Communication tokens */ #define UVCS_SOCKREAD 1 #define UVCS_PIPEREAD 2 #define UVCS_INTERNAL_PACKET 3 /* The magic string that is put into the username field when a UNIX host requires a direct connection to its local UNIX server. The colons in this string guarentee that this can never match a valid unix users name. */ #define LOCAL_CONNECTION_STRING ":local:" /* Platform dependant defines */ #ifdef MSWIN #define PIPEHANDLE HANDLE #else #define PIPEHANDLE int #endif /* api function prototypes */ #ifdef MSWIN extern int api_pipe_write(PIPEHANDLE, char *, unsigned int); extern int api_pipe_read(PIPEHANDLE, char *, unsigned int); extern int create_api_pipe(PIPEHANDLE); extern void close_api_pipe(PIPEHANDLE); #else extern int api_pipe_write(); extern int api_pipe_read(); extern int create_api_pipe(); extern void close_api_pipe(); #endif /* Define the tokens common to both client and server */ #define IK_DATA 0 /* Open the data portion */ #define IK_DICT 1 /* Open the dictionary portion */ #define IK_DELETE 0 /* Release any locks on that record during DELETE*/ #define IK_DELETEW 1 /* Release any locks on that record during DELETE + wait for lock in the first place */ #define IK_DELETEU 3 /* Retain any locks during DELETE*/ #define IK_READ 0 /* READ without locking */ #define IK_READU 2 /* READU lock */ #define IK_READUW 3 /* READU lock + wait for lock to clear */ #define IK_READL 4 /* READL lock */ #define IK_READLW 5 /* READL lock + wait for lock to clear */ #define IK_WAIT 1 /* An additive value to IK$READU and IK$READL*/ #define IK_WRITE 0 /* Release the lock during WRITE*/ #define IK_WRITEW 1 /* Release the lock during WRITE + wait for lock in the first place*/ #define IK_WRITEU 5 /* Retain the lock during WRITE */ #define IK_WRITEUW 6 /* Retain the lock during WRITE + wait for lock in the first place */ /* Transaction support */ #define IK_START 1 /* Starts a transaction */ #define IK_COMMIT 2 /* Commits a transaction */ #define IK_ROLLBACK 3 /* Rolls back a transaction */ /* NLS Mark keys, status and macros */ #define IK_MARK_MIN 1 #define IK_IM 6 #define IK_AM 5 #define IK_VM 4 #define IK_SM 3 #define IK_TM 2 #define IK_NULL 1 #define IK_MARK_MAX 6 #define NUMICMARKS 6 /* number of NLS marks stored - IM,FM,VM,SVM,TM,sqlNULL */ #define IE_NLS_DEFAULT 1 /* NLS status: default used */ #define IE_NLS_BAD_MARKS 2 /* NLS status: marks are not distinct */ /* will be ... #define ICMAPNLSERROR(err) ( (err) == NLSE_NLS_NOT_ENABLED ? IE_NO_NLS :\ (err) == NLSE_MAP_NOT_FOUND ? IE_MAP_NOT_FOUND :\ (err) == NLSE_LOC_NOT_ENABLED ? IE_NO_LOCALE :\ (err) == NLSE_LOC_NOT_FOUND ? IE_LOCALE_NOT_FOUND :\ (err) == NLSE_LCERR_INVALIDCATEGORY ? IE_CATEGORY_NOT_FOUND :\ (err) ) */ /* unfortunately these clash at the oment */ #define ICMAPNLSERROR(err) ( (err) == NLSE_NLS_NOT_ENABLED ? IE_NO_NLS :\ (err) == NLSE_MAP_NOT_FOUND ? IE_MAP_NOT_FOUND :\ (err) == NLSLCERR_NOTIMPLEMENTED ? IE_NO_LOCALE :\ (err) == NLSLCERR_NOTFOUND ? IE_LOCALE_NOT_FOUND :\ (err) == NLSLCERR_INVALIDCATEGORY ? IE_CATEGORY_NOT_FOUND :\ (err) ) /* AT Variable code's for GET/SET */ #define IK_AT_LOGNAME 1 #define IK_AT_PATH 2 #define IK_AT_USERNO 3 #define IK_AT_WHO 4 #define IK_AT_TRANSACTION 5 #define IK_AT_DATA_PENDING 6 #define IK_AT_USER_RETURN_CODE 7 #define IK_AT_SYSTEM_RETURN_CODE 8 #define IK_AT_NULL_STR 9 #define IK_AT_SCHEMA 10 #define IK_AT_TRANSACTION_LEVEL 11 /* Error numbers. */ /* Numbers relating to the C library on the PC. */ /* These are adapted from the file errno.h. */ #define IE_PC_CLIB_FIRST 14000 /* First error number in range */ #define IE_ENOENT 14002 /* No such file or directory */ #define IE_EIO 14005 /* I/O error */ #define IE_EBADF 14009 /* Bad file number */ #define IE_ENOMEM 14012 /* No memory available */ #define IE_EACCES 14013 /* Permission denied */ #define IE_EINVAL 14022 /* Invalid argument */ #define IE_ENFILE 14023 /* File table overflow */ #define IE_EMFILE 14024 /* Too many open files */ #define IE_ENOSPC 14028 /* No space left on device */ /* Numbers relating to the Virtual Socket Library on the PC. */ #define IE_BW_NETDOWN 14550 /* Network is down */ #define IE_BW_NETUNREACH 14551 /* Network is unreachable */ #define IE_BW_TIMEDOUT 14560 /* Connection timed out */ #define IE_BW_CONNREFUSED 14561 /* Connection refused */ #define IE_BW_HOSTUNREACH 14565 /* Host is unreachable */ #define IE_BW_USERS 14568 /* Too many users */ #define IE_COMMFILE_SECURITY 14593 /* Unable to read the command file, possible security breach */ /* Errors generatd from library routine calls */ #define IE_ALI 22000 /* Already initialised */ #define IE_BFN 22001 /* bad field number (READV, WRITEV...)*/ #define IE_BTS 22002 /* buffer.size too small or not valid number*/ #define IE_IID 22003 /* Illegal record ID */ #define IE_LRR 22004 /* last record read (READNEXT) */ #define IE_NFI 22005 /* file.tag is not a file identifier*/ #define IE_NIN 22006 /* Client library not initialised for this task*/ #define IE_NLK 22007 /* The file was not locked by your process*/ #define IE_NPI 22008 /* Prime INFORMATION is not available*/ #define IE_STR 22009 /* The FILEINFO result is a string.*/ #define IE_MEM 22010 /* no memory to DIM an array (OPEN)*/ #define IE_RLS 22011 /* Error releasing memory */ #define IE_BPF 22012 /* Bad Partitioned file */ #define IE_ALG 22013 /* Bad Partitioning algorithm */ #define IE_NUP 22014 /* Non-unique Part number */ #define IE_DNA 22015 /* Dynt not available */ /* Generic and visible file system errors */ #define IE_RNF 30001 /* Record not found */ #define IE_LCK 30002 /* File or record is locked by another user*/ #define IE_PAR 30010 /* Bad parameter */ #define IE_KEY 30011 /* Bad key */ #define IE_UFI 30086 /* Unimplemented FILEINFO request*/ #define IE_BIL 30094 /* Bad ID length */ #define IE_FIFS 30095 /* Fileid is incorrect for session */ #define IE_USC 30096 /* Unsupport Server command, functions not availble let */ #define IE_SELFAIL 30097 /* Select Failed */ #define IE_LOCKINVALID 30098 /* Lock number provided is invalid */ #define IE_SEQOPENED 30099 /* Filed opened for sequential access and hashed access tried */ #define IE_HASHOPENED 30100 /* Filed opened for hashed access and sequential access tried */ #define IE_SEEKFAILED 30101 /* Seek command failed */ #define IE_DATUMERROR 30102 /* Internal datum error */ #define IE_INVALIDATKEY 30103 /* Invalid Key used for GET/SET at variables */ #define IE_INVALIDFILEINFOKEY 30104 /* FILEINFO Key out of range */ #define IE_UNABLETOLOADSUB 30105 /* Unable to load subroutine on host */ #define IE_BADNUMARGS 30106 /* Bad number of arguments for subroutine, either too many or not enough */ #define IE_SUBERROR 30107 /* Subroutine failed to complete suceesfully */ #define IE_ITYPEFTC 30108 /* IType failed to complete correctly */ #define IE_ITYPEFAILEDTOLOAD 30109 /* IType failed to load */ #define IE_ITYPENOTCOMPILED 30110 /* The IType has not been compiled */ #define IE_BADITYPE 30111 /* It is not an itype or the itype is corrupt */ #define IE_INVALIDFILENAME 30112 /* Filename is null */ #define IE_WEOFFAILED 30113 /* Weofseq failed */ #define IE_EXECUTEISACTIVE 30114 /* An execute is currently active */ #define IE_EXECUTENOTACTIVE 30115 /* An execute is currently active */ #define IE_BADEXECUTESTATUS 30116 /* Internal execute error, execute has not return an expected status */ #define IE_INVALIDBLOCKSIZE 30117 /* Blocksize is invalid for call */ #define IE_BAD_CONTROL_CODE 30118 /* Bad trans control code */ #define IE_BAD_EXEC_CODE 30119 /* Execute did not send returncodes bad to client correctly */ #define IE_BAD_TTY_DUP 30120 /* failure to dup ttys */ #define IE_BAD_TX_KEY 30121 /* Bad Transaction Key */ #define IE_TX_COMMIT_FAILED 30122 /* Transaction commit has failed */ #define IE_TX_ROLLBACK_FAILED 30123 /* Transaction rollback has failed */ #define IE_TX_ACTIVE 30124 /* A Transaction is active so this action is forbidden */ #define IE_CANT_ACCESS_PF 30125 /* Can not access part files */ #define IE_FAIL_TO_CANCEL 30126 /* Failed to cancel the execute */ #define IE_INVALID_INFO_KEY 30127 /* Invalid session info key */ #define IE_CREATE_FAILED 30128 /* create of sequential file failed */ #define IE_DUPHANDLE_FAILED 30129 /* Failed to duplicate a pipe handle */ /* Errors for the Client/Server interface */ #define IE_LNA 33200 /* Select list not active */ #define IE_PAR1 33201 /* Bad parameter 1 */ #define IE_PAR2 33202 /* Bad parameter 2 */ #define IE_PAR3 33203 /* Bad parameter 3 */ #define IE_PAR4 33204 /* Bad parameter 4 */ #define IE_PAR5 33205 /* Bad parameter 5 */ #define IE_PAR6 33206 /* Bad parameter 6 */ #define IE_PAR7 33207 /* Bad parameter 7 */ #define IE_PAR8 33208 /* Bad parameter 8 */ #define IE_PAR9 33209 /* Bad parameter 9 */ #define IE_BSLN 33211 /* Bad select list number */ #define IE_BPID 33212 /* Bad partfile id */ #define IE_BAK 33213 /* Bad AK file */ #define IE_NO_VOC 39003 /* can't open the VOC file */ #define IE_SOCKET_CLOSED 39115 /* Host has closed socket */ #define IE_BAD_HOST_NAME 39116 /* Failed to get address for this host*/ #define IE_FATAL 39117 /* Fatal error */ #define IE_BAD_ERROR 39118 /* Bad error number from host, i.e. error 0*/ #define IE_AT_INPUT 39119 /* Server waiting for input */ #define IE_SESSION_NOT_OPEN 39120 /* Session is not opened when an action has be tried on it */ #define IE_UVEXPIRED 39121 /* The Universe license has expired */ #define IE_CSVERSION 39122 /* Client or server is out of date Client/server functions have been updated*/ #define IE_COMMSVERSION 39123 /* Client or server is out of date comms support has been updated */ #define IE_BADSIG 39124 /* Incorrect client/server being commuincated with */ #define IE_BADDIR 39125 /* The dicteroy you are connecting to, either is not a universe account or does not exist */ #define IE_SERVERERR 39126 /* An error has occurred on the server when trying to transmit an error code to the client */ #define IE_BAD_UVHOME 39127 /* Unable to get the uv home coorectly */ #define IE_INVALIDPATH 39128 /* Bad path found UV.ACCOUNTS file */ #define IE_INVALIDACCOUNT 39129 /* Account name given is not an account */ #define IE_BAD_UVACCOUNT_FILE 39130 /* UV.ACCOUNT file could not be found to opened */ #define IE_FTA_NEW_ACCOUNT 39131 /* Failed to attach to the account specified */ #define IE_NOT_UVACCOUNT 39132 /* not a valid universe account */ #define IE_FTS_TERMINAL 39133 /* failed to setup the terminal for server */ #define IE_ULR 39134 /* user limited reached */ #define IE_NO_NLS 39135 /* NLS not available */ #define IE_MAP_NOT_FOUND 39136 /* NLS map not found */ #define IE_NO_LOCALE 39137 /* NLS locale support not available */ #define IE_LOCALE_NOT_FOUND 39138 /* NLS locale not found */ #define IE_CATEGORY_NOT_FOUND 39139 /* NLS locale catagory not found */ #define IE_SR_CREATE_PIPE_FAIL 39200 /* Server failed to create the slave pipes */ #define IE_SR_SOCK_CON_FAIL 39201 /* Server failed to connect to socket */ #define IE_SR_GA_FAIL 39202 /* Slave failed to give server the Go Ahead message */ #define IE_SR_MEMALLOC_FAIL 39203 /* Failed to allocate memory for the message from the slave */ #define IE_SR_SLAVE_EXEC_FAIL 39204 /* The slave failed to start correctly */ #define IE_SR_PASS_TO_SLAVE_FAIL 39205 /* Failed to the pass the message to the slave correctly */ #define IE_SR_EXEC_ALLOC_FAIL 39206 /* Server failed to allocate the memory for the execute buffer correctly */ #define IE_SR_SLAVE_READ_FAIL 39207 /* Failed to read from the slave correctly */ #define IE_SR_REPLY_WRITE_FAIL 39208 /* Failed to write the reply to the slave (ic_inputreply) */ #define IE_SR_SIZE_READ_FAIL 39209 /* Failed to read the size of the message from the slave */ #define IE_SR_SELECT_FAIL 39210 /* Server failed to select() on input channel */ #define IE_SR_SELECT_TIMEOUT 39211 /* The select has timed out */ #define IE_BAD_LOGINNAME 80011 /* Incorrect login name or password provided */ #define IE_BAD_PASSWORD 80019 /* Password has expired */ /* End of File */