saAis.h 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. /*
  2. * Copyright (c) 2002-2003 MontaVista Software, Inc.
  3. *
  4. * All rights reserved.
  5. *
  6. * Author: Steven Dake (sdake@mvista.com)
  7. *
  8. * This software licensed under BSD license, the text of which follows:
  9. *
  10. * Redistribution and use in source and binary forms, with or without
  11. * modification, are permitted provided that the following conditions are met:
  12. *
  13. * - Redistributions of source code must retain the above copyright notice,
  14. * this list of conditions and the following disclaimer.
  15. * - Redistributions in binary form must reproduce the above copyright notice,
  16. * this list of conditions and the following disclaimer in the documentation
  17. * and/or other materials provided with the distribution.
  18. * - Neither the name of the MontaVista Software, Inc. nor the names of its
  19. * contributors may be used to endorse or promote products derived from this
  20. * software without specific prior written permission.
  21. *
  22. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  23. * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  24. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  25. * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  26. * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  27. * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  28. * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  29. * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  30. * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  31. * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  32. * THE POSSIBILITY OF SUCH DAMAGE.
  33. */
  34. #ifndef AIS_TYPES_H_DEFINED
  35. #define AIS_TYPES_H_DEFINED
  36. typedef enum {
  37. SA_FALSE = 0,
  38. SA_TRUE = 1
  39. } SaBoolT;
  40. #include <stdint.h>
  41. typedef int8_t SaInt8T;
  42. typedef int16_t SaInt16T;
  43. typedef int32_t SaInt32T;
  44. typedef int64_t SaInt64T;
  45. typedef uint8_t SaUint8T;
  46. typedef uint16_t SaUint16T;
  47. typedef uint32_t SaUint32T;
  48. typedef uint64_t SaUint64T;
  49. typedef SaInt64T SaTimeT;
  50. #define SA_TIME_END ((SaTimeT)0x7fffffffffffffffull)
  51. #define SA_TIME_BEGIN 0x0ULL
  52. #define SA_TIME_UNKNOWN 0x8000000000000000ULL
  53. #define SA_TIME_ONE_MICROSECOND 1000ULL
  54. #define SA_TIME_ONE_MILLISECOND 1000000ULL
  55. #define SA_TIME_ONE_SECOND 1000000000ULL
  56. #define SA_TIME_ONE_MINUTE 60000000000ULL
  57. #define SA_TIME_ONE_HOUR 3600000000000ULL
  58. #define SA_TIME_ONE_DAY 86400000000000ULL
  59. #define SA_TIME_MAX SA_TIME_END
  60. #define SA_MAX_NAME_LENGTH 256
  61. typedef struct {
  62. SaUint16T length;
  63. SaUint8T value[SA_MAX_NAME_LENGTH];
  64. } SaNameT;
  65. typedef struct {
  66. char releaseCode;
  67. unsigned char majorVersion;
  68. unsigned char minorVersion;
  69. } SaVersionT;
  70. #define SA_TRACK_CURRENT 0x01
  71. #define SA_TRACK_CHANGES 0x02
  72. #define SA_TRACK_CHANGES_ONLY 0x04
  73. typedef enum {
  74. SA_DISPATCH_ONE = 1,
  75. SA_DISPATCH_ALL = 2,
  76. SA_DISPATCH_BLOCKING = 3
  77. } SaDispatchFlagsT;
  78. typedef enum {
  79. SA_OK = 1,
  80. SA_ERR_LIBRARY = 2,
  81. SA_ERR_VERSION = 3,
  82. SA_ERR_INIT = 4,
  83. SA_ERR_TIMEOUT = 5,
  84. SA_ERR_TRY_AGAIN = 6,
  85. SA_ERR_INVALID_PARAM = 7,
  86. SA_ERR_NO_MEMORY = 8,
  87. SA_ERR_BAD_HANDLE = 9,
  88. SA_ERR_BUSY = 10,
  89. SA_ERR_ACCESS = 11,
  90. SA_ERR_NOT_EXIST = 12,
  91. SA_ERR_NAME_TOO_LONG = 13,
  92. SA_ERR_EXIST = 14,
  93. SA_ERR_NO_SPACE = 15,
  94. SA_ERR_INTERRUPT = 16,
  95. SA_ERR_SYSTEM = 17,
  96. SA_ERR_NAME_NOT_FOUND = 18,
  97. SA_ERR_NO_RESOURCES = 19,
  98. SA_ERR_NOT_SUPPORTED = 20,
  99. SA_ERR_BAD_OPERATION = 21,
  100. SA_ERR_FAILED_OPERATION = 22,
  101. SA_ERR_MESSAGE_ERROR = 23,
  102. SA_ERR_NO_MESSAGE = 24,
  103. SA_ERR_QUEUE_FULL = 25,
  104. SA_ERR_QUEUE_NOT_AVAILABLE = 26,
  105. SA_ERR_BAD_CHECKPOINT = 27,
  106. SA_ERR_BAD_FLAGS = 28
  107. } SaErrorT;
  108. typedef enum {
  109. SA_AIS_OK = 1,
  110. SA_AIS_ERR_LIBRARY = 2,
  111. SA_AIS_ERR_VERSION = 3,
  112. SA_AIS_ERR_INIT = 4,
  113. SA_AIS_ERR_TIMEOUT = 5,
  114. SA_AIS_ERR_TRY_AGAIN = 6,
  115. SA_AIS_ERR_INVALID_PARAM = 7,
  116. SA_AIS_ERR_NO_MEMORY = 8,
  117. SA_AIS_ERR_BAD_HANDLE = 9,
  118. SA_AIS_ERR_BUSY = 10,
  119. SA_AIS_ERR_ACCESS = 11,
  120. SA_AIS_ERR_NOT_EXIST = 12,
  121. SA_AIS_ERR_NAME_TOO_LONG = 13,
  122. SA_AIS_ERR_EXIST = 14,
  123. SA_AIS_ERR_NO_SPACE = 15,
  124. SA_AIS_ERR_INTERRUPT = 16,
  125. SA_AIS_ERR_NAME_NOT_FOUND = 17,
  126. SA_AIS_ERR_NO_RESOURCES = 18,
  127. SA_AIS_ERR_NOT_SUPPORTED = 19,
  128. SA_AIS_ERR_BAD_OPERATION = 20,
  129. SA_AIS_ERR_FAILED_OPERATION = 21,
  130. SA_AIS_ERR_MESSAGE_ERROR = 22,
  131. SA_AIS_ERR_QUEUE_FULL = 23,
  132. SA_AIS_ERR_QUEUE_NOT_AVAILABLE = 24,
  133. SA_AIS_ERR_BAD_FLAGS = 25,
  134. SA_AIS_ERR_TOO_BIG = 26,
  135. SA_AIS_ERR_NO_SECTIONS = 27
  136. } SaAisErrorT;
  137. typedef SaUint64T SaSelectionObjectT;
  138. typedef SaUint64T SaInvocationT;
  139. /*
  140. * AMF Definitions
  141. */
  142. typedef SaUint64T SaAmfHandleT;
  143. typedef enum {
  144. SA_AMF_HEARTBEAT = 1,
  145. SA_AMF_HEALTHCHECK_LEVEL1 = 2,
  146. SA_AMF_HEALTHCHECK_LEVEL2 = 3,
  147. SA_AMF_HEALTHCHECK_LEVEL3 = 4
  148. } SaAmfHealthcheckT;
  149. typedef enum {
  150. SA_AMF_OUT_OF_SERVICE = 1,
  151. SA_AMF_IN_SERVICE = 2,
  152. SA_AMF_STOPPING = 3
  153. } SaAmfReadinessStateT;
  154. typedef enum {
  155. SA_AMF_ACTIVE = 1,
  156. SA_AMF_STANDBY = 2,
  157. SA_AMF_QUIESCED = 3
  158. } SaAmfHAStateT;
  159. typedef enum {
  160. SA_AMF_COMPONENT_CAPABILITY_X_ACTIVE_AND_Y_STANDBY = 1,
  161. SA_AMF_COMPONENT_CAPABILITY_X_ACTIVE_OR_Y_STANDBY = 2,
  162. SA_AMF_COMPONENT_CAPABILITY_1_ACTIVE_OR_Y_STANDBY = 3,
  163. SA_AMF_COMPONENT_CAPABILITY_1_ACTIVE_OR_1_STANDBY = 4,
  164. SA_AMF_COMPONENT_CAPABILITY_X_ACTIVE = 5,
  165. SA_AMF_COMPONENT_CAPABILITY_1_ACTIVE = 6,
  166. SA_AMF_COMPONENT_CAPABILITY_NO_ACTIVE = 7
  167. } SaAmfComponentCapabilityModelT;
  168. #define SA_AMF_CSI_ADD_NEW_ISTANCE 0x01
  169. #define SA_AMF_CSI_ALL_INSTANCES 0x02
  170. typedef SaUint32T SaAmfCSIFlagsT;
  171. typedef enum {
  172. SA_AMF_CSI_NEW_ASSIGN = 1,
  173. SA_AMF_CSI_QUIESCED = 2,
  174. SA_AMF_CSI_NOT_QUIESCED = 3,
  175. SA_AMF_CSI_STILL_ACTIVE = 4
  176. } SaAmfCSITransitionDescriptorT;
  177. typedef enum {
  178. SA_AMF_RESET = 1,
  179. SA_AMF_REBOOT = 2,
  180. SA_AMF_POWER_ON = 3,
  181. SA_AMF_POWER_OFF = 4
  182. } SaAmfExternalComponentActionT;
  183. #define SA_AMF_SWITCHOVER_OPERATION 0x01
  184. #define SA_AMF_SHUTDOWN_OPERATION 0x02
  185. typedef SaUint32T SaAmfPendingOperationFlagsT;
  186. typedef struct {
  187. SaNameT compName;
  188. SaAmfReadinessStateT readinessState;
  189. SaAmfHAStateT haState;
  190. } SaAmfProtectionGroupMemberT;
  191. typedef enum {
  192. SA_AMF_PROTECTION_GROUP_NO_CHANGE = 1,
  193. SA_AMF_PROTECTION_GROUP_ADDED = 2,
  194. SA_AMF_PROTECTION_GROUP_REMOVED = 3,
  195. SA_AMF_PROTECTION_GROUP_STATE_CHANGE = 4
  196. } SaAmfProtectionGroupChangesT;
  197. typedef struct {
  198. SaAmfProtectionGroupMemberT member;
  199. SaAmfProtectionGroupChangesT change;
  200. } SaAmfProtectionGroupNotificationT;
  201. typedef enum {
  202. SA_AMF_COMMUNICATION_ALARM_TYPE = 1,
  203. SA_AMF_QUALITY_OF_SERVICE_ALARM_TYPE = 2,
  204. SA_AMF_PROCESSING_ERROR_ALARM_TYPE = 3,
  205. SA_AMF_EQUIPMENT_ALARM_TYPE = 4,
  206. SA_AMF_ENVIRONMENTAL_ALARM_TYPE = 5
  207. } SaAmfErrorReportTypeT;
  208. typedef enum {
  209. SA_AMF_APPLICATION_SUBSYSTEM_FAILURE = 1,
  210. SA_AMF_BANDWIDTH_REDUCED = 2,
  211. SA_AMF_CALL_ESTABLISHMENT_ERROR = 3,
  212. SA_AMF_COMMUNICATION_PROTOCOL_ERROR = 4,
  213. SA_AMF_COMMUNICATION_SUBSYSTEM_FAILURE = 5,
  214. SA_AMF_CONFIGURATION_ERROR = 6,
  215. SA_AMF_CONGESTION = 7,
  216. SA_AMF_CORRUPT_DATA = 8,
  217. SA_AMF_CPU_CYCLES_LIMIT_EXCEEDED = 9,
  218. SA_AMF_EQUIPMENT_MALFUNCTION = 10,
  219. SA_AMF_FILE_ERROR = 11,
  220. SA_AMF_IO_DEVICE_ERROR = 12,
  221. SA_AMF_LAN_ERROR, SA_AMF_OUT_OF_MEMORY = 13,
  222. SA_AMF_PERFORMANCE_DEGRADED = 14,
  223. SA_AMF_PROCESSOR_PROBLEM = 15,
  224. SA_AMF_RECEIVE_FAILURE = 16,
  225. SA_AMF_REMOTE_NODE_TRNASMISSION_ERROR = 17,
  226. SA_AMF_RESOURCE_AT_OR_NEARING_CAPACITY = 18,
  227. SA_AMF_RESPONSE_TIME_EXCESSIVE = 19,
  228. SA_AMF_RETRANSMISSION_RATE_EXCESSIVE = 20,
  229. SA_AMF_SOFTWARE_ERROR = 21,
  230. SA_AMF_SOFTWARE_PROGRAM_ABNORMALLY_TERMINATED = 22,
  231. SA_AMF_SOFTWARE_PROGRAM_ERROR = 23,
  232. SA_AMF_STORAGE_CAPACITY_PROBLEM = 24,
  233. SA_AMF_TIMING_PROBLEM = 25,
  234. SA_AMF_UNDERLYING_REOUSRCE_UNAVAILABLE = 26,
  235. SA_AMF_INTERNAL_ERROR = 27,
  236. SA_AMF_NO_SERVICE_ERROR = 28,
  237. SA_AMF_SOFTWARE_LIBRARY_ERROR = 29,
  238. SA_AMF_NOT_RESPONDING = 30
  239. } SaAmfProbableCauseT;
  240. typedef enum {
  241. SA_AMF_CLEARED = 1,
  242. SA_AMF_NO_IMPACT = 2,
  243. SA_AMF_INDETERMINATE = 3,
  244. SA_AMF_CRITICAL = 4,
  245. SA_AMF_MAJOR = 5,
  246. SA_AMF_WEDGED_COMPONENT_FAILURE = 6,
  247. SA_AMF_COMPONENT_TERMINATED_FAILURE = 7,
  248. SA_AMF_NODE_FAILURE = 8,
  249. SA_AMF_MINOR = 9,
  250. SA_AMF_WARNING = 10
  251. } SaAmfErrorImpactAndSeverityT;
  252. typedef enum {
  253. SA_AMF_NO_RECOMMENDATION = 1,
  254. SA_AMF_INTERNALLY_RECOVERED = 2,
  255. SA_AMF_COMPONENT_RESTART = 3,
  256. SA_AMF_COMPONENT_FAILOVER = 4,
  257. SA_AMF_NODE_SWITCHOVER = 5,
  258. SA_AMF_NODE_FAILOVER = 6,
  259. SA_AMF_NODE_FAILFAST = 7,
  260. SA_AMF_CLUSTER_RESET = 8
  261. } SaAmfRecommendedRecoveryT;
  262. typedef struct {
  263. SaAmfErrorReportTypeT errorReportType;
  264. SaAmfProbableCauseT probableCause;
  265. SaAmfErrorImpactAndSeverityT errorImpactAndSeverity;
  266. SaAmfRecommendedRecoveryT recommendedRecovery;
  267. } SaAmfErrorDescriptorT;
  268. typedef SaUint64T SaSizeT;
  269. #define SA_AMF_OPAQUE_BUFFER_SIZE_MAX 512
  270. typedef struct {
  271. char *buffer;
  272. SaSizeT size;
  273. } SaAmfErrorBufferT;
  274. typedef struct {
  275. SaAmfErrorBufferT *specificProblem;
  276. SaAmfErrorBufferT *additionalText;
  277. SaAmfErrorBufferT *additionalInformation;
  278. } SaAmfAdditionalDataT;
  279. #endif /* AIS_TYPES_H_DEFINED */