Files
Sun1602/Server/ShopServer/Uitl/SQLAPI/syb_win32/oscompat.h
T
2022-10-26 12:25:11 +08:00

599 lines
14 KiB
C

/* Sccsid %Z% %M% %I% %G% */
/*
** Sybase OS-LIBRARY
** Confidential Property of Sybase, Inc.
** (c) Copyright Sybase, Inc. 1991 - 1994
** All rights reserved
**
** oscompat.h This file maps all defines and typedefs required to maintain
** backward compatibility. All defines, typedefs, and routines
** prototyped in this file are obsolete and will be removed
** in the next major release of Open Server.
*/
#if !defined(__OSCOMPAT_H__)
#define __OSCOMPAT_H__
/*
** Undefine DB-Lib typedefs and redefine them to use CS typedefs
*/
#if defined(DBTINYINT)
#undef DBTINYINT
#endif /* DBTINYINT */
#if defined(DBSMALLINT)
#undef DBSMALLINT
#endif /* DBSMALLINT */
#if defined(DBINT)
#undef DBINT
#endif /* DBINT */
#if defined(DBCHAR)
#undef DBCHAR
#endif /* DBCHAR */
#if defined(DBBINARY)
#undef DBBINARY
#endif /* DBBINARY */
#if defined(DBBIT)
#undef DBBIT
#endif /* DBBIT */
#if defined(DBDATETIME)
#undef DBDATETIME
#endif /* DBDATETIME */
#if defined(DBDATETIME4)
#undef DBDATETIME4
#endif /* DBDATETIME4 */
#if defined(DBMONEY)
#undef DBMONEY
#endif /* DBMONEY */
#if defined(DBMONEY4)
#undef DBMONEY4
#endif /* DBMONEY4 */
#if defined(DBFLT8)
#undef DBFLT8
#endif /* DBFLT8 */
#if defined(DBREAL)
#undef DBREAL
#endif /* DBREAL */
#if defined(BYTE)
#undef BYTE
#endif /* BYTE */
#if defined(DBBOOL)
#undef DBBOOL
#endif /* DBBOOL */
#if defined(RETCODE)
#undef RETCODE
#endif /* RETCODE */
#if defined(BOOL)
#undef BOOL
#endif /* BOOL */
#if defined(DBUSMALLINT)
#undef DBUSMALLINT
#endif /* DBUSMALLINT */
#if defined(DBPROGNLEN)
#undef DBPROGNLEN
#endif /* DBPROGNLEN */
#if defined(FAIL)
#undef FAIL
#endif /* FAIL */
#if defined(SUCCEED)
#undef SUCCEED
#endif /* SUCCEED */
#if defined(DBLOGINFO)
#undef DBLOGINFO
#endif /* DBLOGINFO */
#if defined(TRUE)
#undef TRUE
#endif /* TRUE */
#if defined(FALSE)
#undef FALSE
#endif /* FALSE */
/*
** Map old data types and defines to new CS data types and defines
*/
#define DBTINYINT CS_TINYINT
#define DBSMALLINT CS_SMALLINT
#define DBINT CS_INT
#define DBCHAR CS_CHAR
#define DBBINARY CS_BINARY
#define DBBIT CS_BIT
#define DBDATETIME CS_DATETIME
#define DBDATETIME4 CS_DATETIME4
#define DBMONEY CS_MONEY
#define DBMONEY4 CS_MONEY4
#define DBFLT8 CS_FLOAT
#define DBREAL CS_REAL
#define DBLOGINFO CS_LOGINFO
#define BYTE CS_BYTE
#define DBBOOL CS_BOOL
#define BOOL CS_BOOL
#define DBUSMALLINT unsigned short
#define SRV_NULLTERM CS_NULLTERM
#define RETCODE CS_RETCODE
#define FAIL CS_FAIL
#define SUCCEED CS_SUCCEED
#define TRUE CS_TRUE
#define FALSE CS_FALSE
/*
** Define utility function pointers for backward compatibility.
** Take care not to redefine these if sybfront.h has already
** been included.
*/
#if !defined(__sybfront__)
typedef CS_INT (CS_PUBLIC * INTFUNCPTR)PROTOTYPE((SRV_PROC *));
typedef CS_VOID (CS_PUBLIC * VOIDFUNCPTR)PROTOTYPE((SRV_PROC *));
typedef CS_BOOL (CS_PUBLIC * BOOLFUNCPTR)PROTOTYPE((SRV_PROC *));
#endif /* __sybfront__ */
/*
** Define the VOIDPTR for backward compatibility.
*/
#if !defined(SRV__INTERNAL_STRUCTS)
typedef CS_VOID *VOIDPTR;
#endif /* SRV__INTERNAL_STRUCTS */
/*
** Defines for Open Server data types. These defines are only here for
** backward compatibility with old programs.
**
*/
#define SRVCHAR (CS_INT)-100
#define SRVVARCHAR (CS_INT)-101
#define SRVBINARY (CS_INT)-102
#define SRVVARBINARY (CS_INT)-103
#define SRVINT1 (CS_INT)-104
#define SRVINT2 (CS_INT)-105
#define SRVINT4 (CS_INT)-106
#define SRVREAL (CS_INT)-107
#define SRVFLT8 (CS_INT)-108
#define SRVBIT (CS_INT)-109
#define SRVDATETIME (CS_INT)-110
#define SRVDATETIME4 (CS_INT)-111
#define SRVMONEY (CS_INT)-112
#define SRVMONEY4 (CS_INT)-113
#define SRVINTN (CS_INT)-114
#define SRVDATETIMN (CS_INT)-115
#define SRVMONEYN (CS_INT)-116
#define SRVFLTN (CS_INT)-117
#define SRVVOID (CS_INT)-118
/*
** Obsolete exit values for Open Server applications
*/
#if !defined(ERREXIT)
#define ERREXIT 0
#endif /* ERREXIT */
#if !defined(STDEXIT)
#define STDEXIT 1
#endif /* STDEXIT */
/*
** Obsolete return values for callback routines
*/
#define SRV_CONTINUE CS_SUCCEED
#define SRV_DEBUG (CS_RETCODE)(CS_SUCCEED + 1)
#define SRV_TERMINATE (CS_RETCODE)(CS_SUCCEED + 2)
/*
** Obsolete values for thread priorities. The values
** SRV_C_MAXPRIORITY, SRV_C_DEFPRIORITY, SRV_C_LOWPRIORITY
** specified in ospublic.h should be used.
*/
#define SRV_MAXPRIORITY 16
#define SRV_DEFPRIORITY 8
#define SRV_LOWPRIORITY 0
#if defined(POLLIN)
/*
** Map platform specific definitions to Open Server public defines
** for the SRV_POLLFD structure
*/
typedef struct pollfd SRV_POLLFD;
#define srv_fd fd
#define srv_events events
#define srv_revents revents
#define SRV_POLLIN POLLIN
#define SRV_POLLPRI POLLPRI
#define SRV_POLLOUT POLLOUT
#define SRV_POLLERR POLLERR
#define SRV_POLLHUP POLLHUP
#define SRV_POLLNVAL POLLNVAL
#endif /* POLLIN */
/*
** General purpose macros. These macros have been replaced by the server
** and thread property routines.
*/
#define SRV_CURPROC ((SRV_PROC *)srv__curproc())
#define SRV_EVENTDATA(s) ((CS_VOID *)srv__eventdata(s))
#define SRV_GETCONFIG(s) ((SRV_CONFIG *)srv__getconfig(s))
#define SRV_GETSERVER(s) ((SRV_SERVER *)srv__getserver(s))
#define SRV_GETVERSION() ((CS_CHAR *)srv__getversion())
#define SRV_GOT_ATTENTION(s) ((CS_BOOL)srv__got_attention(s))
#define SRV_IODEAD(s) ((CS_BOOL)srv__iodead(s))
#define SRV_SITEPROC(s) ((CS_BOOL)srv__siteproc(s))
#define SRV_TDSVERSION(s) ((CS_INT)srv__tdsversion(s))
/*
** Macros to manipulate bit fields. These macros have been replaced by the
** srv_mask routine.
*/
#define SRV_MASK_ZERO(ma) srv_bzero((CS_VOID *)(ma), CS_SIZEOF(*(ma)))
#define SRV_MASK_SET(ma,bit) ((ma)->mask_bits[(bit)/(sizeof(unsigned int) \
* CS_BITS_PER_BYTE)] |= \
(1 << ((bit) % (sizeof(unsigned int) \
* CS_BITS_PER_BYTE))))
#define SRV_MASK_CLEAR(ma,bit) ((ma)->mask_bits[(bit)/(sizeof(unsigned int) \
* CS_BITS_PER_BYTE)] &= \
~(1 << ((bit) % (sizeof(unsigned int) \
* CS_BITS_PER_BYTE))))
#define SRV_MASK_ISSET(ma,bit) ((ma)->mask_bits[(bit)/(sizeof(unsigned int) \
* CS_BITS_PER_BYTE)] & \
(1 << ((bit) % (sizeof(unsigned int) \
* CS_BITS_PER_BYTE))))
/*
** Macros to check, set, and clear trace bits. These macros have been replaced
** by the server properties routine.
*/
#define SRV_TRACE(bit) (srv__trace(CS_GET,bit))
#define SRV_TRACEON(bit) (srv__trace(CS_SET,bit))
#define SRV_TRACEOFF(bit) (srv__trace(CS_CLEAR,bit))
/*
** Defines for `field' argument to srv_pfield(). This functionality has
** been replaced by the thread properties API (srv_thread_props)
*/
#define SRV_SPID (CS_INT)100
#define SRV_NETSPID (CS_INT)101
#define SRV_TYPE (CS_INT)102
#define SRV_STATUS (CS_INT)103
#define SRV_MACHINE (CS_INT)105
#define SRV_USER (CS_INT)107
#define SRV_PWD (CS_INT)108
#define SRV_CPID (CS_INT)109
#define SRV_APPLNAME (CS_INT)110
#define SRV_RMTSERVER (CS_INT)111
#define SRV_TDS (CS_INT)112
#define SRV_CLIB (CS_INT)113
#define SRV_CLIBVERS (CS_INT)114
#define SRV_ROWSENT (CS_INT)115
/*
** Defines for `field' argument to srv_sfield(). This functionality has
** been replaced by the server properties API (srv_props)
*/
#define SRV_SERVERNAME (CS_INT)0
#define SRV_CONNECTIONS (CS_INT)1
#define SRV_PREEMPT (CS_INT)2
#define SRV_TIMESLICE (CS_INT)3
#define SRV_STACKSIZE (CS_INT)4
#define SRV_MSGPOOL (CS_INT)5
#define SRV_USEREVENTS (CS_INT)6
#define SRV_LOGFILE (CS_INT)7
#define SRV_SRVPROCS (CS_INT)8
#define SRV_REMCONNECTS (CS_INT)9
#define SRV_REMSITES (CS_INT)10
#define SRV_REMPREREAD (CS_INT)11
#define SRV_MSGQUEUES (CS_INT)12
#define SRV_MUTEXES (CS_INT)13
#define SRV_MAXNETBUF (CS_INT)14
#define SRV_VIRTCLKRATE (CS_INT)15
#define SRV_VIRTTIMER (CS_INT)16
#define SRV_CHARSET (CS_INT)17
#define SRV_SORTORDER (CS_INT)18
/*
** Symbols used by registered procedure routines.
*/
#define SRV_NOTIFY_ONCE CS_NOTIFY_ONCE
#define SRV_NOTIFY_ALWAYS CS_NOTIFY_ALWAYS
/*
** Trace type definitions for SRV_TRACE macro. This functionality has
** been replaced by the server properties API (srv_props)
*/
#define SRV__TR_TDSHDR SRV_TR_TDSHDR
#define SRV__TR_TDSDATA SRV_TR_TDSDATA
#define SRV__TR_MSGQ SRV_TR_MSGQ
#define SRV__TR_ATTN SRV_TR_ATTN
/*
** Obsolete trace defines
*/
#define SRV__TR_IO (CS_INT)0x00000000
#define SRV__TR_MSGUTIL (CS_INT)0x00000000
#define SRV__TR_RUNQ (CS_INT)0x00000000
/*
** Max server configuration values used by srv_config
*/
#define SRV_MAX_NOMAX -1
#define SRV_MAX_CONNECTIONS 4096
#define SRV_MAX_TIMESLICE SRV_MAX_NOMAX
#define SRV_MAX_STACKSIZE SRV_MAX_NOMAX
#define SRV_MAX_USEREVENTS 4096
#define SRV_MAX_SRVPROCS (SRV_MAX_CONNECTIONS * 3)
#define SRV_MAX_REMSITES 1024
#define SRV_MAX_REMPREREAD 1024
#define SRV_MAX_REMCONNECTS SRV_MAX_CONNECTIONS
#define SRV_MAX_MUTEXES 4096
#define SRV_MAX_MAXNETBUF 1000 * 1024
#define SRV_MAX_MSGQUEUES 4096
#define SRV_MAX_MSGMAX SRV_MAX_NOMAX
#define SRV_MAX_VIRTCLKRATE SRV_MAX_NOMAX
#define SRV_MAX_LOGSIZE SRV_MAX_NOMAX
/*
** Default server configuration values used by srv_config
*/
#define SRV_DEF_CONNECTIONS 30
#define SRV_DEF_USEREVENTS 0
#define SRV_DEF_SRVPROCS 50
#define SRV_DEF_REMSITES 10
#define SRV_DEF_REMPREREAD 3
#define SRV_DEF_REMCONNECTS 64
#define SRV_DEF_MUTEXES 128
#define SRV_DEF_MSGQUEUES (SRV_DEF_SRVPROCS + 128)
#if NETWARE386
#define SRV_DEF_MSGMAX (SRV_DEF_MSGQUEUES * 32)
#else
#define SRV_DEF_MSGMAX (SRV_DEF_MSGQUEUES * 256)
#endif /* NETWARE386 */
#define SRV_DEF_MAXNETBUF 2048
/*
** Unused defines for stacksize. They could not have been used anywhere
** because no 2.0 routines expected them as arguments.
*/
#define SRV_C_MINSTACKSIZE SRV_MINSTACKSIZE
#define SRV_C_DEFSTACKSIZE SRV_DEF_STACKSIZE
/*
** Message types used by srv_sendmsg
*/
#define SRV_MSG_INFO (CS_INT)1
#define SRV_MSG_ERROR (CS_INT)2
/*
** Maximum length of messages supported by srv_sendmsg and srv_log
*/
#define SRV_MAXMSG CS_MAX_MSG
/*
** Maximum length of an object name
*/
#define SRV_MAXNAME CS_MAX_NAME
/*
** Bit field define for srv_paramstatus that indicates that this is
** a return parameter. This flag is also used by srv_rpcoptions to indicate
** that this RPC requested recompilation before execution
*/
#define SRV_PARAMRETURN (CS_INT)0x01
/*
** Macro to determine if sigvec() is supported on this platform.
** If it is, we will PROTOTYPE srv_sigvec().
*/
#if (defined(SV_ONSTACK) || defined(SV_INTERRUPT))
#define USE_SIGVEC 1
#else
#define USE_SIGVEC 0
#endif /* (defined(SV_ONSTACK) || defined(SV_INTERRUPT)) */
/*
** Open Server prototypes for routines that are obsolute and will be
** removed from the Open Server library in the next release
*/
CS_START_EXTERN_C
extern SRV_CONFIG * CS_PUBLIC srv_config_alloc PROTOTYPE((void));
extern CS_RETCODE CS_PUBLIC srv_config PROTOTYPE((
SRV_CONFIG *config,
CS_INT option,
CS_CHAR *value,
CS_INT valuelen
));
extern CS_BOOL CS_PUBLIC srv_willconvert PROTOTYPE((
CS_INT srctype,
CS_INT desttype
));
extern CS_INT CS_PUBLIC srv_convert PROTOTYPE((
SRV_PROC *srvproc,
CS_INT srctype,
CS_VOID *src,
CS_INT srclen,
CS_INT desttype,
CS_VOID *dest,
CS_INT destlen
));
extern CS_INT CS_PUBLIC srv_describe PROTOTYPE((
SRV_PROC *srvproc,
CS_INT colnumber,
CS_CHAR *colname,
CS_INT namelen,
CS_INT desttype,
CS_INT destlen,
CS_INT srctype,
CS_INT srclen,
CS_VOID *srcdata
));
extern CS_RETCODE CS_PUBLIC srv_setuserdata PROTOTYPE((
SRV_PROC *srvproc,
CS_VOID *ptr
));
extern CS_VOID * CS_PUBLIC srv_getuserdata PROTOTYPE((
SRV_PROC *srvproc
));
extern CS_VOID * CS_PUBLIC srv_paramdata PROTOTYPE((
SRV_PROC *srvproc,
CS_INT n
));
extern CS_INT CS_PUBLIC srv_paramlen PROTOTYPE((
SRV_PROC *srvproc,
CS_INT n
));
extern CS_INT CS_PUBLIC srv_parammaxlen PROTOTYPE((
SRV_PROC *srvproc,
CS_INT n
));
extern CS_CHAR * CS_PUBLIC srv_paramname PROTOTYPE((
SRV_PROC *srvproc,
CS_INT n,
CS_INT *namelen
));
extern CS_RETCODE CS_PUBLIC srv_paramset PROTOTYPE((
SRV_PROC *srvproc,
CS_INT n,
CS_VOID *data,
CS_INT len
));
extern CS_INT CS_PUBLIC srv_paramnumber PROTOTYPE((
SRV_PROC *srvproc,
CS_CHAR *name,
CS_INT namelen
));
extern CS_INT CS_PUBLIC srv_paramstatus PROTOTYPE((
SRV_PROC *srvproc,
CS_INT n
));
extern CS_INT CS_PUBLIC srv_paramtype PROTOTYPE((
SRV_PROC *srvproc,
CS_INT n
));
extern CS_CHAR * CS_PUBLIC srv_pfield PROTOTYPE((
SRV_PROC *srvproc,
CS_INT field,
CS_INT *len
));
extern CS_RETCODE CS_PUBLIC srv_returnval PROTOTYPE((
SRV_PROC *srvproc,
CS_CHAR *valuename,
CS_INT namelen,
CS_INT status,
CS_INT type,
CS_INT maxlen,
CS_INT datalen,
CS_VOID *value
));
extern CS_INT CS_PUBLIC srv_rpcparams PROTOTYPE((
SRV_PROC *srvproc
));
extern CS_RETCODE CS_PUBLIC srv_sendmsg PROTOTYPE((
SRV_PROC *srvproc,
CS_INT msgtype,
CS_INT error,
CS_INT severity,
CS_INT state,
CS_CHAR *rpcname,
CS_INT rpcnamelen,
CS_INT linenum,
CS_CHAR *msg,
CS_INT msglen
));
extern CS_RETCODE CS_PUBLIC srv_sendrow PROTOTYPE((
SRV_PROC *srvproc
));
extern CS_RETCODE CS_PUBLIC srv_setcoldata PROTOTYPE((
SRV_PROC *srvproc,
CS_INT column,
CS_VOID *data
));
extern CS_RETCODE CS_PUBLIC srv_setcollen PROTOTYPE((
SRV_PROC *srvproc,
CS_INT column,
CS_INT len
));
extern CS_RETCODE CS_PUBLIC srv_setcolutype PROTOTYPE((
SRV_PROC *srvproc,
CS_INT column,
CS_INT utype
));
extern CS_RETCODE CS_PUBLIC srv_setustate PROTOTYPE((
SRV_PROC *spp,
CS_CHAR *state,
CS_INT statelen
));
extern CS_CHAR * CS_PUBLIC srv_sfield PROTOTYPE((
SRV_SERVER *server,
CS_INT field,
CS_INT *len
));
extern CS_VOID CS_PUBLIC srv_setifile PROTOTYPE((
CS_CHAR *filename,
CS_INT namelen
));
#if (USE_SIGVEC == 1)
extern CS_INT CS_PUBLIC srv_sigvec PROTOTYPE((
CS_INT sig,
struct sigvec *vec,
struct sigvec *ovec
));
#endif /* (USE_SIGVEC) */
extern SRV_PROC * CS_PUBLIC srv__curproc PROTOTYPE((void));
extern CS_VOID * CS_PUBLIC srv__eventdata PROTOTYPE((
SRV_PROC *sp
));
extern SRV_CONFIG * CS_PUBLIC srv__getconfig PROTOTYPE((
SRV_SERVER *server
));
extern SRV_SERVER * CS_PUBLIC srv__getserver PROTOTYPE((
SRV_PROC *sp
));
extern CS_CHAR * CS_PUBLIC srv__getversion PROTOTYPE((void));
extern CS_BOOL CS_PUBLIC srv__got_attention PROTOTYPE((
SRV_PROC *sp
));
extern CS_BOOL CS_PUBLIC srv__iodead PROTOTYPE((
SRV_PROC *sp
));
extern CS_BOOL CS_PUBLIC srv__siteproc PROTOTYPE((
SRV_PROC *sp
));
extern CS_INT CS_PUBLIC srv__tdsversion PROTOTYPE((
SRV_PROC *sp
));
extern CS_INT CS_PUBLIC srv__trace PROTOTYPE((
CS_INT action,
CS_INT val
));
extern CS_BOOL CS_PUBLIC srv__mask PROTOTYPE((
CS_INT cmd,
SRV_MASK_ARRAY *mp,
CS_INT bit
));
CS_END_EXTERN_C
#endif /* __OSCOMPAT_H__ */