mtollari 63d98e39cd Patch level : 12.0 no-patch
Files correlati     : 
Commento            : 
- Creazione nuova cartella per contenere tutte le librerie esterne
- Aggiunta nuova libreria sqlapi per interfacciare campo a vari DB

git-svn-id: svn://10.65.10.50/branches/R_10_00@24149 c028cbd2-c16b-5b4b-a496-9718f37d4682
2017-10-26 09:07:39 +00:00

166 lines
4.3 KiB
C

/*
** SAP Open Client/Server
** Copyright (c) 2013 SAP AG or an SAP affiliate company. All rights reserved.
*/
#ifndef __CSCONFIG_H__
#define __CSCONFIG_H__
/*
** This file will try to hide any interface differences found on various
** platform/compiler combinations. Any datatype or define that is
** dependant on a particular platform/compiler should have its definition
** here.
*/
/*****************************************************************************
**
** Function interface definitions.
**
*****************************************************************************/
/*
** Define the scoping rules that will be used in all libraries. These defines
** exist to support different compiler-specific keywords describing the
** calling convention of a C function.
**
** CS_PUBLIC Interface define for functions which are called
** outside of a library or DLL.
**
** CS_INTERNAL Interface define for functions which are only called
** within a library or DLL.
**
** CS_VARARGS Interface define for functions with variable argument
** lists which are called outside of a library or DLL.
**
** CS_STATIC Interface define for functions which are only called
** within a C module.
*/
/*
** We need to check to value of some compiler #defined macros
** but some compilers will give warnings for trying to use the
** value of a macro which has not been defined -- to avoid these
** warnings we define 'SYB' versions of the macros we need here
*/
#if defined(_MSC_VER)
#define SYB_MSC_VER _MSC_VER
#else /* _MSC_VER */
#define SYB_MSC_VER 0
#endif /* _MSC_VER */
#if defined(__STDC__)
#define SYB__STDC__ 1
#else /* __STDC__ */
#define SYB__STDC__ 0
#endif /* __STDC__ */
#if defined(_CPROTO_)
/*
** The _CPROTO_ ifdef allows users to have the cproto tool generate
** prototype definitions that include the scoping rules. We typedef all of
** the interface defines to allow the cproto tool to preserve the names
** (instead of replacing them with the defined values).
*/
typedef void CS_PUBLIC;
typedef void CS_INTERNAL;
typedef void CS_VARARGS;
typedef void CS_STATIC;
#else /* defined(_CPROTO_) */
#if ((SYB_MSC_VER >= 800) || defined(__BORLANDC__))
/*
** Defines for Windows NT calling conventions.
*/
#define CS_PUBLIC __stdcall
#define CS_INTERNAL CS_PUBLIC
#define CS_VARARGS __stdcall
#define CS_STATIC static
#else /* ((SYB_MSC_VER >= 800) || defined(__BORLANDC__)) */
/*
** Default defines for all other platform/compilers.
*/
#define CS_PUBLIC
#define CS_INTERNAL
#define CS_VARARGS
#define CS_STATIC static
#endif /* ((SYB_MSC_VER >= 800) || defined(__BORLANDC__)) */
#endif /* defined(_CPROTO_) */
/*
** Define wrappers to insure that all function prototypes defined in the
** Open Client and Open Server header files have the correct C function
** linkage when used with C++ compilers.
*/
#if defined(__cplusplus)
#define CS_START_EXTERN_C extern "C" {
#define CS_END_EXTERN_C }
#else
#define CS_START_EXTERN_C
#define CS_END_EXTERN_C
#endif /* defined(__cplusplus) */
/*
** PROTOTYPE macro which produces the prototype
*/
#ifndef PROTOTYPE
# define PROTOTYPE(s) s
#endif /* PROTOTYPE */
/*
** Define whether the compiler supports the "const" keyword.
*/
#if (SYB__STDC__) || defined(__cplusplus)
# define CS_CONST const
#else
# define CS_CONST
#endif
/*
** Define CS_ELLIPSE. It is used in function pointer prototypes where
** the arguments aren't known. Win3 uses ,... for CS_ELLIPSE, too.
*/
#define CS_ELLIPSE , ...
/*****************************************************************************
**
** Datatype definitions.
**
*****************************************************************************/
/*
** Certain SAP C datatypes must be defined as 4 bytes in size. The
** following insures that all platforms (including 64 bit machines) use
** the correct C native types.
*/
#if defined( __alpha) || defined(SYB_LP64) || defined(SYB_LLP64) || defined(_AIX)
typedef int CS_INT;
typedef int CS_RETCODE;
typedef int CS_BOOL;
typedef unsigned int CS_UINT;
#else
typedef long CS_INT;
typedef long CS_RETCODE;
typedef long CS_BOOL;
typedef unsigned long CS_UINT;
#endif
typedef void CS_VOID;
typedef void CS_THRDRES;
typedef double CS_FLOAT; /* 8 byte float type */
/*
** Define the number of bits that a CS_BYTE can hold.
*/
#define CS_BITS_PER_BYTE 8
#endif /* __CSCONFIG_H__ */