/* Sccsid %Z% %M% %I% %G% */ /* ** Sybase Server-Library ** Confidential Property of Sybase, Inc. ** (c) Copyright Sybase, Inc. 1991 - 1994 ** All rights reserved ** ** ospublic.h This is the header file that contains all definitions that ** are public to Open Server applications except for error ** number definitions. Error number definitions are in oserror.h. ** oserror.h should also be included by an Open Server application ** that needs to decode Open Server error numbers. ** ** 22Sep95 Added a sleep flag SRV_M_NOWAKE_ON_ERROR sureshk ** 01Oct96 removed the prototype for srv_offset() BTS: 65040 abidi ** 04Feb98 Added a wakeup flag SRV_M_CTWAKEUP sunilk */ #if !defined(__OSPUBLIC_H__) #define __OSPUBLIC_H__ /* ** Include common defines and typedefs that are visible to Open Server ** clients. */ #include /* ** Public data structure definitions. */ /* ** Public Cursor Information Structure. */ typedef struct _srv_curdesc { CS_INT curid; CS_INT numupcols; CS_INT fetchcnt; CS_INT curstatus; CS_INT curcmd; CS_INT cmdoptions; CS_INT fetchtype; CS_INT rowoffset; CS_INT curnamelen; CS_CHAR curname[CS_MAX_CHAR]; CS_INT tabnamelen; CS_CHAR tabname[CS_MAX_CHAR]; CS_VOID *userdata; } SRV_CURDESC; /* ** Public structure used to obtain procedure name lists. */ typedef struct srv__proclist { CS_INT num_procs; /* The # of procedure names */ CS_CHAR **proc_list; /* The procedure name strings */ } SRV_PROCLIST; /* ** Public structure used to obtain remote servername and password ** pairs. This sturcture is used by srv_thread_props for the SRV_T_RMTPWDS ** property. */ typedef struct srv_rmtpwd { CS_INT servnamelen; CS_BYTE servname[CS_MAX_NAME]; CS_INT pwdlen; CS_BYTE pwd[CS_MAX_NAME]; } SRV_RMTPWD; /* ** General Purpose Mask Structure. */ #define SRV_MASK_SIZE (CS_INT)40 #define SRV_MAXMASK_LENGTH (CS_INT)(SRV_MASK_SIZE * CS_BITS_PER_BYTE \ * (sizeof(unsigned int))) typedef struct srv_mask_array { unsigned int mask_bits[SRV_MASK_SIZE]; } SRV_MASK_ARRAY; /* ** Open Server object type (mutexes and message queues) */ #define SRV_OBJID CS_INT /* ** Internal Open Server datatype definitions. */ #if !defined(SRV__INTERNAL_STRUCTS) /* ** Define generic data structure types as void. */ #if !defined(SRV_PROC) #define SRV_PROC CS_VOID #endif /* SRV_PROC */ #if !defined(SRV_SERVER) #define SRV_SERVER CS_VOID #endif /* SRV_SERVER */ #if !defined(SRV_CONFIG) #define SRV_CONFIG CS_VOID #endif /* SRV_CONFIG */ #endif /* SRV__INTERNAL_STRUCTS */ /* ** Include the compatability header file. This file defines everything ** required for backward compatability with pre System 10 releases. This ** must be included before the SRV_POLLFD definition below, since SRV_POLLFD ** might get mapped to an OS specific structure in oscompat.h. */ #include #if !defined(SRV_POLLIN) /* ** NOTE: This SRV_POLLFD is only defined here for platforms that don't support ** the poll system call directly. oscompat.h maps these defines to the ** OS specific definitions on platforms that support the poll system call. ** However, all applications should migrate to use these new defines in ** their source code and remove all platform specific definitions of the ** poll structure. */ /* ** srv_poll file descriptor polling structure ** ** srv_fd File descriptor to poll ** srv_events Events to poll for on file descriptor ** srv_revents Events detected on file descriptor */ typedef struct srv__pollfd { CS_INT srv_fd; CS_INT srv_events; CS_INT srv_revents; } SRV_POLLFD; /* ** Event flags for srv_events and srv_revents ** ** SRV_POLLIN A non-blocking read may be completed ** SRV_POLLPRI A non-blocking read of urgent data may be completed ** SRV_POLLOUT A non-blocking write may be completed ** SRV_POLLERR An error occurred on srv_fd (srv_revents only) ** SRV_POLLHUP An hang-up occurred on srv_fd (srv_revents only) ** SRV_POLLNVAL srv_fd was invalid (srv_revents only) */ #define SRV_POLLIN (CS_INT)0x0001 #define SRV_POLLPRI (CS_INT)0x0002 #define SRV_POLLOUT (CS_INT)0x0004 #define SRV_POLLERR (CS_INT)0x0008 #define SRV_POLLHUP (CS_INT)0x0010 #define SRV_POLLNVAL (CS_INT)0x0020 #endif /* SRV_POLLIN */ /* ** Function argument prototypes */ CS_START_EXTERN_C typedef CS_RETCODE (CS_PUBLIC * SRV_CALLBACK_FUNC)PROTOTYPE(( SRV_PROC *spp )); typedef CS_RETCODE (CS_PUBLIC * SRV_ERRHANDLE_FUNC)PROTOTYPE(( SRV_SERVER *ssp, SRV_PROC *spp, CS_INT errornum, CS_INT severity, CS_INT state, CS_INT oserrnum, CS_CHAR *errtext, CS_INT errtextlen, CS_CHAR *oserrtext, CS_INT oserrtextlen )); typedef CS_RETCODE (CS_PUBLIC * SRV_EVENTHANDLE_FUNC)PROTOTYPE(( CS_VOID *argp )); typedef CS_RETCODE (CS_PUBLIC * SRV_SERVICETHREAD_FUNC)PROTOTYPE(( CS_VOID *argp )); #if (AIX) typedef CS_VOID (CS_VARARGS * SRV_SIGNAL_FUNC)PROTOTYPE(( CS_INT )); #else typedef CS_VOID (CS_VARARGS * SRV_SIGNAL_FUNC)PROTOTYPE(( CS_VOID * CS_ELLIPSE )); #endif /* AIX */ CS_END_EXTERN_C /* ** The NULL pointer define */ #if !defined(NULL) #define NULL 0 #endif /* NULL */ /* ** Cursor command option values. */ #define SRV_CUR_UNUSED ((CS_INT)0x0001) #define SRV_CUR_DEALLOC ((CS_INT)0x0002) #define SRV_CUR_UPDATABLE ((CS_INT)0x0004) #define SRV_CUR_RDONLY ((CS_INT)0x0008) #define SRV_CUR_DYNAMIC ((CS_INT)0x0010) #define SRV_CUR_HASARGS ((CS_INT)0x0020) #define SRV_CUR_SETROWS ((CS_INT)0x0040) #define SRV_CUR_ASKSTATUS ((CS_INT)0x0080) #define SRV_CUR_INFORMSTATUS ((CS_INT)0x0100) /* ** Dynamic item values. */ #define SRV_DYN_TYPE (CS_INT)1 #define SRV_DYN_IDLEN (CS_INT)2 #define SRV_DYN_ID (CS_INT)3 #define SRV_DYN_STMTLEN (CS_INT)4 #define SRV_DYN_STMT (CS_INT)5 /* ** Open Server Event Types */ #define SRV_ATTENTION (CS_INT)0 #define SRV_CONNECT (CS_INT)1 #define SRV_DISCONNECT (CS_INT)2 #define SRV_LANGUAGE (CS_INT)3 #define SRV_RPC (CS_INT)4 #define SRV_START (CS_INT)5 #define SRV_STOP (CS_INT)6 #define SRV_BULK (CS_INT)7 #define SRV_CURSOR (CS_INT)8 #define SRV_MSG (CS_INT)9 #define SRV_OPTION (CS_INT)10 #define SRV_DYNAMIC (CS_INT)11 #define SRV_URGDISCONNECT (CS_INT)14 #define SRV_FULLPASSTHRU (CS_INT)16 /* ** Symbols used by registered procedure routines. */ #define SRV_M_PNOTIFYALL ((CS_SMALLINT)0x0002) #define SRV_M_PNOTIFYNEXT ((CS_SMALLINT)0x0004) #define SRV_NODEFAULT ((CS_INT)(-2)) /* ** Define the return codes for callback routines. */ #define SRV_S_CONTINUE (CS_INT)0 #define SRV_S_INHIBIT (CS_INT)1 /* ** Event types */ #define SRV_EQUEUED (CS_INT)0x01 #define SRV_EIMMEDIATE (CS_INT)0x02 /* ** Object Types */ #define SRV_C_MUTEX (CS_INT)1 #define SRV_C_MQUEUE (CS_INT)2 /* ** Scheduling and messaging system symbols. */ #define SRV_M_URGENT (CS_INT)0x00000001 #define SRV_M_READ_ONLY (CS_INT)0x00000002 #define SRV_M_WAIT (CS_INT)0x00000010 #define SRV_M_NOWAIT (CS_INT)0x00000020 #define SRV_M_WAKE_ALL (CS_INT)0x00000040 #define SRV_M_WAKE_FIRST (CS_INT)0x00000080 #define SRV_M_WAKE_INTR (CS_INT)0x00000100 #define SRV_M_WAKE_NOINTR (CS_INT)0x00000200 #define SRV_M_ATTNWAKE (CS_INT)0x00000400 #define SRV_M_NOATTNWAKE (CS_INT)0x00000800 #define SRV_M_NOWAKE_ON_ERROR (CS_INT)0x00001000 #define SRV_M_CTWAKEUP (CS_INT)0x00002000 /* ** Informational symbols. */ #define SRV_I_UNKNOWN (CS_INT)0 #define SRV_I_SYNC (CS_INT)1 #define SRV_I_GRANTED (CS_INT)2 #define SRV_I_NOEXIST (CS_INT)3 #define SRV_I_DELETED (CS_INT)4 #define SRV_I_WOULDWAIT (CS_INT)5 #define SRV_I_PASSTHRU_MORE (CS_INT)6 #define SRV_I_PASSTHRU_EOM (CS_INT)7 #define SRV_I_INTERRUPTED (CS_INT)8 #define SRV_I_PEXISTS (CS_INT)9 #define SRV_I_PNOTKNOWN (CS_INT)10 #define SRV_I_PCLIENT (CS_INT)11 #define SRV_I_PNOTCLIENT (CS_INT)12 #define SRV_I_PNOPENDING (CS_INT)13 #define SRV_I_PPARAMERR (CS_INT)14 #define SRV_I_PNOTIFYERR (CS_INT)15 #define SRV_I_PINVOPT (CS_INT)16 #define SRV_I_PNOTIFYEXISTS (CS_INT)17 #define SRV_I_TIMEOUT (CS_INT)18 /* ** The following constants are used for the callback installation. */ #define SRV_C_SUSPEND (CS_INT)1 #define SRV_C_RESUME (CS_INT)2 #define SRV_C_TIMESLICE (CS_INT)3 #define SRV_C_EXIT (CS_INT)4 #define SRV_C_PREEMPT (CS_INT)5 #define SRV_C_DEBUG (CS_INT)6 #define SRV_C_SELECT (CS_INT)7 #define SRV_C_POLL (CS_INT)8 #define SRV_C_PROCEXEC (CS_INT)9 /* ** Defines for `type' argument to srv_symbol(). */ #define SRV_ERROR (CS_INT)100 #define SRV_DONE (CS_INT)101 #define SRV_DATATYPE (CS_INT)102 #define SRV_EVENT (CS_INT)104 /* ** These are the possible values for the `type' argument in ** srv_bind(), srv_descfmt(), and srv_xferdata(). */ #define SRV_MSGDATA (CS_INT)1 #define SRV_ROWDATA (CS_INT)2 #define SRV_RPCDATA (CS_INT)3 #define SRV_ERRORDATA (CS_INT)4 #define SRV_DYNDATA (CS_INT)5 #define SRV_CURDATA (CS_INT)6 #define SRV_KEYDATA (CS_INT)7 #define SRV_UPCOLDATA (CS_INT)8 #define SRV_NEGDATA (CS_INT)9 #define SRV_LANGDATA (CS_INT)10 /* ** type args for srv_negotiate */ #define SRV_NEG_CHALLENGE (CS_INT)1 #define SRV_NEG_ENCRYPT (CS_INT)2 #define SRV_NEG_LOCPWD (CS_INT)3 #define SRV_NEG_SECLABEL (CS_INT)4 #define SRV_NEG_REMPWD (CS_INT)5 #define SRV_NEG_SECSESSION (CS_INT)6 /* ** These are possible values for the srv_envchange `type' argument. */ #define SRV_ENVDATABASE (CS_INT)1 #define SRV_ENVLANG (CS_INT)2 #define SRV_ENVCHARSET (CS_INT)3 /* ** These are possible values for the srv_msg() `status' argument and ** the cmdoptions field of the SRV_CURDESC structure */ #define SRV_HASPARAMS (CS_INT)0x01 #define SRV_NOPARAMS (CS_INT)0x00 /* ** This is the range of message Ids that are reserved for internal use ** by SYBASE */ #define SRV_MINRESMSG (CS_INT)0 #define SRV_MAXRESMSG (CS_INT)32767 /* ** The maximum char or binary length */ #define SRV_MAXCHAR (CS_INT)255 /* ** These are possible values for the srv_senddone() `status' argument. */ #define SRV_DONE_FINAL (CS_INT)0x0001 #define SRV_DONE_MORE (CS_INT)0x0002 #define SRV_DONE_ERROR (CS_INT)0x0004 #define SRV_DONE_COUNT (CS_INT)0x0008 #define SRV_DONE_FLUSH (CS_INT)0x0010 /* ** Defines for server properies. */ #define SRV_S_SERVERNAME (CS_INT)300 #define SRV_S_NUMCONNECTIONS (CS_INT)301 #define SRV_S_PREEMPT (CS_INT)302 #define SRV_S_TIMESLICE (CS_INT)303 #define SRV_S_STACKSIZE (CS_INT)304 #define SRV_S_MSGPOOL (CS_INT)305 #define SRV_S_NUMUSEREVENTS (CS_INT)306 #define SRV_S_LOGFILE (CS_INT)307 #define SRV_S_NUMTHREADS (CS_INT)308 #define SRV_S_NUMREMSITES (CS_INT)309 #define SRV_S_NUMREMBUF (CS_INT)310 #define SRV_S_NUMMSGQUEUES (CS_INT)311 #define SRV_S_NUMMUTEXES (CS_INT)312 #define SRV_S_NETBUFSIZE (CS_INT)313 #define SRV_S_VIRTCLKRATE (CS_INT)314 #define SRV_S_TDSVERSION (CS_INT)315 #define SRV_S_VIRTTIMER (CS_INT)316 #define SRV_S_APICHK (CS_INT)317 #define SRV_S_CURTHREAD (CS_INT)318 #define SRV_S_VERSION (CS_INT)319 #define SRV_S_IFILE (CS_INT)320 #define SRV_S_ALLOCFUNC (CS_INT)321 #define SRV_S_FREEFUNC (CS_INT)322 #define SRV_S_REALLOCFUNC (CS_INT)323 #define SRV_S_ERRHANDLE (CS_INT)324 #define SRV_S_TRACEFLAG (CS_INT)325 #define SRV_S_USESRVLANG (CS_INT)326 #define SRV_S_TRUNCATELOG (CS_INT)327 #define SRV_S_LOGSIZE (CS_INT)328 #define SRV_S_RESPONSECAP (CS_INT)329 #define SRV_S_REQUESTCAP (CS_INT)330 #define SRV_S_DEFQUEUESIZE (CS_INT)331 #define SRV_S_DISCONNECT (CS_INT)332 #define SRV_S_ATTNREASON (CS_INT)333 #define SRV_S_NETTRACEFILE (CS_INT)334 #define SRV_S_NETDATAFILE (CS_INT)335 #define SRV_S_DSPROVIDER (CS_INT)336 #define SRV_S_DSREGISTER (CS_INT)337 #define SRV_S_DSFAILOVER (CS_INT)338 #define SRV_S_SEC_PRINCIPAL (CS_INT)339 #define SRV_S_SEC_KEYTAB (CS_INT)340 #define SRV_S_IDLECOUNT (CS_INT)341 #define SRV_S_CERT_AUTH (CS_INT)342 #define SRV_S_VALIDATE_CB (CS_INT)343 #define SRV_S_SSL_VERSION (CS_INT)344 #define SRV_S_SSL_CIPHER (CS_INT)345 #define SRV_S_SSL_REQUIRE_CLIENT_CERT (CS_INT)346 #define SRV_S_SSL_LOCAL_ID (CS_INT)347 #define SRV_S_LASTPROP (CS_INT)347 /* ** Trace type definitions for SRV_S_TRACEFLAG server property */ #define SRV_TR_TDSHDR (CS_INT)0x0001 #define SRV_TR_TDSDATA (CS_INT)0x0002 #define SRV_TR_MSGQ (CS_INT)0x0004 #define SRV_TR_ATTN (CS_INT)0x0008 #define SRV_TR_TDSTOKEN (CS_INT)0x0010 #define SRV_TR_EVENT (CS_INT)0x0020 #define SRV_TR_NETPARAM (CS_INT)0x0040 #define SRV_TR_NETREQ (CS_INT)0x0080 #define SRV_TR_NETDRIVER (CS_INT)0x0100 #define SRV_TR_NETMEM (CS_INT)0x0200 #define SRV_TR_NETDATA (CS_INT)0x0400 #define SRV_TR_NETWAKE (CS_INT)0x0800 #define SRV_TR_DEFQUEUE (CS_INT)0x1000 /* ** Defines for thread properties - srv_thread_props(). */ #define SRV_T_SPID (CS_INT)200 #define SRV_T_TYPE (CS_INT)201 #define SRV_T_PRIORITY (CS_INT)202 #define SRV_T_TDSVERSION (CS_INT)203 #define SRV_T_EVENT (CS_INT)204 #define SRV_T_MACHINE (CS_INT)205 #define SRV_T_USER (CS_INT)206 #define SRV_T_PWD (CS_INT)207 #define SRV_T_APPLNAME (CS_INT)208 #define SRV_T_RMTSERVER (CS_INT)209 #define SRV_T_CLIB (CS_INT)210 #define SRV_T_CLIBVERS (CS_INT)211 #define SRV_T_ROWSENT (CS_INT)212 #define SRV_T_USERDATA (CS_INT)213 #define SRV_T_EVENTDATA (CS_INT)214 #define SRV_T_GOTATTENTION (CS_INT)215 #define SRV_T_IODEAD (CS_INT)216 #define SRV_T_PASSTHRU (CS_INT)217 #define SRV_T_USTATE (CS_INT)218 #define SRV_T_CLIENTLOGOUT (CS_INT)219 #define SRV_T_LOGINTYPE (CS_INT)220 #define SRV_T_HOSTNAME (CS_INT)221 #define SRV_T_HOSTPROCID (CS_INT)222 #define SRV_T_BYTEORDER (CS_INT)223 #define SRV_T_FLTTYPE (CS_INT)224 #define SRV_T_NOTIFYDB (CS_INT)225 #define SRV_T_NOTIFYCHARSET (CS_INT)226 #define SRV_T_NOTIFYLANG (CS_INT)227 #define SRV_T_DUMPLOAD (CS_INT)228 #define SRV_T_CONVERTSHORT (CS_INT)229 #define SRV_T_PACKETSIZE (CS_INT)230 #define SRV_T_STACKLEFT (CS_INT)231 #define SRV_T_BULKTYPE (CS_INT)232 #define SRV_T_LOCALE (CS_INT)233 #define SRV_T_NUMRMTPWDS (CS_INT)234 #define SRV_T_RMTPWDS (CS_INT)235 #define SRV_T_NEGLOGIN (CS_INT)236 #define SRV_T_USESRVLANG (CS_INT)237 #define SRV_T_CHARTYPE (CS_INT)238 #define SRV_T_ENDPOINT (CS_INT)239 #define SRV_T_DONESENT (CS_INT)240 #define SRV_T_CONTEXT (CS_INT)241 #define SRV_T_SEC_NETWORKAUTH (CS_INT)242 #define SRV_T_SEC_DELEGATION (CS_INT)243 #define SRV_T_SEC_MUTUALAUTH (CS_INT)244 #define SRV_T_SEC_INTEGRITY (CS_INT)245 #define SRV_T_SEC_CONFIDENTIALITY (CS_INT)246 #define SRV_T_SEC_DETECTREPLAY (CS_INT)247 #define SRV_T_SEC_DETECTSEQ (CS_INT)248 #define SRV_T_SEC_DATAORIGIN (CS_INT)249 #define SRV_T_SEC_CHANBIND (CS_INT)250 #define SRV_T_SEC_SESSTIMEOUT (CS_INT)251 #define SRV_T_SEC_CREDTIMEOUT (CS_INT)252 #define SRV_T_SEC_DELEGCRED (CS_INT)253 #define SRV_T_SEC_MECHANISM (CS_INT)254 #define SRV_T_FULLPASSTHRU (CS_INT)255 #define SRV_T_RMTCERTIFICATE (CS_INT)256 #define SRV_T_CIPHER_SUITE (CS_INT)257 #define SRV_T_SSL_VERSION (CS_INT)258 #define SRV_T_NOTIFYPND (CS_INT)259 #define SRV_T_LASTPROP (CS_INT)259 /* ** Possible values for the SRV_T_BULKTYPE thread property */ #define SRV_BULKLOAD (CS_INT)1 #define SRV_TEXTLOAD (CS_INT)2 #define SRV_IMAGELOAD (CS_INT)3 /* ** Possible values for option command types */ #define SRV_SETOPTION (CS_INT)1 #define SRV_CLEAROPTION (CS_INT)2 #define SRV_GETOPTION (CS_INT)3 #define SRV_SENDOPTION (CS_INT)4 /* ** Possible values for the SRV_T_LOGINTYPE thread property. */ #define SRV_SITEHANDLER (CS_INT)1 #define SRV_SUBCHANNEL (CS_INT)2 #define SRV_CLIENT (CS_INT)3 /* ** Possible values for the SRV_T_NEGLOGIN thread property. */ #define SRV_CHALLENGE (CS_INT)0x0001 #define SRV_ENCRYPT (CS_INT)0x0002 #define SRV_SECLABEL (CS_INT)0x0004 #define SRV_APPDEFINED (CS_INT)0x0008 /* ** Possible values for SRV_T_TYPE thread property */ #define SRV_TCLIENT (CS_INT)2 #define SRV_TSITE (CS_INT)4 #define SRV_TSUBPROC (CS_INT)5 #define SRV_TSERVICE (CS_INT)6 /* ** Possible values for the SRV_T_TDSVERSION and SRV_S_TDSVERSION thread ** property */ #define SRV_TDS_NONE (CS_INT)0 #define SRV_TDS_4_0 (CS_INT)4 #define SRV_TDS_4_0_2 (CS_INT)5 #define SRV_TDS_4_2 (CS_INT)6 #define SRV_TDS_4_6 (CS_INT)7 #define SRV_TDS_4_9_5 (CS_INT)8 #define SRV_TDS_5_0 (CS_INT)9 /* ** Possible values for SRV_T_BYTEORDER thread property. */ #define SRV_LITTLE_ENDIAN (CS_INT)1 #define SRV_BIG_ENDIAN (CS_INT)2 /* ** Possible values for SRV_T_FLTTYPE thread property. */ #define SRV_FLT_UNKNOWN (CS_INT)0 #define SRV_FLT_IEEE (CS_INT)1 #define SRV_FLT_ND5000 (CS_INT)2 #define SRV_FLT_VAX (CS_INT)3 /* ** Possible values for SRV_T_CHARTYPE thread property. */ #define SRV_CHAR_UNKNOWN (CS_INT)0 #define SRV_CHAR_ASCII (CS_INT)1 #define SRV_CHAR_EBCDIC (CS_INT)2 /* ** Possible modes for adjusting thread priorities. ** SRV_C_NEWPRI is specified with an absolute priority value, and ** SRV_C_DELTAPRI is used to adjust the current value up or down. */ #define SRV_C_NEWPRI 0 #define SRV_C_DELTAPRI 1 /* ** Possible values for thread priorities. ** The priority value specified in srv_setpri must be between ** SRV_C_LOWPRIORITY and SRV_C_MAXPRIORITY, inclusive. The default ** value for all Open Server threads is SRV_C_DEFPRIORITY. */ #define SRV_C_LOWPRIORITY (CS_INT)0 #define SRV_C_DEFAULTPRI (CS_INT)8 #define SRV_C_MAXPRIORITY (CS_INT)15 /* ** Default stack size argument for srv_spawn */ #define SRV_DEFAULT_STACKSIZE (CS_INT)(-1) /* ** Minimum allowable stack size that can be configured */ #define SRV_MINSTACKSIZE 0x8800 /* ** Default server configuration parameter defines. */ #define SRV_DEF_NUMCONNECTIONS (CS_INT)30 #define SRV_DEF_TIMESLICE (CS_INT)10 #define SRV_DEF_NUMUSEREVENTS (CS_INT)0 #define SRV_DEF_NUMTHREADS (CS_INT)50 #define SRV_DEF_NUMREMSITES (CS_INT)10 #define SRV_DEF_NUMREMBUF (CS_INT)3 #define SRV_DEF_NUMMUTEXES (CS_INT)128 #define SRV_DEF_NETBUFSIZE (CS_INT)2048 #define SRV_DEF_NUMMSGQUEUES (CS_INT)(SRV_DEF_NUMTHREADS + 128) #define SRV_DEF_MSGPOOL (CS_INT)(SRV_DEF_NUMMSGQUEUES * 256) #define SRV_DEF_VIRTCLKRATE (CS_INT)1000000 #define SRV_DEF_DEFQUEUESIZE (CS_INT)1024 #define SRV_DEF_LOG (CS_CHAR *)"srv.log" #define SRV_DEF_LOGFD ((CS_BYTE *)NULL) #define SRV_DEF_TRACEFD ((CS_BYTE *)NULL) #define SRV_DEF_STACKSIZE SRV_MINSTACKSIZE #define SRV_DEF_IDLECOUNT (CS_INT)0 /* ** Open Server prototypes. */ CS_START_EXTERN_C extern CS_RETCODE CS_PUBLIC srv_regwatch PROTOTYPE(( SRV_PROC *srvproc, CS_CHAR *proc_name, CS_INT namelen, CS_INT options, CS_INT *info )); extern CS_RETCODE CS_PUBLIC srv_regwatchlist PROTOTYPE(( SRV_PROC *srvproc, SRV_PROCLIST **proc_list )); extern CS_VOID * CS_PUBLIC srv_alloc PROTOTYPE(( CS_INT size )); extern CS_VOID * CS_PUBLIC srv_realloc PROTOTYPE(( CS_VOID *ptr, CS_INT size )); extern CS_INT CS_PUBLIC srv_select PROTOTYPE(( CS_INT nfds, SRV_MASK_ARRAY *readmask, SRV_MASK_ARRAY *writemask, SRV_MASK_ARRAY *exceptmask, CS_INT waitflag )); extern SRV_SIGNAL_FUNC CS_PUBLIC srv_signal PROTOTYPE(( CS_INT sig, SRV_SIGNAL_FUNC funcp )); extern CS_RETCODE CS_PUBLIC srv_sigdump PROTOTYPE(( CS_INT sig )); extern CS_RETCODE CS_PUBLIC srv_callback PROTOTYPE(( SRV_PROC *srvproc, CS_INT callback_type, SRV_CALLBACK_FUNC funcp )); extern CS_RETCODE CS_PUBLIC srv_regnowatch PROTOTYPE(( SRV_PROC *srvproc, CS_CHAR *proc_name, CS_INT namelen, CS_INT *info )); extern CS_BOOL CS_PUBLIC srv_capability PROTOTYPE(( CS_INT capability )); extern SRV_PROC * CS_PUBLIC srv_createproc PROTOTYPE(( SRV_SERVER *server )); extern CS_RETCODE CS_PUBLIC srv_charset_set PROTOTYPE(( SRV_PROC *srvproc, CS_INT charset )); extern CS_RETCODE CS_PUBLIC srv_cursor_props PROTOTYPE(( SRV_PROC *spp, CS_INT cmd, SRV_CURDESC *cdp )); extern CS_INT CS_PUBLIC srv_define_event PROTOTYPE(( SRV_SERVER *ssp, CS_INT type, CS_CHAR *namep, CS_INT namelen )); extern CS_INT CS_PUBLIC srv_dropproc PROTOTYPE(( SRV_PROC *srvproc )); extern CS_RETCODE CS_PUBLIC srv_dynamic PROTOTYPE(( SRV_PROC *srvproc, CS_INT cmd, CS_INT item, CS_VOID *buf, CS_INT buflen, CS_INT *outlen )); extern SRV_ERRHANDLE_FUNC CS_PUBLIC srv_errhandle PROTOTYPE(( SRV_ERRHANDLE_FUNC )); extern CS_INT CS_PUBLIC srv_event PROTOTYPE(( SRV_PROC *srvproc, CS_INT event, CS_VOID *data )); extern CS_INT CS_PUBLIC srv_event_deferred PROTOTYPE(( SRV_PROC *srvproc, CS_INT event, CS_VOID *data )); extern SRV_EVENTHANDLE_FUNC CS_PUBLIC srv_handle PROTOTYPE(( SRV_SERVER *unused, CS_INT event, SRV_EVENTHANDLE_FUNC )); extern SRV_SERVER * CS_PUBLIC srv_init PROTOTYPE(( SRV_CONFIG *unused, CS_CHAR *servername, CS_INT namelen )); extern CS_INT CS_PUBLIC srv_langcpy PROTOTYPE(( SRV_PROC *srvproc, CS_INT start, CS_INT numbytes, CS_CHAR *dest )); extern CS_INT CS_PUBLIC srv_langlen PROTOTYPE(( SRV_PROC *srvproc )); extern CS_CHAR * CS_PUBLIC srv_langptr PROTOTYPE(( SRV_PROC *srvproc, CS_INT n )); extern CS_RETCODE CS_PUBLIC srv_getloginfo PROTOTYPE(( SRV_PROC *srvproc, CS_LOGINFO **loginfo )); extern CS_RETCODE CS_PUBLIC srv_setloginfo PROTOTYPE(( SRV_PROC *srvproc, CS_LOGINFO *loginfo )); extern CS_RETCODE CS_PUBLIC srv_createmsgq PROTOTYPE(( CS_CHAR *mqname, CS_INT mqlen, SRV_OBJID *mqid )); extern CS_RETCODE CS_PUBLIC srv_getmsgq PROTOTYPE(( SRV_OBJID mqid, CS_VOID **msgp, CS_INT flags, CS_INT *info )); extern CS_RETCODE CS_PUBLIC srv_putmsgq PROTOTYPE(( SRV_OBJID mqid, CS_VOID *msgp, CS_INT flags )); extern CS_RETCODE CS_PUBLIC srv_deletemsgq PROTOTYPE(( CS_CHAR *name, CS_INT length, SRV_OBJID id )); extern CS_RETCODE CS_PUBLIC srv_createmutex PROTOTYPE(( CS_CHAR *mutex_name, CS_INT mutex_namelen, SRV_OBJID *mutex_id )); extern CS_RETCODE CS_PUBLIC srv_lockmutex PROTOTYPE(( SRV_OBJID mutex_id, CS_INT flags, CS_INT *info )); extern CS_RETCODE CS_PUBLIC srv_deletemutex PROTOTYPE(( CS_CHAR *mutex_name, CS_INT mutex_namelen, SRV_OBJID mutex_id )); extern CS_RETCODE CS_PUBLIC srv_unlockmutex PROTOTYPE(( SRV_OBJID mutex_id )); extern CS_RETCODE CS_PUBLIC srv_getobjid PROTOTYPE(( CS_INT obj_type, CS_CHAR *obj_name, CS_INT obj_namelen, SRV_OBJID *obj_id, CS_INT *info )); extern CS_RETCODE CS_PUBLIC srv_getobjname PROTOTYPE(( CS_INT obj_type, SRV_OBJID obj_id, CS_CHAR *obj_name, CS_INT *obj_namelen, CS_INT *info )); extern CS_RETCODE CS_PUBLIC srv_alt_bind PROTOTYPE(( SRV_PROC *spp, CS_INT altid, CS_INT item, CS_DATAFMT *lclfmtp, CS_BYTE *varaddrp, CS_INT *varlenp, CS_SMALLINT *indp )); extern CS_RETCODE CS_PUBLIC srv_alt_exist PROTOTYPE(( SRV_PROC *spp, CS_INT altid )); extern CS_RETCODE CS_PUBLIC srv_alt_descfmt PROTOTYPE(( SRV_PROC *spp, CS_INT altid, CS_INT optype, CS_INT operand, CS_INT item, CS_DATAFMT *rmtfmtp )); extern CS_RETCODE CS_PUBLIC srv_alt_header PROTOTYPE(( SRV_PROC *spp, CS_INT altid, CS_INT numbylist, CS_SMALLINT *bylistarray )); extern CS_RETCODE CS_PUBLIC srv_alt_xferdata PROTOTYPE(( SRV_PROC *spp, CS_INT altid )); extern CS_RETCODE CS_PUBLIC srv_bind PROTOTYPE(( SRV_PROC *spp, CS_INT cmd, CS_INT type, CS_INT item, CS_DATAFMT *lclfmtp, CS_BYTE *varaddrp, CS_INT *varlenp, CS_SMALLINT *indp )); extern CS_RETCODE CS_PUBLIC srv_capability_info PROTOTYPE(( SRV_PROC *spp, CS_INT cmd, CS_INT type, CS_INT capability, CS_VOID *val )); extern CS_RETCODE CS_PUBLIC srv_envchange PROTOTYPE(( SRV_PROC *spp, CS_INT type, CS_CHAR *oldvalp, CS_INT oldvallen, CS_CHAR *newvalp, CS_INT newvallen )); extern CS_RETCODE CS_PUBLIC srv_descfmt PROTOTYPE(( SRV_PROC *spp, CS_INT cmd, CS_INT type, CS_INT item, CS_DATAFMT *rmtfmtp )); extern CS_RETCODE CS_PUBLIC srv_envchange PROTOTYPE(( SRV_PROC *spp, CS_INT type, CS_CHAR *oldvalp, CS_INT oldvallen, CS_CHAR *newvalp, CS_INT newvallen )); extern CS_RETCODE CS_PUBLIC srv_get_text PROTOTYPE(( SRV_PROC *spp, CS_BYTE *buf, CS_INT buflen, CS_INT *outlen )); extern CS_RETCODE CS_PUBLIC srv_msg PROTOTYPE(( SRV_PROC *spp, CS_INT cmd, CS_INT *msgid, CS_INT *status )); extern CS_RETCODE CS_PUBLIC srv_numparams PROTOTYPE(( SRV_PROC *spp, CS_INT *numparams )); extern CS_RETCODE CS_PUBLIC srv_orderby PROTOTYPE(( SRV_PROC *spp, CS_INT numcols, CS_INT *collist )); extern CS_RETCODE CS_PUBLIC srv_props PROTOTYPE(( CS_CONTEXT *contextp, CS_INT cmd, CS_INT property, CS_VOID *buf, CS_INT buflen, CS_INT *outlen )); extern CS_RETCODE CS_PUBLIC srv_sendinfo PROTOTYPE(( SRV_PROC *spp, CS_SERVERMSG *errmsg, CS_INT tran_state )); extern CS_RETCODE CS_PUBLIC srv_setcontrol PROTOTYPE(( SRV_PROC *spp, CS_INT colnum, CS_BYTE *ctrlinfo, CS_INT ctrllen )); extern CS_RETCODE CS_PUBLIC srv_send_text PROTOTYPE(( SRV_PROC *spp, CS_BYTE *buf, CS_INT buflen )); extern CS_RETCODE CS_PUBLIC srv_tabname PROTOTYPE(( SRV_PROC *spp, CS_INT tablenum, CS_CHAR *tablename, CS_INT namelen )); extern CS_RETCODE CS_PUBLIC srv_tabcolname PROTOTYPE(( SRV_PROC *spp, CS_INT colnum, CS_BROWSEDESC *bd )); extern CS_RETCODE CS_PUBLIC srv_thread_props PROTOTYPE(( SRV_PROC *spp, CS_INT cmd, CS_INT property, CS_VOID *buf, CS_INT buflen, CS_INT *outlen )); extern CS_RETCODE CS_PUBLIC srv_text_info PROTOTYPE(( SRV_PROC *spp, CS_INT cmd, CS_INT item, CS_IODESC *iodesc )); extern CS_RETCODE CS_PUBLIC srv_xferdata PROTOTYPE(( SRV_PROC *spp, CS_INT cmd, CS_INT type )); extern CS_RETCODE CS_PUBLIC srv_recvpassthru PROTOTYPE(( SRV_PROC *srvproc, CS_BYTE **recv_bufp, CS_INT *info )); extern CS_RETCODE CS_PUBLIC srv_sendpassthru PROTOTYPE(( SRV_PROC *srvproc, CS_BYTE *send_bufp, CS_INT *info )); extern CS_RETCODE CS_PUBLIC srv_regdefine PROTOTYPE(( SRV_PROC *srvproc, CS_CHAR *name, CS_INT namelen, SRV_EVENTHANDLE_FUNC handler )); extern CS_RETCODE CS_PUBLIC srv_regexec PROTOTYPE(( SRV_PROC *srvproc, CS_INT *info )); extern CS_RETCODE CS_PUBLIC srv_reginit PROTOTYPE(( SRV_PROC *srvproc, CS_CHAR *name, CS_INT namelen, CS_INT options )); extern CS_RETCODE CS_PUBLIC srv_reglist PROTOTYPE(( SRV_PROC *srvproc, SRV_PROCLIST **proc_list )); extern CS_RETCODE CS_PUBLIC srv_reglistfree PROTOTYPE(( SRV_PROC *srvproc, SRV_PROCLIST *proc_list )); extern CS_RETCODE CS_PUBLIC srv_regparam PROTOTYPE(( SRV_PROC *srvproc, CS_CHAR *paramname, CS_INT namelen, CS_INT type, CS_INT datalen, CS_BYTE *value )); extern CS_RETCODE CS_PUBLIC srv_regcreate PROTOTYPE(( SRV_PROC *srvproc, CS_INT *info )); extern CS_RETCODE CS_PUBLIC srv_regdrop PROTOTYPE(( SRV_PROC *srvproc, CS_CHAR *proc_name, CS_INT namelen, CS_INT *info )); extern CS_RETCODE CS_PUBLIC srv_spawn PROTOTYPE(( SRV_PROC **srvproc, CS_INT stacksize, SRV_SERVICETHREAD_FUNC funcp, CS_VOID *argp, CS_INT priority )); extern CS_RETCODE CS_PUBLIC srv_yield PROTOTYPE((void)); extern CS_RETCODE CS_PUBLIC srv_sleep PROTOTYPE(( CS_VOID *sleepevent, CS_CHAR *sleeplabel, CS_INT sleepflags, CS_INT *info, CS_VOID *reserved1, CS_VOID *reserved2 )); extern CS_RETCODE CS_PUBLIC srv_jsleep PROTOTYPE(( CS_VOID *sleepevent, CS_CHAR *sleeplabel, CS_INT sleepflags, CS_INT *info, CS_VOID *reserved1, CS_VOID *reserved2 )); extern CS_RETCODE CS_PUBLIC srv_wakeup PROTOTYPE(( CS_VOID *sleepevent, CS_INT wakeflags, CS_VOID *reserved1, CS_VOID *reserved2 )); extern CS_RETCODE CS_PUBLIC srv_ucwakeup PROTOTYPE(( SRV_PROC *srvproc, CS_INT wakeflags )); extern CS_RETCODE CS_PUBLIC srv_termproc PROTOTYPE(( SRV_PROC *srvproc )); extern CS_RETCODE CS_PUBLIC srv_setpri PROTOTYPE(( SRV_PROC *srvproc, CS_INT mode, CS_INT priority )); extern CS_CHAR * CS_PUBLIC srv_rpcdb PROTOTYPE(( SRV_PROC *srvproc, CS_INT *len )); extern CS_CHAR * CS_PUBLIC srv_rpcname PROTOTYPE(( SRV_PROC *srvproc, CS_INT *len )); extern CS_SMALLINT CS_PUBLIC srv_rpcnumber PROTOTYPE(( SRV_PROC *srvproc )); extern CS_INT CS_PUBLIC srv_rpcoptions PROTOTYPE(( SRV_PROC *srvproc )); extern CS_CHAR * CS_PUBLIC srv_rpcowner PROTOTYPE(( SRV_PROC *spp, CS_INT *lenp )); extern CS_RETCODE CS_PUBLIC srv_run PROTOTYPE(( SRV_SERVER *unused )); extern CS_RETCODE CS_PUBLIC srv_dbg_switch PROTOTYPE(( CS_INT spid )); extern int CS_PUBLIC srv_dbg_stop PROTOTYPE((void)); extern CS_RETCODE CS_PUBLIC srv_dbg_stack PROTOTYPE(( SRV_PROC *srvproc, CS_INT depth, CS_RETCODE (CS_PUBLIC *funcp)PROTOTYPE((CS_CHAR *buf, CS_INT buflen)) )); extern CS_RETCODE CS_PUBLIC srv_senddone PROTOTYPE(( SRV_PROC *srvproc, CS_INT status, CS_INT transtate, CS_INT count )); extern CS_RETCODE CS_PUBLIC srv_sendstatus PROTOTYPE(( SRV_PROC *srvproc, CS_INT value )); extern CS_RETCODE CS_PUBLIC srv_log PROTOTYPE(( SRV_SERVER *server, CS_BOOL dateflag, CS_CHAR *msg, CS_INT msglen )); extern CS_INT CS_PUBLIC srv_poll PROTOTYPE(( SRV_POLLFD *fdp, CS_INT nfds, CS_INT waitflag )); extern CS_CHAR * CS_PUBLIC srv_symbol PROTOTYPE(( CS_INT type, CS_INT symbol, CS_INT *len )); extern CS_VOID CS_PUBLIC srv_bmove PROTOTYPE(( CS_VOID *from, CS_VOID *to, CS_INT cnt )); extern CS_VOID CS_PUBLIC srv_bzero PROTOTYPE(( CS_VOID *location, CS_INT cnt )); extern CS_RETCODE CS_PUBLIC srv_free PROTOTYPE(( CS_VOID *mp )); extern CS_RETCODE CS_PUBLIC srv_version PROTOTYPE(( CS_CONTEXT *cp, CS_INT version )); extern CS_RETCODE CS_PUBLIC srv_mask PROTOTYPE(( CS_INT cmd, SRV_MASK_ARRAY *mp, CS_INT bit, CS_BOOL *info )); extern CS_RETCODE CS_PUBLIC srv_negotiate PROTOTYPE(( SRV_PROC *spp, CS_INT cmd, CS_INT type )); extern CS_RETCODE CS_PUBLIC srv_options PROTOTYPE(( SRV_PROC *srvproc, CS_INT cmd, CS_INT *optcmd, CS_INT *option, CS_VOID *buf, CS_INT bufsize, CS_INT *outlen )); CS_END_EXTERN_C #endif /* __OSPUBLIC_H__ */