home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
header45.zip
/
dmi.h
< prev
next >
Wrap
Text File
|
1999-03-15
|
19KB
|
472 lines
/****************************************************************************************************************************************************
Filename: dmi.h
Copyright (c) 1992,1993,1994, Intel Corporation. All rights reserved.
Copyright (c) 1993 - 1996, International Business Machines, Corporation. All rights reserved.
Description: Desktop Management Interface Header
****************************************************************************************************************************************************/
/******************************************************************** INCLUDES ********************************************************************/
#ifndef DMI_H_FILE
#define DMI_H_FILE
#include "os_dmi.h"
/***************************************************************************************************************************************************/
/******************************************************************** DEFINES *********************************************************************/
/* The below spells "DM11" (left to right order) */
#define DMI_LEVEL_CHECK 0x444D3131
/* The below spells "DMI1" (left to right order) NOTE: this is the version check string for DMI Version 1.0 */
#define DMI_LEVEL_CHECK_V1 0x444D4931
/***************************************************************************************************************************************************/
/*************************************************************** MIF DATABASE DEFINES **************************************************************/
/* iAttributeAccess Defines */
#define MIF_UNKNOWN_ACCESS 0
#define MIF_READ_ONLY 1
#define MIF_READ_WRITE 2
#define MIF_WRITE_ONLY 3
#define MIF_UNSUPPORTED 4
#define MIF_UNKNOWN 5
/* Masks for access mode */
#define MIF_COMMON_SPECIFIC_MASK 0x80000000
#define MIF_ACCESS_MODE_MASK ~MIF_COMMON_SPECIFIC_MASK
/* Return values from List Component Command */
#define MIF_LIST_COMPONENT_MATCH 0
#define MIF_LIST_COMPONENT_POSSIBLE_MATCH 1
/* iAttributeType Defines */
#define MIF_UNKNOWN_DATA_TYPE 0
#define MIF_COUNTER 1
#define MIF_COUNTER64 2
#define MIF_GAUGE 3
#define MIF_INTEGER 5
#define MIF_INT MIF_INTEGER
#define MIF_INTEGER64 6
#define MIF_INT64 MIF_INTEGER64
#define MIF_OCTETSTRING 7
#define MIF_DISPLAYSTRING 8
#define MIF_STRING MIF_DISPLAYSTRING
#define MIF_DATE 11
/* iFileType defines */
#define MIF_RESERVED1_FILE_TYPE 0
#define MIF_RESERVED2_FILE_TYPE 1
#define MIF_MIF_FILE_NAME_FILE_TYPE 2
#define MIF_MIF_FILE_POINTER_FILE_TYPE 3
#define MIF_SNMP_MAPPING_FILE_NAME_FILE_TYPE 4
#define MIF_SNMP_MAPPING_FILE_POINTER_FILE_TYPE 5
/****************************************************************************************************************************************************/
/******************************************************************** DMI COMMANDS ******************************************************************/
#define DMI_MISCELLANEOUS_COMMANDS 0x00000100
#define DMI_LIST_COMMANDS 0x00000200
#define DMI_GET_SET_COMMANDS 0x00000300
#define DMI_CI_COMMANDS 0x00000400
#define DMI_PRIVATE_COMMAND_MASK 0x80000000
#define DMI_UNKNOWN_COMMAND 0x00000000
/* Miscellaneous commands */
#define DmiRegisterMgmtCmd DMI_MISCELLANEOUS_COMMANDS + 0x00
#define DmiUnregisterMgmtCmd DMI_MISCELLANEOUS_COMMANDS + 0x01
#define DmiCancelCmd DMI_MISCELLANEOUS_COMMANDS + 0x02
/* List commands */
#define DmiListComponentCmd DMI_LIST_COMMANDS + 0x00
#define DmiListFirstComponentCmd DMI_LIST_COMMANDS + 0x01
#define DmiListNextComponentCmd DMI_LIST_COMMANDS + 0x02
#define DmiListComponentDescCmd DMI_LIST_COMMANDS + 0x03
#define DmiListGroupCmd DMI_LIST_COMMANDS + 0x04
#define DmiListFirstGroupCmd DMI_LIST_COMMANDS + 0x05
#define DmiListNextGroupCmd DMI_LIST_COMMANDS + 0x06
#define DmiListGroupDescCmd DMI_LIST_COMMANDS + 0x07
#define DmiListAttributeCmd DMI_LIST_COMMANDS + 0x08
#define DmiListFirstAttributeCmd DMI_LIST_COMMANDS + 0x09
#define DmiListNextAttributeCmd DMI_LIST_COMMANDS + 0x0a
#define DmiListAttributeDescCmd DMI_LIST_COMMANDS + 0x0b
#define DmiListGroupPragmaCmd DMI_LIST_COMMANDS + 0x0c
/* Get and Set commands */
#define DmiGetAttributeCmd DMI_GET_SET_COMMANDS + 0x00
#define DmiSetAttributeCmd DMI_GET_SET_COMMANDS + 0x01
#define DmiSetReserveAttributeCmd DMI_GET_SET_COMMANDS + 0x02
#define DmiSetReleaseAttributeCmd DMI_GET_SET_COMMANDS + 0x03
#define DmiGetRowCmd DMI_GET_SET_COMMANDS + 0x04
#define DmiGetFirstRowCmd DMI_GET_SET_COMMANDS + 0x05
#define DmiGetNextRowCmd DMI_GET_SET_COMMANDS + 0x06
/* CI commands */
#define DmiRegisterCiCmd DMI_CI_COMMANDS + 0x00
#define DmiUnregisterCiCmd DMI_CI_COMMANDS + 0x01
#define DmiCiInstallCmd DMI_CI_COMMANDS + 0x02
#define DmiCiUninstallCmd DMI_CI_COMMANDS + 0x03
/* File Types for DmiFileData */
#define DMI_MIF_FILE_NAME 2
#define DMI_MIF_FILE_POINTER 3
#define DMI_SNMP_MAP_FILE_NAME 4
#define DMI_SNMP_MAP_FILE_POINTER 5
/* Indication types */
#define DMI_EVENT_INDICATION 1
#define DMI_INSTALL_INDICATION 2
#define DMI_UNINSTALL_INDICATION 3
#define DMI_INSTALL_LANGUAGE_MAPPING 4
#define DMI_PRIVATE_INDICATION_MASK 0x80000000
/***************************************************************** DMI TYPES ************************************************************************/
/* Definitions used in structures */
typedef unsigned char DMI_BYTE;
typedef signed long int DMI_INT;
typedef unsigned long int DMI_OFFSET;
typedef unsigned long int DMI_UNSIGNED;
typedef DMI_UNSIGNED (_FAR DMI_FUNC_ENTRY _DMI_FUNC_IN)(void _FAR *);
typedef _DMI_FUNC_IN *DMI_FUNC_IN;
typedef DMI_UNSIGNED (_FAR DMI_FUNC_ENTRY _DMI_FUNC0_IN)(void);
typedef _DMI_FUNC0_IN *DMI_FUNC0_IN;
typedef DMI_UNSIGNED (_FAR DMI_FUNC_CALLBACK _DMI_FUNC_OUT)(void _FAR *);
typedef _DMI_FUNC_OUT *DMI_FUNC_OUT;
typedef DMI_UNSIGNED (_FAR DMI_FUNC_CALLBACK _DMI_FUNC0_OUT)(void);
typedef _DMI_FUNC0_OUT *DMI_FUNC0_OUT;
typedef void (_FAR DMI_FUNC_CALLBACK _DMI_FUNC3_OUT)(void _FAR *);
typedef _DMI_FUNC3_OUT *DMI_FUNC3_OUT;
typedef struct {
DMI_UNSIGNED length;
char body[1];
} DMI_STRING;
/****************************************************************************************************************************************************/
/**************************************************************** DMI STRUCTURES ********************************************************************/
/* 4.2 DmiCiCommand */
typedef struct DmiCiCommand {
DMI_OFFSET oCmdListEntry;
DMI_UNSIGNED iCnfBufLen;
void _FAR *pCnfBuf;
DMI_FUNC3_OUT pConfirmFunc;
} DMI_CiCommand_t;
/* 4.1 DmiMgmtCommand, DmiSecurity */
typedef struct DmiMgmtCommand {
DMI_UNSIGNED iLevelCheck;
DMI_UNSIGNED iCommand;
DMI_UNSIGNED iCmdLen;
DMI_UNSIGNED iMgmtHandle;
DMI_UNSIGNED iCmdHandle;
DMI_OFFSET osLanguage;
DMI_OFFSET oSecurity; /* Offset to a DMI_Security_t */
DMI_UNSIGNED iCnfBufLen;
void _FAR *pCnfBuf;
DMI_UNSIGNED iRequestCount;
DMI_UNSIGNED iCnfCount;
DMI_UNSIGNED iStatus;
DMI_CiCommand_t DmiCiCommand;
} DMI_MgmtCommand_t;
typedef struct DmiSecurity {
DMI_UNSIGNED iSecurityLen;
DMI_UNSIGNED iSecurityType;
DMI_BYTE SecurityData[1]; /* Unspecified length */
} DMI_Security_t;
/* 4.3 DmiConfirm */
typedef struct DmiConfirm {
DMI_UNSIGNED iLevelCheck;
void _FAR *pDmiMgmtCommand;
DMI_UNSIGNED iStatus;
} DMI_Confirm_t;
/* 4.7 DmiTimeStamp */
typedef struct DmiTimeStamp {
DMI_BYTE sYear[4];
DMI_BYTE sMonth[2];
DMI_BYTE sDay[2];
DMI_BYTE sHour[2];
DMI_BYTE sMinutes[2];
DMI_BYTE sSeconds[2];
DMI_BYTE cDot;
DMI_BYTE sMicroSeconds[6];
DMI_BYTE cPlusOrMinus;
DMI_BYTE sUtcOffset[3];
DMI_BYTE iPadding[3]; /* For alignment */
} DMI_TimeStamp_t;
/* 4.4 DmiIndicate */
typedef struct DmiIndicate {
DMI_UNSIGNED iLevelCheck;
DMI_UNSIGNED iIndicationType;
DMI_UNSIGNED iCmdLen;
DMI_UNSIGNED iComponentId;
DMI_TimeStamp_t DmiTimeStamp;
DMI_FUNC3_OUT pResponseFunc;
DMI_OFFSET oIndicationData; /* Offset to either a DMI_ListComponentCnf_t or a DMI_EventData_t */
} DMI_Indicate_t;
/* 4.5 DmiVersion */
typedef struct DmiVersion {
DMI_OFFSET osDmiSpecLevel;
DMI_OFFSET osImplDesc;
} DMI_Version_t;
/* 4.6 DmiGroupKeyData */
typedef struct DmiGroupKeyData {
DMI_UNSIGNED iAttributeId;
DMI_UNSIGNED iAttributeType;
DMI_OFFSET oKeyValue;
} DMI_GroupKeyData_t;
/* 5.3 DmiRegisterMgmtReq, DmiRegisterMgmtCnf */
typedef struct DmiRegisterMgmtReq {
DMI_MgmtCommand_t DmiMgmtCommand;
DMI_FUNC3_OUT pConfirmFunc;
DMI_FUNC3_OUT pIndicationFunc;
} DMI_RegisterMgmtReq_t;
typedef struct DmiRegisterCnf {
DMI_Version_t DmiVersion;
DMI_UNSIGNED iDmiHandle;
} DMI_RegisterCnf_t;
/* 5.6 DmiListComponentReq, DmiListComponentCnf, DmiClassNameData, DmiFileData */
typedef struct DmiListComponentReq {
DMI_MgmtCommand_t DmiMgmtCommand;
DMI_UNSIGNED iComponentId;
DMI_OFFSET osClassString;
DMI_UNSIGNED iGroupKeyCount;
DMI_OFFSET oGroupKeyList; /* Offset to DMI_GroupKeyDat_t GroupKeyList[iGroupKeyCount */
} DMI_ListComponentReq_t;
typedef struct DmiFileData {
DMI_UNSIGNED iFileType;
DMI_OFFSET oFileData;
} DMI_FileData_t;
typedef struct DmiListComponentCnf {
DMI_UNSIGNED iComponentId;
DMI_UNSIGNED iMatchType;
DMI_OFFSET osComponentName;
DMI_UNSIGNED iClassListCount;
DMI_OFFSET oClassNameList; /* Offset to DMI_ClassNameData_t ClassNameList[iClassListCount] */
DMI_UNSIGNED iFileCount;
DMI_OFFSET oDmiFileList; /* Offset to DMI_FileData_t DmiFileList[iFileCount] */
} DMI_ListComponentCnf_t;
typedef struct DmiClassNameData {
DMI_UNSIGNED iGroupId;
DMI_OFFSET osClassString;
} DMI_ClassNameData_t;
/* 5.7 DmiListGroupReq, DmiListGroupCnf, DmiListGroupPragmaReq */
typedef struct DmiListGroupReq {
DMI_MgmtCommand_t DmiMgmtCommand;
DMI_UNSIGNED iComponentId;
DMI_UNSIGNED iGroupId;
} DMI_ListGroupReq_t;
typedef struct DmiListGroupCnf {
DMI_UNSIGNED iGroupId;
DMI_OFFSET osGroupName;
DMI_OFFSET osClassString;
DMI_UNSIGNED iGroupKeyCount;
DMI_OFFSET oGroupKeyList; /* Offset to DMI_GroupKeyDat_t GroupKeyList[iGroupKeyCount */
} DMI_ListGroupCnf_t;
typedef struct DmiListGroupPragmaReq {
DMI_MgmtCommand_t DmiMgmtCommand;
DMI_UNSIGNED iComponentId;
DMI_UNSIGNED iGroupId;
DMI_UNSIGNED iOffset;
} DMI_ListGroupPragmaReq_t;
/* 5.8 DmiListAttributeReq, DmiListAttributeCnf, DmiEnumData */
typedef struct DmiListAttributeReq {
DMI_MgmtCommand_t DmiMgmtCommand;
DMI_UNSIGNED iComponentId;
DMI_UNSIGNED iGroupId;
DMI_UNSIGNED iAttributeId;
} DMI_ListAttributeReq_t;
typedef struct DmiListAttributeCnf {
DMI_UNSIGNED iAttributeId;
DMI_OFFSET osAttributeName;
DMI_UNSIGNED iAttributeAccess;
DMI_UNSIGNED iAttributeType;
DMI_UNSIGNED iAttributeMaxSize;
DMI_UNSIGNED iEnumListCount;
DMI_OFFSET oEnumList; /* Offset to DMI_EnumData_t EnumList[iEnumListCount] */
} DMI_ListAttributeCnf_t;
typedef struct DmiEnumData {
DMI_INT iEnumValue;
DMI_OFFSET osEnumName;
} DMI_EnumData_t;
/* 5.9 DmiListDescReq */
typedef struct DmiListDescReq {
DMI_MgmtCommand_t DmiMgmtCommand;
DMI_UNSIGNED iComponentId;
DMI_UNSIGNED iGroupId;
DMI_UNSIGNED iAttributeId;
DMI_UNSIGNED iOffset;
} DMI_ListDescReq_t;
/* 5.10 DmiGetAttributeData, DmiGetAttributeReq, DmiGetAttributeCnf */
typedef struct DmiGetAttributeData {
DMI_UNSIGNED iGroupId;
DMI_UNSIGNED iGroupKeyCount;
DMI_OFFSET oGroupKeyList; /* Offset to DMI_GroupKeyDat_t GroupKeyList[iGroupKeyCount] */
DMI_UNSIGNED iAttributeId;
} DMI_GetAttributeData_t;
typedef struct DmiGetAttributeReq {
DMI_MgmtCommand_t DmiMgmtCommand;
DMI_UNSIGNED iComponentId;
DMI_GetAttributeData_t DmiGetAttributeList[1]; /* For ANSI C */
} DMI_GetAttributeReq_t;
typedef struct DmiGetAttributeCnf {
DMI_UNSIGNED iGroupId;
DMI_UNSIGNED iAttributeId;
DMI_UNSIGNED iAttributeType;
DMI_UNSIGNED oAttributeValue;
} DMI_GetAttributeCnf_t;
/* 5.11 DmiSetAttributeData, DmiSetAttributeReq */
typedef struct DmiSetAttributeData {
DMI_UNSIGNED iGroupId;
DMI_UNSIGNED iGroupKeyCount;
DMI_OFFSET oGroupKeyList; /* Offset to DMI_GroupKeyDat_t GroupKeyList[iGroupKeyCount] */
DMI_UNSIGNED iAttributeId;
DMI_OFFSET oAttributeValue;
} DMI_SetAttributeData_t;
typedef struct DmiSetAttributeReq {
DMI_MgmtCommand_t DmiMgmtCommand;
DMI_UNSIGNED iComponentId;
DMI_SetAttributeData_t DmiSetAttributeList[1]; /* For ANSI C */
} DMI_SetAttributeReq_t;
/* 5.12 DmiGetRowReq, DmiGetRowCnf */
typedef struct DmiGetRowReq {
DMI_MgmtCommand_t DmiMgmtCommand;
DMI_UNSIGNED iComponentId;
DMI_UNSIGNED iGroupId;
DMI_UNSIGNED iGroupKeyCount;
DMI_OFFSET oGroupKeyList; /* Offset to DMI_GroupKeyDat_t GroupKeyList[iGroupKeyCount] */
DMI_UNSIGNED iAttributeId;
} DMI_GetRowReq_t;
typedef struct DmiGetRowCnf {
DMI_UNSIGNED iGroupId;
DMI_UNSIGNED iGroupKeyCount;
DMI_OFFSET oGroupKeyList; /* Offset to DMI_GroupKeyDat_t GroupKeyList[iGroupKeyCount */
DMI_UNSIGNED iAttributeCount;
DMI_GetAttributeCnf_t DmiGetAttributeList[1]; /* For ANSI C */
} DMI_GetRowCnf_t;
/* 6.1 DmiCiInstallData */
typedef struct DmiCiInstallData {
DMI_MgmtCommand_t DmiMgmtCommand;
DMI_UNSIGNED iComponentId;
DMI_UNSIGNED iFileCount;
DMI_FileData_t DmiFileList[1];
} DMI_CiInstallData_t;
/* 6.3 DmiCiUninstallData */
typedef struct DmiCiUninstallData {
DMI_MgmtCommand_t DmiMgmtCommand;
DMI_UNSIGNED iComponentId;
} DMI_CiUninstallData_t;
/* 6.5 DmiRegisterCiInd, CiAccessData, DmiRegisterCiCnf, DmiUnregisterCiInd */
typedef struct DmiAccessData {
DMI_UNSIGNED iGroupId;
DMI_UNSIGNED iAttributeId;
} DMI_AccessData_t;
typedef struct DmiRegisterCiInd {
DMI_MgmtCommand_t DmiMgmtCommand;
DMI_UNSIGNED iComponentId;
DMI_FUNC_OUT pAccessFunc;
DMI_FUNC0_OUT pCancelFunc;
DMI_UNSIGNED iAccessListCount;
DMI_AccessData_t DmiAccessList[1]; /* For ANSI C */
} DMI_RegisterCiInd_t;
typedef struct DmiUnregisterCiInd {
DMI_MgmtCommand_t DmiMgmtCommand;
DMI_UNSIGNED iCiHandle;
} DMI_UnregisterCiInd_t;
/* 6.6 DmiEventData, DmiClassData; mapped onto the oIndiciationField in DmiIndicate */
typedef struct DmiClassData {
DMI_UNSIGNED iComponentId;
DMI_OFFSET osClassString;
DMI_UNSIGNED iRowCount;
DMI_OFFSET oDmiRowList; /* Offset to DMI_OFFSET[iRowCount] to DMI_GetRowCnf_t */
} DMI_ClassData_t;
typedef struct DmiEventData {
DMI_UNSIGNED iClassCount;
DMI_ClassData_t DmiClassList[1];
} DMI_EventData_t;
#endif