home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / header45.zip / dmi.h < prev    next >
Text File  |  1999-03-15  |  19KB  |  472 lines

  1. /****************************************************************************************************************************************************
  2.     Filename: dmi.h
  3.  
  4.     Copyright (c) 1992,1993,1994, Intel Corporation.  All rights reserved.
  5.     Copyright (c) 1993 - 1996, International Business Machines, Corporation. All rights reserved.
  6.  
  7.     Description: Desktop Management Interface Header
  8.  
  9.  
  10. ****************************************************************************************************************************************************/
  11.  
  12.  
  13. /******************************************************************** INCLUDES ********************************************************************/
  14.  
  15. #ifndef DMI_H_FILE
  16. #define DMI_H_FILE
  17.  
  18. #include "os_dmi.h"
  19.  
  20. /***************************************************************************************************************************************************/
  21.  
  22. /******************************************************************** DEFINES *********************************************************************/
  23. /* The below spells "DM11" (left to right order) */
  24. #define DMI_LEVEL_CHECK 0x444D3131
  25.  
  26. /* The below spells "DMI1" (left to right order)  NOTE: this is the version check string for DMI Version 1.0 */
  27. #define DMI_LEVEL_CHECK_V1 0x444D4931
  28.  
  29. /***************************************************************************************************************************************************/
  30.  
  31. /*************************************************************** MIF DATABASE DEFINES **************************************************************/
  32.  
  33. /* iAttributeAccess Defines */
  34. #define MIF_UNKNOWN_ACCESS              0
  35. #define MIF_READ_ONLY                   1
  36. #define MIF_READ_WRITE                  2
  37. #define MIF_WRITE_ONLY                  3
  38. #define MIF_UNSUPPORTED                 4
  39. #define MIF_UNKNOWN             5
  40.  
  41. /* Masks for access mode */
  42. #define MIF_COMMON_SPECIFIC_MASK 0x80000000
  43. #define MIF_ACCESS_MODE_MASK     ~MIF_COMMON_SPECIFIC_MASK
  44.  
  45. /* Return values from List Component Command */
  46. #define MIF_LIST_COMPONENT_MATCH                        0
  47. #define MIF_LIST_COMPONENT_POSSIBLE_MATCH       1
  48.  
  49. /* iAttributeType Defines */
  50. #define MIF_UNKNOWN_DATA_TYPE   0
  51. #define MIF_COUNTER                             1
  52. #define MIF_COUNTER64                   2
  53. #define MIF_GAUGE                               3
  54. #define MIF_INTEGER                             5
  55. #define MIF_INT                                 MIF_INTEGER
  56. #define MIF_INTEGER64           6
  57. #define MIF_INT64               MIF_INTEGER64
  58. #define MIF_OCTETSTRING                 7
  59. #define MIF_DISPLAYSTRING               8
  60. #define MIF_STRING                              MIF_DISPLAYSTRING
  61. #define MIF_DATE                                11
  62.  
  63. /* iFileType defines */
  64. #define MIF_RESERVED1_FILE_TYPE                                 0
  65. #define MIF_RESERVED2_FILE_TYPE                                 1
  66. #define MIF_MIF_FILE_NAME_FILE_TYPE                             2
  67. #define MIF_MIF_FILE_POINTER_FILE_TYPE                  3
  68. #define MIF_SNMP_MAPPING_FILE_NAME_FILE_TYPE    4
  69. #define MIF_SNMP_MAPPING_FILE_POINTER_FILE_TYPE 5
  70.  
  71. /****************************************************************************************************************************************************/
  72.  
  73. /******************************************************************** DMI COMMANDS ******************************************************************/
  74.  
  75. #define DMI_MISCELLANEOUS_COMMANDS      0x00000100
  76. #define DMI_LIST_COMMANDS                       0x00000200
  77. #define DMI_GET_SET_COMMANDS            0x00000300
  78. #define DMI_CI_COMMANDS                         0x00000400
  79. #define DMI_PRIVATE_COMMAND_MASK        0x80000000
  80.  
  81. #define DMI_UNKNOWN_COMMAND             0x00000000
  82.  
  83. /* Miscellaneous commands */
  84. #define DmiRegisterMgmtCmd                      DMI_MISCELLANEOUS_COMMANDS + 0x00
  85. #define DmiUnregisterMgmtCmd            DMI_MISCELLANEOUS_COMMANDS + 0x01
  86. #define DmiCancelCmd                            DMI_MISCELLANEOUS_COMMANDS + 0x02
  87.  
  88. /* List commands */
  89. #define DmiListComponentCmd                     DMI_LIST_COMMANDS                       + 0x00
  90. #define DmiListFirstComponentCmd        DMI_LIST_COMMANDS                       + 0x01
  91. #define DmiListNextComponentCmd         DMI_LIST_COMMANDS                       + 0x02
  92. #define DmiListComponentDescCmd         DMI_LIST_COMMANDS                       + 0x03
  93. #define DmiListGroupCmd                         DMI_LIST_COMMANDS                       + 0x04
  94. #define DmiListFirstGroupCmd            DMI_LIST_COMMANDS                       + 0x05
  95. #define DmiListNextGroupCmd                     DMI_LIST_COMMANDS                       + 0x06
  96. #define DmiListGroupDescCmd                     DMI_LIST_COMMANDS                       + 0x07
  97. #define DmiListAttributeCmd                     DMI_LIST_COMMANDS                       + 0x08
  98. #define DmiListFirstAttributeCmd        DMI_LIST_COMMANDS                       + 0x09
  99. #define DmiListNextAttributeCmd         DMI_LIST_COMMANDS                       + 0x0a
  100. #define DmiListAttributeDescCmd         DMI_LIST_COMMANDS                       + 0x0b
  101. #define DmiListGroupPragmaCmd       DMI_LIST_COMMANDS           + 0x0c
  102.  
  103. /* Get and Set commands */
  104. #define DmiGetAttributeCmd                      DMI_GET_SET_COMMANDS            + 0x00
  105. #define DmiSetAttributeCmd                      DMI_GET_SET_COMMANDS            + 0x01
  106. #define DmiSetReserveAttributeCmd       DMI_GET_SET_COMMANDS            + 0x02
  107. #define DmiSetReleaseAttributeCmd       DMI_GET_SET_COMMANDS            + 0x03
  108. #define DmiGetRowCmd                            DMI_GET_SET_COMMANDS            + 0x04
  109. #define DmiGetFirstRowCmd                       DMI_GET_SET_COMMANDS            + 0x05
  110. #define DmiGetNextRowCmd                        DMI_GET_SET_COMMANDS            + 0x06
  111.  
  112. /* CI commands */
  113. #define DmiRegisterCiCmd                        DMI_CI_COMMANDS                         + 0x00
  114. #define DmiUnregisterCiCmd                      DMI_CI_COMMANDS                         + 0x01
  115. #define DmiCiInstallCmd                         DMI_CI_COMMANDS                         + 0x02
  116. #define DmiCiUninstallCmd                       DMI_CI_COMMANDS                         + 0x03
  117.  
  118. /* File Types for DmiFileData */
  119. #define DMI_MIF_FILE_NAME                       2
  120. #define DMI_MIF_FILE_POINTER            3
  121. #define DMI_SNMP_MAP_FILE_NAME          4
  122. #define DMI_SNMP_MAP_FILE_POINTER       5
  123.  
  124. /* Indication types */
  125. #define DMI_EVENT_INDICATION                    1
  126. #define DMI_INSTALL_INDICATION                  2
  127. #define DMI_UNINSTALL_INDICATION                3
  128. #define DMI_INSTALL_LANGUAGE_MAPPING    4
  129.  
  130. #define DMI_PRIVATE_INDICATION_MASK             0x80000000
  131. /***************************************************************** DMI TYPES ************************************************************************/
  132.  
  133. /* Definitions used in structures */
  134. typedef unsigned char           DMI_BYTE;
  135. typedef signed long int         DMI_INT;
  136. typedef unsigned long int       DMI_OFFSET;
  137. typedef unsigned long int       DMI_UNSIGNED;
  138.  
  139. typedef DMI_UNSIGNED (_FAR DMI_FUNC_ENTRY _DMI_FUNC_IN)(void _FAR *);
  140. typedef _DMI_FUNC_IN *DMI_FUNC_IN;
  141. typedef DMI_UNSIGNED (_FAR DMI_FUNC_ENTRY _DMI_FUNC0_IN)(void);
  142. typedef _DMI_FUNC0_IN *DMI_FUNC0_IN;
  143.  
  144. typedef DMI_UNSIGNED (_FAR DMI_FUNC_CALLBACK _DMI_FUNC_OUT)(void _FAR *);
  145. typedef _DMI_FUNC_OUT *DMI_FUNC_OUT;
  146. typedef DMI_UNSIGNED (_FAR DMI_FUNC_CALLBACK _DMI_FUNC0_OUT)(void);
  147. typedef _DMI_FUNC0_OUT *DMI_FUNC0_OUT;
  148.  
  149. typedef void (_FAR DMI_FUNC_CALLBACK _DMI_FUNC3_OUT)(void _FAR *);
  150. typedef _DMI_FUNC3_OUT *DMI_FUNC3_OUT;
  151.  
  152. typedef struct {
  153.         DMI_UNSIGNED    length;
  154.         char                    body[1];
  155. } DMI_STRING;
  156.  
  157. /****************************************************************************************************************************************************/
  158.  
  159. /**************************************************************** DMI STRUCTURES ********************************************************************/
  160.  
  161. /* 4.2 DmiCiCommand */
  162.  
  163. typedef struct DmiCiCommand {
  164.         DMI_OFFSET              oCmdListEntry;
  165.         DMI_UNSIGNED    iCnfBufLen;
  166.         void _FAR               *pCnfBuf;
  167.         DMI_FUNC3_OUT   pConfirmFunc;
  168. } DMI_CiCommand_t;
  169.  
  170.  
  171. /* 4.1 DmiMgmtCommand, DmiSecurity */
  172.  
  173. typedef struct DmiMgmtCommand {
  174.         DMI_UNSIGNED    iLevelCheck;
  175.         DMI_UNSIGNED    iCommand;
  176.         DMI_UNSIGNED    iCmdLen;
  177.         DMI_UNSIGNED    iMgmtHandle;
  178.         DMI_UNSIGNED    iCmdHandle;
  179.         DMI_OFFSET              osLanguage;
  180.         DMI_OFFSET              oSecurity;                         /* Offset to a DMI_Security_t */
  181.         DMI_UNSIGNED    iCnfBufLen;
  182.         void _FAR               *pCnfBuf;
  183.         DMI_UNSIGNED    iRequestCount;
  184.         DMI_UNSIGNED    iCnfCount;
  185.         DMI_UNSIGNED    iStatus;
  186.         DMI_CiCommand_t DmiCiCommand;
  187. } DMI_MgmtCommand_t;
  188.  
  189.  
  190. typedef struct DmiSecurity {
  191.         DMI_UNSIGNED    iSecurityLen;
  192.         DMI_UNSIGNED    iSecurityType;
  193.         DMI_BYTE                SecurityData[1];                /* Unspecified length */
  194. } DMI_Security_t;
  195.  
  196.  
  197. /* 4.3 DmiConfirm */
  198.  
  199. typedef struct DmiConfirm {
  200.         DMI_UNSIGNED    iLevelCheck;
  201.         void _FAR               *pDmiMgmtCommand;
  202.         DMI_UNSIGNED    iStatus;
  203. } DMI_Confirm_t;
  204.  
  205.  
  206. /* 4.7 DmiTimeStamp */
  207.  
  208. typedef struct DmiTimeStamp {
  209.         DMI_BYTE sYear[4];
  210.         DMI_BYTE sMonth[2];
  211.         DMI_BYTE sDay[2];
  212.         DMI_BYTE sHour[2];
  213.         DMI_BYTE sMinutes[2];
  214.         DMI_BYTE sSeconds[2];
  215.         DMI_BYTE cDot;
  216.         DMI_BYTE sMicroSeconds[6];
  217.     DMI_BYTE cPlusOrMinus;
  218.         DMI_BYTE sUtcOffset[3];
  219.         DMI_BYTE iPadding[3];                   /* For alignment */
  220. } DMI_TimeStamp_t;
  221.  
  222.  
  223. /* 4.4 DmiIndicate */
  224.  
  225. typedef struct DmiIndicate {
  226.         DMI_UNSIGNED            iLevelCheck;
  227.         DMI_UNSIGNED            iIndicationType;
  228.         DMI_UNSIGNED            iCmdLen;
  229.         DMI_UNSIGNED            iComponentId;
  230.         DMI_TimeStamp_t DmiTimeStamp;
  231.         DMI_FUNC3_OUT           pResponseFunc;
  232.         DMI_OFFSET                      oIndicationData;                        /* Offset to either a DMI_ListComponentCnf_t or a DMI_EventData_t */
  233. } DMI_Indicate_t;
  234.  
  235.  
  236. /* 4.5 DmiVersion */
  237.  
  238. typedef struct DmiVersion {
  239.         DMI_OFFSET osDmiSpecLevel;
  240.         DMI_OFFSET osImplDesc;
  241. } DMI_Version_t;
  242.  
  243.  
  244. /* 4.6 DmiGroupKeyData */
  245.  
  246. typedef struct DmiGroupKeyData {
  247.         DMI_UNSIGNED    iAttributeId;
  248.         DMI_UNSIGNED    iAttributeType;
  249.         DMI_OFFSET              oKeyValue;
  250. } DMI_GroupKeyData_t;
  251.  
  252.  
  253. /* 5.3 DmiRegisterMgmtReq, DmiRegisterMgmtCnf */
  254.  
  255. typedef struct DmiRegisterMgmtReq {
  256.         DMI_MgmtCommand_t       DmiMgmtCommand;
  257.         DMI_FUNC3_OUT           pConfirmFunc;
  258.         DMI_FUNC3_OUT           pIndicationFunc;
  259. } DMI_RegisterMgmtReq_t;
  260.  
  261. typedef struct DmiRegisterCnf {
  262.         DMI_Version_t   DmiVersion;
  263.         DMI_UNSIGNED    iDmiHandle;
  264. } DMI_RegisterCnf_t;
  265.  
  266.  
  267. /* 5.6 DmiListComponentReq, DmiListComponentCnf, DmiClassNameData, DmiFileData */
  268.  
  269. typedef struct DmiListComponentReq {
  270.         DMI_MgmtCommand_t       DmiMgmtCommand;
  271.         DMI_UNSIGNED            iComponentId;
  272.         DMI_OFFSET                      osClassString;
  273.         DMI_UNSIGNED            iGroupKeyCount;
  274.         DMI_OFFSET                      oGroupKeyList;          /* Offset to DMI_GroupKeyDat_t GroupKeyList[iGroupKeyCount */
  275. } DMI_ListComponentReq_t;
  276.  
  277. typedef struct DmiFileData {
  278.         DMI_UNSIGNED    iFileType;
  279.         DMI_OFFSET              oFileData;
  280. } DMI_FileData_t;
  281.  
  282. typedef struct DmiListComponentCnf {
  283.         DMI_UNSIGNED    iComponentId;
  284.         DMI_UNSIGNED    iMatchType;
  285.         DMI_OFFSET              osComponentName;
  286.         DMI_UNSIGNED    iClassListCount;
  287.         DMI_OFFSET              oClassNameList; /* Offset to DMI_ClassNameData_t ClassNameList[iClassListCount] */
  288.         DMI_UNSIGNED    iFileCount;
  289.         DMI_OFFSET              oDmiFileList;    /* Offset to DMI_FileData_t DmiFileList[iFileCount] */
  290. } DMI_ListComponentCnf_t;
  291.  
  292. typedef struct DmiClassNameData {
  293.         DMI_UNSIGNED    iGroupId;
  294.         DMI_OFFSET              osClassString;
  295. } DMI_ClassNameData_t;
  296.  
  297.  
  298. /* 5.7 DmiListGroupReq, DmiListGroupCnf, DmiListGroupPragmaReq */
  299.  
  300. typedef struct DmiListGroupReq {
  301.         DMI_MgmtCommand_t       DmiMgmtCommand;
  302.         DMI_UNSIGNED            iComponentId;
  303.         DMI_UNSIGNED            iGroupId;
  304. } DMI_ListGroupReq_t;
  305.  
  306. typedef struct DmiListGroupCnf {
  307.         DMI_UNSIGNED    iGroupId;
  308.         DMI_OFFSET              osGroupName;
  309.         DMI_OFFSET              osClassString;
  310.         DMI_UNSIGNED    iGroupKeyCount;
  311.         DMI_OFFSET              oGroupKeyList;          /* Offset to DMI_GroupKeyDat_t GroupKeyList[iGroupKeyCount */
  312. } DMI_ListGroupCnf_t;
  313.  
  314. typedef struct DmiListGroupPragmaReq {
  315.         DMI_MgmtCommand_t       DmiMgmtCommand;
  316.         DMI_UNSIGNED            iComponentId;
  317.         DMI_UNSIGNED            iGroupId;
  318.     DMI_UNSIGNED        iOffset;
  319. } DMI_ListGroupPragmaReq_t;
  320.  
  321. /* 5.8 DmiListAttributeReq, DmiListAttributeCnf, DmiEnumData */
  322.  
  323. typedef struct DmiListAttributeReq {
  324.         DMI_MgmtCommand_t       DmiMgmtCommand;
  325.         DMI_UNSIGNED            iComponentId;
  326.         DMI_UNSIGNED            iGroupId;
  327.         DMI_UNSIGNED            iAttributeId;
  328. } DMI_ListAttributeReq_t;
  329.  
  330. typedef struct DmiListAttributeCnf {
  331.         DMI_UNSIGNED    iAttributeId;
  332.         DMI_OFFSET              osAttributeName;
  333.         DMI_UNSIGNED    iAttributeAccess;
  334.         DMI_UNSIGNED    iAttributeType;
  335.         DMI_UNSIGNED    iAttributeMaxSize;
  336.         DMI_UNSIGNED    iEnumListCount;
  337.         DMI_OFFSET              oEnumList;              /* Offset to DMI_EnumData_t EnumList[iEnumListCount] */
  338. } DMI_ListAttributeCnf_t;
  339.  
  340. typedef struct DmiEnumData {
  341.         DMI_INT         iEnumValue;
  342.         DMI_OFFSET      osEnumName;
  343. } DMI_EnumData_t;
  344.  
  345.  
  346. /* 5.9 DmiListDescReq */
  347.  
  348. typedef struct DmiListDescReq {
  349.         DMI_MgmtCommand_t       DmiMgmtCommand;
  350.         DMI_UNSIGNED            iComponentId;
  351.         DMI_UNSIGNED            iGroupId;
  352.         DMI_UNSIGNED            iAttributeId;
  353.         DMI_UNSIGNED            iOffset;
  354. } DMI_ListDescReq_t;
  355.  
  356.  
  357. /* 5.10 DmiGetAttributeData, DmiGetAttributeReq, DmiGetAttributeCnf */
  358.  
  359. typedef struct DmiGetAttributeData {
  360.         DMI_UNSIGNED    iGroupId;
  361.         DMI_UNSIGNED    iGroupKeyCount;
  362.         DMI_OFFSET              oGroupKeyList;  /* Offset to DMI_GroupKeyDat_t GroupKeyList[iGroupKeyCount] */
  363.         DMI_UNSIGNED    iAttributeId;
  364. } DMI_GetAttributeData_t;
  365.  
  366. typedef struct DmiGetAttributeReq {
  367.         DMI_MgmtCommand_t               DmiMgmtCommand;
  368.         DMI_UNSIGNED                    iComponentId;
  369.         DMI_GetAttributeData_t  DmiGetAttributeList[1];  /* For ANSI C */
  370. } DMI_GetAttributeReq_t;
  371.  
  372. typedef struct DmiGetAttributeCnf {
  373.         DMI_UNSIGNED    iGroupId;
  374.         DMI_UNSIGNED    iAttributeId;
  375.         DMI_UNSIGNED    iAttributeType;
  376.         DMI_UNSIGNED    oAttributeValue;
  377. } DMI_GetAttributeCnf_t;
  378.  
  379.  
  380. /* 5.11 DmiSetAttributeData, DmiSetAttributeReq */
  381.  
  382. typedef struct DmiSetAttributeData {
  383.         DMI_UNSIGNED    iGroupId;
  384.         DMI_UNSIGNED    iGroupKeyCount;
  385.         DMI_OFFSET              oGroupKeyList;  /* Offset to DMI_GroupKeyDat_t GroupKeyList[iGroupKeyCount] */
  386.         DMI_UNSIGNED    iAttributeId;
  387.         DMI_OFFSET              oAttributeValue;
  388. } DMI_SetAttributeData_t;
  389.  
  390. typedef struct DmiSetAttributeReq {
  391.         DMI_MgmtCommand_t               DmiMgmtCommand;
  392.         DMI_UNSIGNED                    iComponentId;
  393.         DMI_SetAttributeData_t  DmiSetAttributeList[1];  /* For ANSI C */
  394. } DMI_SetAttributeReq_t;
  395.  
  396.  
  397. /* 5.12 DmiGetRowReq, DmiGetRowCnf */
  398.  
  399. typedef struct DmiGetRowReq {
  400.         DMI_MgmtCommand_t       DmiMgmtCommand;
  401.         DMI_UNSIGNED            iComponentId;
  402.         DMI_UNSIGNED            iGroupId;
  403.         DMI_UNSIGNED            iGroupKeyCount;
  404.         DMI_OFFSET                      oGroupKeyList;  /* Offset to DMI_GroupKeyDat_t GroupKeyList[iGroupKeyCount] */
  405.         DMI_UNSIGNED            iAttributeId;
  406. } DMI_GetRowReq_t;
  407.  
  408. typedef struct DmiGetRowCnf {
  409.         DMI_UNSIGNED                    iGroupId;
  410.         DMI_UNSIGNED                    iGroupKeyCount;
  411.         DMI_OFFSET                              oGroupKeyList;  /* Offset to DMI_GroupKeyDat_t GroupKeyList[iGroupKeyCount */
  412.         DMI_UNSIGNED                    iAttributeCount;
  413.         DMI_GetAttributeCnf_t   DmiGetAttributeList[1];  /* For ANSI C */
  414. } DMI_GetRowCnf_t;
  415.  
  416.  
  417. /* 6.1 DmiCiInstallData */
  418.  
  419. typedef struct DmiCiInstallData {
  420.         DMI_MgmtCommand_t       DmiMgmtCommand;
  421.         DMI_UNSIGNED            iComponentId;
  422.         DMI_UNSIGNED            iFileCount;
  423.         DMI_FileData_t          DmiFileList[1];
  424. } DMI_CiInstallData_t;
  425.  
  426.  
  427. /* 6.3 DmiCiUninstallData */
  428.  
  429. typedef struct DmiCiUninstallData {
  430.         DMI_MgmtCommand_t       DmiMgmtCommand;
  431.         DMI_UNSIGNED            iComponentId;
  432. } DMI_CiUninstallData_t;
  433.  
  434.  
  435. /* 6.5 DmiRegisterCiInd, CiAccessData, DmiRegisterCiCnf, DmiUnregisterCiInd */
  436.  
  437. typedef struct DmiAccessData {
  438.         DMI_UNSIGNED iGroupId;
  439.         DMI_UNSIGNED iAttributeId;
  440. } DMI_AccessData_t;
  441.  
  442. typedef struct DmiRegisterCiInd {
  443.         DMI_MgmtCommand_t       DmiMgmtCommand;
  444.         DMI_UNSIGNED            iComponentId;
  445.         DMI_FUNC_OUT            pAccessFunc;
  446.         DMI_FUNC0_OUT           pCancelFunc;
  447.         DMI_UNSIGNED            iAccessListCount;
  448.         DMI_AccessData_t        DmiAccessList[1];        /* For ANSI C */
  449. } DMI_RegisterCiInd_t;
  450.  
  451. typedef struct DmiUnregisterCiInd {
  452.         DMI_MgmtCommand_t       DmiMgmtCommand;
  453.         DMI_UNSIGNED            iCiHandle;
  454. } DMI_UnregisterCiInd_t;
  455.  
  456.  
  457. /* 6.6 DmiEventData, DmiClassData; mapped onto the oIndiciationField in DmiIndicate */
  458.  
  459. typedef struct DmiClassData {
  460.         DMI_UNSIGNED    iComponentId;
  461.         DMI_OFFSET              osClassString;
  462.         DMI_UNSIGNED    iRowCount;
  463.         DMI_OFFSET      oDmiRowList;    /* Offset to DMI_OFFSET[iRowCount] to DMI_GetRowCnf_t */
  464. } DMI_ClassData_t;
  465.  
  466. typedef struct DmiEventData {
  467.     DMI_UNSIGNED        iClassCount;
  468.     DMI_ClassData_t DmiClassList[1];
  469. } DMI_EventData_t;
  470.  
  471. #endif
  472.