blob: 2dc148a9cec615e981f078013c47eca3ffe7fa56 [file] [log] [blame]
/*
* $Id: cimcdt.h,v 1.4 2007/12/21 15:10:43 sschuetz Exp $
*
* © Copyright IBM Corp. 2007
*
* THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE
* ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE
* CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT.
*
* You can obtain a current copy of the Eclipse Public License from
* http://www.opensource.org/licenses/eclipse-1.0.php
*
* Author: Adrian Schuur <schuur@de.ibm.com>
*
* Description:
*
* CIMC data types.
*
*/
#ifndef _CIMCDT_H_
#define _CIMCDT_H_
#include <stdio.h>
#ifdef __cplusplus
extern "C" {
#endif
#define CIMCVersion090 90 // 0.90
#ifdef CIMC_VERSION
#if (CIMC_VERSION==90)
#define CIMC_VER_90 1
#else
#error Unsupported CIMC_VERSION defined
#endif
#else
#define CIMC_VER_90
#endif
#if defined (CIMC_VER_90) || defined(CIMC_VER_ALL)
#define CIMCCurrentVersion CIMCVersion090
#else
/* default version */
#define CIMC_VER_90
#define CIMCCurrentVersion CIMCVersion090
#endif
struct _CIMCInstance;
struct _CIMCObjectPath;
struct _CIMCArgs;
struct _CIMCEnumeration;
struct _CIMCArray;
struct _CIMCString;
struct _CIMCDateTime;
struct _CIMCClass;
struct _CIMCIndicationListener;
typedef struct _CIMCInstance CIMCInstance;
typedef struct _CIMCObjectPath CIMCObjectPath;
typedef struct _CIMCArgs CIMCArgs;
typedef struct _CIMCEnumeration CIMCEnumeration;
typedef struct _CIMCArray CIMCArray;
typedef struct _CIMCString CIMCString;
typedef struct _CIMCDateTime CIMCDateTime;
typedef struct _CIMCClass CIMCClass;
typedef struct _CIMCIndicationListener CIMCIndicationListener;
struct _CIMCInstanceFT;
struct _CIMCObjectPathFT;
struct _CIMCArgsFT;
struct _CIMCEnumerationFT;
struct _CIMCArrayFT;
struct _CIMCStringFT;
struct _CIMCDateTimeFT;
struct _CIMCIndicationListenerFT;
typedef struct _CIMCInstanceFT CIMCInstanceFT;
typedef struct _CIMCObjectPathFT CIMCObjectPathFT;
typedef struct _CIMCArgsFT CIMCArgsFT;
typedef struct _CIMCEnumerationFT CIMCEnumerationFT;
typedef struct _CIMCArrayFT CIMCArrayFT;
typedef struct _CIMCStringFT CIMCStringFT;
typedef struct _CIMCDateTimeFT CIMCDateTimeFT;
typedef struct _CIMCIndicationListenerFT CIMCIndicationListenerFT;
typedef unsigned char CIMCBoolean;
typedef unsigned short CIMCChar16;
typedef unsigned char CIMCUint8;
typedef unsigned short CIMCUint16;
typedef unsigned int CIMCUint32;
#ifndef CIMC_PLATFORM_WIN32_IX86_MSVC
typedef unsigned long long CIMCUint64;
#else
typedef unsigned __int64 CIMCUint64;
#endif
typedef signed char CIMCSint8;
typedef short CIMCSint16;
typedef int CIMCSint32;
#ifndef CIMC_PLATFORM_WIN32_IX86_MSVC
typedef long long CIMCSint64;
#else
typedef __int64 CIMCSint64;
#endif
typedef float CIMCReal32;
typedef double CIMCReal64;
typedef struct _CIMCValuePtr {
void *ptr;
unsigned int length;
} CIMCValuePtr;
typedef union _CIMCValue {
CIMCUint64 uint64;
CIMCUint32 uint32;
CIMCUint16 uint16;
CIMCUint8 uint8;
CIMCSint64 sint64;
CIMCSint32 sint32;
CIMCSint16 sint16;
CIMCSint8 sint8;
CIMCReal64 real64;
CIMCReal32 real32;
CIMCBoolean boolean;
CIMCChar16 char16;
CIMCClass* cls;
CIMCInstance* inst;
CIMCObjectPath* ref;
CIMCArgs* args;
CIMCEnumeration* Enum;
CIMCArray* array;
CIMCString* string;
char* chars;
CIMCDateTime* dateTime;
CIMCValuePtr dataPtr;
CIMCSint8 Byte;
CIMCSint16 Short;
CIMCSint32 Int;
CIMCSint64 Long;
CIMCReal32 Float;
CIMCReal64 Double;
} CIMCValue;
typedef unsigned short CIMCType;
#define CIMC_null 0
#define CIMC_SIMPLE (2)
#define CIMC_boolean (2+0)
#define CIMC_char16 (2+1)
#define CIMC_REAL ((2)<<2)
#define CIMC_real32 ((2+0)<<2)
#define CIMC_real64 ((2+1)<<2)
#define CIMC_UINT ((8)<<4)
#define CIMC_uint8 ((8+0)<<4)
#define CIMC_uint16 ((8+1)<<4)
#define CIMC_uint32 ((8+2)<<4)
#define CIMC_uint64 ((8+3)<<4)
#define CIMC_SINT ((8+4)<<4)
#define CIMC_sint8 ((8+4)<<4)
#define CIMC_sint16 ((8+5)<<4)
#define CIMC_sint32 ((8+6)<<4)
#define CIMC_sint64 ((8+7)<<4)
#define CIMC_INTEGER ((CIMC_UINT | CIMC_SINT))
#define CIMC_ENC ((16)<<8)
#define CIMC_instance ((16+0)<<8)
#define CIMC_ref ((16+1)<<8)
#define CIMC_args ((16+2)<<8)
#define CIMC_class ((16+3)<<8)
#define CIMC_filter ((16+4)<<8)
#define CIMC_enumeration ((16+5)<<8)
#define CIMC_string ((16+6)<<8)
#define CIMC_chars ((16+7)<<8)
#define CIMC_dateTime ((16+8)<<8)
#define CIMC_ptr ((16+9)<<8)
#define CIMC_charsptr ((16+10)<<8)
#define CIMC_ARRAY ((1)<<13)
#define CIMC_SIMPLEA (CIMC_ARRAY | CIMC_SIMPLE)
#define CIMC_booleanA (CIMC_ARRAY | CIMC_boolean)
#define CIMC_char16A (CIMC_ARRAY | CIMC_char16)
#define CIMC_REALA (CIMC_ARRAY | CIMC_REAL)
#define CIMC_real32A (CIMC_ARRAY | CIMC_real32)
#define CIMC_real64A (CIMC_ARRAY | CIMC_real64)
#define CIMC_UINTA (CIMC_ARRAY | CIMC_UINT)
#define CIMC_uint8A (CIMC_ARRAY | CIMC_uint8)
#define CIMC_uint16A (CIMC_ARRAY | CIMC_uint16)
#define CIMC_uint32A (CIMC_ARRAY | CIMC_uint32)
#define CIMC_uint64A (CIMC_ARRAY | CIMC_uint64)
#define CIMC_SINTA (CIMC_ARRAY | CIMC_SINT)
#define CIMC_sint8A (CIMC_ARRAY | CIMC_sint8)
#define CIMC_sint16A (CIMC_ARRAY | CIMC_sint16)
#define CIMC_sint32A (CIMC_ARRAY | CIMC_sint32)
#define CIMC_sint64A (CIMC_ARRAY | CIMC_sint64)
#define CIMC_INTEGERA (CIMC_ARRAY | CIMC_INTEGER)
#define CIMC_ENCA (CIMC_ARRAY | CIMC_ENC)
#define CIMC_stringA (CIMC_ARRAY | CIMC_string)
#define CIMC_charsA (CIMC_ARRAY | CIMC_chars)
#define CIMC_dateTimeA (CIMC_ARRAY | CIMC_dateTime)
#define CIMC_instanceA (CIMC_ARRAY | CIMC_instance)
#define CIMC_refA (CIMC_ARRAY | CIMC_ref)
#define CIMC_ptrA (CIMC_ARRAY | CIMC_ptr)
#define CIMC_charsptrA (CIMC_ARRAY | CIMC_charsptr)
// the following are cimcObjectPath key-types synonyms
// and are valid only when CIMC_keyValue of cimcValueState is set
#define CIMC_keyInteger (CIMC_sint64)
#define CIMC_keyString (CIMC_string)
#define CIMC_keyBoolean (CIMC_boolean)
#define CIMC_keyRef (CIMC_ref)
// the following are predicate types only
#define CIMC_charString (CIMC_string)
#define CIMC_integerString (CIMC_string | CIMC_sint64)
#define CIMC_realString (CIMC_string | CIMC_real64)
#define CIMC_numericString (CIMC_string | CIMC_sint64 | CIMC_real64)
#define CIMC_booleanString (CIMC_string | CIMC_boolean)
#define CIMC_dateTimeString (CIMC_string | CIMC_dateTime)
#define CIMC_classNameString (CIMC_string | CIMC_class)
#define CIMC_nameString (CIMC_string | ((16+10)<<8))
typedef unsigned short CIMCValueState;
#define CIMC_goodValue (0)
#define CIMC_nullValue (1<<8)
#define CIMC_keyValue (2<<8)
#define CIMC_notFound (4<<8)
#define CIMC_badValue (0x80<<8)
typedef struct _CIMCData {
CIMCType type;
CIMCValueState state;
CIMCValue value;
} CIMCData;
#ifdef CIMC_VER_87
typedef CIMCData CIMCAccessor(const char*, void* parm);
#endif
#ifndef CIMC_NO_SYNONYM_SUPPORT
#define CIMC_Byte CIMC_sint8
#define CIMC_Short CIMC_sint16
#define CIMC_Int CIMC_sint32
#define CIMC_Long CIMC_sint64
#define CIMC_Float CIMC_real32
#define CIMC_Double CIMC_real64
#define CIMC_ByteA CIMC_sint8A
#define CIMC_ShortA CIMC_sint16A
#define CIMC_IntA CIMC_sint32A
#define CIMC_LongA CIMC_sint64A
#define CIMC_FloatA CIMC_real32A
#define CIMC_DoubleA CIMC_real64A
#endif // CIMC_NO_SYNONYM_SUPPORT
typedef unsigned int CIMCCount;
typedef unsigned int CIMCFlags;
#define CIMC_FLAG_LocalOnly 1
#define CIMC_FLAG_DeepInheritance 2
#define CIMC_FLAG_IncludeQualifiers 4
#define CIMC_FLAG_IncludeClassOrigin 8
#define CIMCInvocationFlags "CIMCInvocationFlags"
#define CIMCPrincipal "CIMCPrincipal"
typedef enum _CIMCrc {
CIMC_RC_OK =0,
CIMC_RC_ERR_FAILED =1,
CIMC_RC_ERR_ACCESS_DENIED =2,
CIMC_RC_ERR_INVALID_NAMESPACE =3,
CIMC_RC_ERR_INVALID_PARAMETER =4,
CIMC_RC_ERR_INVALID_CLASS =5,
CIMC_RC_ERR_NOT_FOUND =6,
CIMC_RC_ERR_NOT_SUPPORTED =7,
CIMC_RC_ERR_CLASS_HAS_CHILDREN =8,
CIMC_RC_ERR_CLASS_HAS_INSTANCES =9,
CIMC_RC_ERR_INVALID_SUPERCLASS =10,
CIMC_RC_ERR_ALREADY_EXISTS =11,
CIMC_RC_ERR_NO_SUCH_PROPERTY =12,
CIMC_RC_ERR_TYPE_MISMATCH =13,
CIMC_RC_ERR_QUERY_LANGUAGE_NOT_SUPPORTED =14,
CIMC_RC_ERR_INVALID_QUERY =15,
CIMC_RC_ERR_METHOD_NOT_AVAILABLE =16,
CIMC_RC_ERR_METHOD_NOT_FOUND =17,
CIMC_RC_DO_NOT_UNLOAD =50,
CIMC_RC_NEVER_UNLOAD =51,
CIMC_RC_ERROR_SYSTEM =100,
CIMC_RC_ERROR =200
} CIMCrc;
typedef struct _CIMCStatus {
CIMCrc rc;
CIMCString *msg;
} CIMCStatus;
/* Management Broker classification and feature support */
#define CIMC_MB_Class_0 0x00000001
#define CIMC_MB_Class_1 0x00000003
#define CIMC_MB_Class_2 0x00000007
#define CIMC_MB_Supports_PropertyMI 0x00000100
#define CIMC_MB_Supports_IndicationMI 0x00000200
#define CIMC_MB_Supports_IndicationPolling 0x00000400
#define CIMC_MB_Supports_QueryNormalization 0x00000800
#define CIMC_MB_Supports_Qualifier 0x00001000
#define CIMC_MB_Supports_Schema 0x00003000
#ifdef __cplusplus
};
#endif
#endif // _CIMCDT_H_