ais_msg.h 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989
  1. /*
  2. * Copyright (c) 2002-2004 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_MSG_H_DEFINED
  35. #define AIS_MSG_H_DEFINED
  36. #include <netinet/in.h>
  37. #include "ais_types.h"
  38. #include "evs.h"
  39. #include "saClm.h"
  40. #include "ipc_gen.h"
  41. enum req_amf_response_interfaces {
  42. MESSAGE_REQ_AMF_RESPONSE_SAAMFHEALTHCHECKCALLBACK = 1,
  43. MESSAGE_REQ_AMF_RESPONSE_SAAMFREADINESSSTATESETCALLBACK,
  44. MESSAGE_REQ_AMF_RESPONSE_SAAMFCOMPONENTTERMINATECALLBACK,
  45. MESSAGE_REQ_AMF_RESPONSE_SAAMFCSISETCALLBACK,
  46. MESSAGE_REQ_AMF_RESPONSE_SAAMFCSIREMOVECALLBACK,
  47. MESSAGE_REQ_AMF_RESPONSE_SAAMFEXTERNALCOMPONENTRESTARTCALLBACK,
  48. MESSAGE_REQ_AMF_RESPONSE_SAAMFEXTERNALCOMPONENTCONTROLCALLBACK,
  49. MESSAGE_REQ_AMF_RESPONSE_SAAMFPENDINGOPERATIONCONFIRMCALLBACK
  50. };
  51. enum req_lib_evs_types {
  52. MESSAGE_REQ_EVS_JOIN = 1,
  53. MESSAGE_REQ_EVS_LEAVE,
  54. MESSAGE_REQ_EVS_MCAST_JOINED,
  55. MESSAGE_REQ_EVS_MCAST_GROUPS
  56. };
  57. enum res_lib_evs_types {
  58. MESSAGE_RES_EVS_DELIVER_CALLBACK = 1,
  59. MESSAGE_RES_EVS_CONFCHG_CALLBACK,
  60. MESSAGE_RES_EVS_JOIN,
  61. MESSAGE_RES_EVS_LEAVE,
  62. MESSAGE_RES_EVS_MCAST_JOINED,
  63. MESSAGE_RES_EVS_MCAST_GROUPS
  64. };
  65. enum req_amf_types {
  66. MESSAGE_REQ_AMF_COMPONENTREGISTER = 1,
  67. MESSAGE_REQ_AMF_COMPONENTUNREGISTER,
  68. MESSAGE_REQ_AMF_READINESSSTATEGET,
  69. MESSAGE_REQ_AMF_HASTATEGET,
  70. MESSAGE_REQ_AMF_PROTECTIONGROUPTRACKSTART,
  71. MESSAGE_REQ_AMF_PROTECTIONGROUPTRACKSTOP,
  72. MESSAGE_REQ_AMF_ERRORREPORT,
  73. MESSAGE_REQ_AMF_ERRORCANCELALL,
  74. MESSAGE_REQ_AMF_STOPPINGCOMPLETE,
  75. MESSAGE_REQ_AMF_RESPONSE,
  76. MESSAGE_REQ_AMF_COMPONENTCAPABILITYMODELGET
  77. };
  78. enum res_lib_amf_types {
  79. MESSAGE_RES_AMF_COMPONENTREGISTER = 1,
  80. MESSAGE_RES_AMF_COMPONENTUNREGISTER,
  81. MESSAGE_RES_AMF_READINESSSTATEGET,
  82. MESSAGE_RES_AMF_HASTATEGET,
  83. MESSAGE_RES_AMF_HEALTHCHECKCALLBACK,
  84. MESSAGE_RES_AMF_READINESSSTATESETCALLBACK,
  85. MESSAGE_RES_AMF_COMPONENTTERMINATECALLBACK,
  86. MESSAGE_RES_AMF_CSISETCALLBACK,
  87. MESSAGE_RES_AMF_CSIREMOVECALLBACK,
  88. MESSAGE_RES_AMF_PROTECTIONGROUPTRACKSTART,
  89. MESSAGE_RES_AMF_PROTECTIONGROUPTRACKCALLBACK,
  90. MESSAGE_RES_AMF_PROTECTIONGROUPTRACKSTOP,
  91. MESSAGE_RES_AMF_COMPONENTCAPABILITYMODELGET,
  92. MESSAGE_RES_AMF_ERRORREPORT,
  93. MESSAGE_RES_AMF_ERRORCANCELALL,
  94. MESSAGE_RES_AMF_STOPPINGCOMPLETE,
  95. MESSAGE_RES_AMF_RESPONSE
  96. };
  97. enum req_lib_ckpt_checkpoint_types {
  98. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTOPEN = 1,
  99. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTOPENASYNC,
  100. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTUNLINK,
  101. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTRETENTIONDURATIONSET,
  102. MESSAGE_REQ_CKPT_CHECKPOINT_ACTIVECHECKPOINTSET,
  103. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTSTATUSGET,
  104. MESSAGE_REQ_CKPT_CHECKPOINT_SECTIONCREATE,
  105. MESSAGE_REQ_CKPT_CHECKPOINT_SECTIONDELETE,
  106. MESSAGE_REQ_CKPT_CHECKPOINT_SECTIONEXPIRATIONTIMESET,
  107. MESSAGE_REQ_CKPT_CHECKPOINT_SECTIONWRITE,
  108. MESSAGE_REQ_CKPT_CHECKPOINT_SECTIONOVERWRITE,
  109. MESSAGE_REQ_CKPT_CHECKPOINT_SECTIONREAD,
  110. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTSYNCHRONIZE,
  111. MESSAGE_REQ_CKPT_CHECKPOINT_CHECKPOINTSYNCHRONIZEASYNC
  112. };
  113. enum req_lib_ckpt_sectioniterator_types {
  114. MESSAGE_REQ_CKPT_SECTIONITERATOR_SECTIONITERATORINITIALIZE = 1,
  115. MESSAGE_REQ_CKPT_SECTIONITERATOR_SECTIONITERATORNEXT
  116. };
  117. enum res_lib_ckpt_types {
  118. MESSAGE_RES_CKPT_CHECKPOINTOPENASYNC = 1,
  119. MESSAGE_RES_CKPT_CHECKPOINTSYNCHRONIZEASYNC
  120. };
  121. enum res_lib_ckpt_checkpoint_types {
  122. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTOPEN = 1,
  123. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTOPENASYNC,
  124. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTUNLINK,
  125. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTRETENTIONDURATIONSET,
  126. MESSAGE_RES_CKPT_CHECKPOINT_ACTIVECHECKPOINTSET,
  127. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTSTATUSGET,
  128. MESSAGE_RES_CKPT_CHECKPOINT_SECTIONCREATE,
  129. MESSAGE_RES_CKPT_CHECKPOINT_SECTIONDELETE,
  130. MESSAGE_RES_CKPT_CHECKPOINT_SECTIONEXPIRATIONTIMESET,
  131. MESSAGE_RES_CKPT_CHECKPOINT_SECTIONWRITE,
  132. MESSAGE_RES_CKPT_CHECKPOINT_SECTIONOVERWRITE,
  133. MESSAGE_RES_CKPT_CHECKPOINT_SECTIONREAD,
  134. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTSYNCHRONIZE,
  135. MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTSYNCHRONIZEASYNC
  136. };
  137. enum res_lib_ckpt_sectioniterator_types {
  138. MESSAGE_RES_CKPT_SECTIONITERATOR_SECTIONITERATORINITIALIZE = 1,
  139. MESSAGE_RES_CKPT_SECTIONITERATOR_SECTIONITERATORNEXT
  140. };
  141. enum req_evt_types {
  142. MESSAGE_REQ_EVT_OPEN_CHANNEL = 1,
  143. MESSAGE_REQ_EVT_CLOSE_CHANNEL,
  144. MESSAGE_REQ_EVT_SUBSCRIBE,
  145. MESSAGE_REQ_EVT_UNSUBSCRIBE,
  146. MESSAGE_REQ_EVT_PUBLISH,
  147. MESSAGE_REQ_EVT_CLEAR_RETENTIONTIME,
  148. MESSAGE_REQ_EVT_EVENT_DATA
  149. };
  150. enum res_evt_types {
  151. MESSAGE_RES_EVT_OPEN_CHANNEL = 1,
  152. MESSAGE_RES_EVT_CLOSE_CHANNEL,
  153. MESSAGE_RES_EVT_SUBSCRIBE,
  154. MESSAGE_RES_EVT_UNSUBSCRIBE,
  155. MESSAGE_RES_EVT_PUBLISH,
  156. MESSAGE_RES_EVT_CLEAR_RETENTIONTIME,
  157. MESSAGE_RES_EVT_CHAN_OPEN_CALLBACK,
  158. MESSAGE_RES_EVT_EVENT_DATA,
  159. MESSAGE_RES_EVT_AVAILABLE
  160. };
  161. struct req_header {
  162. int size;
  163. int id;
  164. } __attribute__((packed));
  165. struct res_header {
  166. int size;
  167. int id;
  168. SaErrorT error;
  169. };
  170. struct message_source {
  171. struct conn_info *conn_info;
  172. struct in_addr in_addr;
  173. } __attribute__((packed));
  174. struct res_evs_deliver_callback {
  175. struct res_header header;
  176. struct in_addr source_addr;
  177. int msglen;
  178. char msg[0];
  179. };
  180. struct res_evs_confchg_callback {
  181. struct res_header header;
  182. int member_list_entries;
  183. int left_list_entries;
  184. int joined_list_entries;
  185. struct in_addr member_list[16];
  186. struct in_addr left_list[16];
  187. struct in_addr joined_list[16];
  188. };
  189. struct req_lib_evs_join {
  190. struct res_header header;
  191. int group_entries;
  192. struct evs_group groups[0];
  193. };
  194. struct res_lib_evs_join {
  195. struct res_header header;
  196. };
  197. struct req_lib_evs_leave {
  198. struct res_header header;
  199. int group_entries;
  200. struct evs_group groups[0];
  201. };
  202. struct res_lib_evs_leave {
  203. struct res_header header;
  204. };
  205. struct req_lib_evs_mcast_joined {
  206. struct res_header header;
  207. evs_guarantee_t guarantee;
  208. int msg_len;
  209. char msg[0];
  210. };
  211. struct res_lib_evs_mcast_joined {
  212. struct res_header header;
  213. };
  214. struct req_lib_evs_mcast_groups {
  215. struct res_header header;
  216. evs_guarantee_t guarantee;
  217. int msg_len;
  218. int group_entries;
  219. struct evs_group groups[0];
  220. };
  221. struct res_lib_evs_mcast_groups {
  222. struct res_header header;
  223. };
  224. struct req_exec_evs_mcast {
  225. struct req_header header;
  226. int group_entries;
  227. int msg_len;
  228. struct evs_group groups[0];
  229. /* data goes here */
  230. };
  231. struct req_lib_init {
  232. struct req_header header;
  233. };
  234. struct res_lib_init {
  235. struct res_header header;
  236. };
  237. struct req_lib_amf_componentregister {
  238. struct req_header header;
  239. SaNameT compName;
  240. SaNameT proxyCompName;
  241. } __attribute__((packed));
  242. struct req_exec_amf_componentregister {
  243. struct req_header header;
  244. struct message_source source;
  245. struct req_lib_amf_componentregister req_lib_amf_componentregister;
  246. SaAmfReadinessStateT currentReadinessState;
  247. SaAmfReadinessStateT newReadinessState;
  248. SaAmfHAStateT currentHAState;
  249. SaAmfHAStateT newHAState;
  250. } __attribute__((packed));
  251. struct res_lib_amf_componentregister {
  252. struct res_header header;
  253. };
  254. struct req_lib_amf_componentunregister {
  255. struct req_header header;
  256. SaNameT compName;
  257. SaNameT proxyCompName;
  258. };
  259. struct req_exec_amf_componentunregister {
  260. struct req_header header;
  261. struct message_source source;
  262. struct req_lib_amf_componentunregister req_lib_amf_componentunregister;
  263. };
  264. struct res_lib_amf_componentunregister {
  265. struct res_header header;
  266. };
  267. struct req_amf_readinessstateget {
  268. struct req_header header;
  269. SaNameT compName;
  270. };
  271. struct res_lib_amf_readinessstateget {
  272. struct res_header header;
  273. SaAmfReadinessStateT readinessState;
  274. };
  275. struct res_lib_amf_healthcheckcallback {
  276. struct res_header header;
  277. int instance;
  278. SaInvocationT invocation;
  279. SaNameT compName;
  280. SaAmfHealthcheckT checkType;
  281. };
  282. struct res_lib_amf_readinessstatesetcallback {
  283. struct res_header header;
  284. SaInvocationT invocation;
  285. SaNameT compName;
  286. SaAmfReadinessStateT readinessState;
  287. };
  288. struct req_exec_amf_readinessstateset {
  289. struct req_header header;
  290. SaNameT compName;
  291. SaAmfReadinessStateT readinessState;
  292. };
  293. struct req_exec_amf_hastateset {
  294. struct req_header header;
  295. SaNameT compName;
  296. SaAmfHAStateT haState;
  297. };
  298. struct req_exec_ckpt_checkpointclose {
  299. struct req_header header;
  300. SaNameT checkpointName;
  301. };
  302. struct req_exec_ckpt_checkpointretentiondurationset {
  303. struct req_header header;
  304. struct message_source source;
  305. SaNameT checkpointName;
  306. SaTimeT retentionDuration;
  307. };
  308. struct req_exec_ckpt_checkpointretentiondurationexpire {
  309. struct req_header header;
  310. SaNameT checkpointName;
  311. };
  312. struct res_lib_amf_componentterminatecallback {
  313. struct res_header header;
  314. SaInvocationT invocation;
  315. SaNameT compName;
  316. };
  317. struct req_amf_hastateget {
  318. struct req_header header;
  319. SaNameT compName;
  320. SaNameT csiName;
  321. };
  322. struct res_lib_amf_hastateget {
  323. struct res_header header;
  324. SaAmfHAStateT haState;
  325. };
  326. struct res_lib_amf_csisetcallback {
  327. struct res_header header;
  328. SaInvocationT invocation;
  329. SaNameT compName;
  330. SaNameT csiName;
  331. SaAmfCSIFlagsT csiFlags;
  332. SaAmfHAStateT haState;
  333. SaNameT activeCompName;
  334. SaAmfCSITransitionDescriptorT transitionDescriptor;
  335. };
  336. struct res_lib_amf_csiremovecallback {
  337. struct res_header header;
  338. SaInvocationT invocation;
  339. SaNameT compName;
  340. SaNameT csiName;
  341. SaAmfCSIFlagsT csiFlags;
  342. };
  343. struct req_amf_protectiongrouptrackstart {
  344. struct req_header header;
  345. SaNameT csiName;
  346. SaUint8T trackFlags;
  347. SaAmfProtectionGroupNotificationT *notificationBufferAddress;
  348. SaUint32T numberOfItems;
  349. };
  350. struct res_lib_amf_protectiongrouptrackstart {
  351. struct res_header header;
  352. };
  353. struct req_amf_protectiongrouptrackstop {
  354. struct req_header header;
  355. SaNameT csiName;
  356. };
  357. struct res_lib_amf_protectiongrouptrackstop {
  358. struct res_header header;
  359. };
  360. struct res_lib_amf_protectiongrouptrackcallback {
  361. struct res_header header;
  362. SaNameT csiName;
  363. SaAmfProtectionGroupNotificationT *notificationBufferAddress;
  364. SaUint32T numberOfItems;
  365. SaUint32T numberOfMembers;
  366. SaUint32T error;
  367. SaAmfProtectionGroupNotificationT notificationBuffer[0];
  368. };
  369. struct req_lib_amf_errorreport {
  370. struct req_header header;
  371. SaNameT reportingComponent;
  372. SaNameT erroneousComponent;
  373. SaTimeT errorDetectionTime;
  374. SaAmfErrorDescriptorT errorDescriptor;
  375. SaAmfAdditionalDataT additionalData;
  376. };
  377. struct req_exec_amf_errorreport {
  378. struct req_header header;
  379. struct message_source source;
  380. struct req_lib_amf_errorreport req_lib_amf_errorreport;
  381. };
  382. struct res_lib_amf_errorreport {
  383. struct res_header header;
  384. };
  385. struct req_lib_amf_errorcancelall {
  386. struct req_header header;
  387. SaNameT compName;
  388. };
  389. struct req_exec_amf_errorcancelall {
  390. struct req_header header;
  391. struct message_source source;
  392. struct req_lib_amf_errorcancelall req_lib_amf_errorcancelall;
  393. };
  394. struct res_lib_amf_errorcancelall {
  395. struct res_header header;
  396. };
  397. struct req_amf_response {
  398. struct req_header header;
  399. SaInvocationT invocation;
  400. SaErrorT error;
  401. };
  402. struct res_lib_amf_response {
  403. struct res_header header;
  404. };
  405. struct req_amf_stoppingcomplete {
  406. struct req_header header;
  407. SaInvocationT invocation;
  408. SaErrorT error;
  409. };
  410. struct res_lib_amf_stoppingcomplete {
  411. struct req_header header;
  412. };
  413. struct req_amf_componentcapabilitymodelget {
  414. struct req_header header;
  415. SaNameT compName;
  416. };
  417. struct res_lib_amf_componentcapabilitymodelget {
  418. struct res_header header;
  419. SaAmfComponentCapabilityModelT componentCapabilityModel;
  420. };
  421. struct req_lib_activatepoll {
  422. struct req_header header;
  423. };
  424. struct res_lib_activatepoll {
  425. struct res_header header;
  426. };
  427. struct req_lib_ckpt_checkpointopen {
  428. struct req_header header;
  429. SaNameT checkpointName;
  430. SaCkptCheckpointCreationAttributesT checkpointCreationAttributes;
  431. SaCkptCheckpointOpenFlagsT checkpointOpenFlags;
  432. };
  433. struct res_lib_ckpt_checkpointopen {
  434. struct res_header header;
  435. };
  436. struct req_exec_ckpt_checkpointopen {
  437. struct req_header header;
  438. struct message_source source;
  439. struct req_lib_ckpt_checkpointopen req_lib_ckpt_checkpointopen;
  440. };
  441. struct req_lib_ckpt_checkpointopenasync {
  442. struct req_header header;
  443. SaNameT checkpointName;
  444. SaCkptCheckpointCreationAttributesT checkpointCreationAttributes;
  445. SaCkptCheckpointOpenFlagsT checkpointOpenFlags;
  446. SaInvocationT invocation;
  447. };
  448. struct res_lib_ckpt_checkpointopenasync {
  449. struct res_header header;
  450. SaCkptCheckpointHandleT checkpointHandle;
  451. SaInvocationT invocation;
  452. };
  453. struct req_lib_ckpt_checkpointclose {
  454. struct req_header header;
  455. };
  456. struct res_lib_ckpt_checkpointclose {
  457. struct res_header header;
  458. SaNameT checkpointName;
  459. };
  460. struct req_lib_ckpt_checkpointunlink {
  461. struct req_header header;
  462. SaNameT checkpointName;
  463. };
  464. struct res_lib_ckpt_checkpointunlink {
  465. struct res_header header;
  466. };
  467. struct req_exec_ckpt_checkpointunlink {
  468. struct req_header header;
  469. struct message_source source;
  470. struct req_lib_ckpt_checkpointunlink req_lib_ckpt_checkpointunlink;
  471. };
  472. struct req_lib_ckpt_checkpointretentiondurationset {
  473. struct req_header header;
  474. SaTimeT retentionDuration;
  475. };
  476. struct res_lib_ckpt_checkpointretentiondurationset {
  477. struct res_header header;
  478. };
  479. struct req_lib_ckpt_activecheckpointset {
  480. struct req_header header;
  481. };
  482. struct res_lib_ckpt_activecheckpointset {
  483. struct res_header header;
  484. };
  485. struct req_lib_ckpt_checkpointstatusget {
  486. struct req_header header;
  487. };
  488. struct res_lib_ckpt_checkpointstatusget {
  489. struct res_header header;
  490. SaCkptCheckpointStatusT checkpointStatus;
  491. };
  492. struct req_lib_ckpt_sectioncreate {
  493. struct req_header header;
  494. SaUint32T idLen;
  495. SaTimeT expirationTime;
  496. SaUint32T initialDataSize;
  497. };
  498. struct res_lib_ckpt_sectioncreate {
  499. struct res_header header;
  500. };
  501. struct req_exec_ckpt_sectioncreate {
  502. struct req_header header;
  503. struct message_source source;
  504. SaNameT checkpointName;
  505. struct req_lib_ckpt_sectioncreate req_lib_ckpt_sectioncreate; /* this must be last */
  506. };
  507. struct req_lib_ckpt_sectiondelete {
  508. struct req_header header;
  509. SaUint32T idLen;
  510. };
  511. struct res_lib_ckpt_sectiondelete {
  512. struct res_header header;
  513. };
  514. struct req_exec_ckpt_sectiondelete {
  515. struct req_header header;
  516. struct message_source source;
  517. SaNameT checkpointName;
  518. struct req_lib_ckpt_sectiondelete req_lib_ckpt_sectiondelete; /* this must be last */
  519. };
  520. struct req_lib_ckpt_sectionexpirationtimeset {
  521. struct req_header header;
  522. SaUint32T idLen;
  523. SaTimeT expirationTime;
  524. };
  525. struct res_lib_ckpt_sectionexpirationtimeset {
  526. struct res_header header;
  527. };
  528. struct req_exec_ckpt_sectionexpirationtimeset {
  529. struct req_header header;
  530. struct message_source source;
  531. SaNameT checkpointName;
  532. struct req_lib_ckpt_sectionexpirationtimeset req_lib_ckpt_sectionexpirationtimeset;
  533. };
  534. struct req_lib_ckpt_sectioniteratorinitialize {
  535. struct req_header header;
  536. SaNameT checkpointName;
  537. SaCkptSectionsChosenT sectionsChosen;
  538. SaTimeT expirationTime;
  539. };
  540. struct res_lib_ckpt_sectioniteratorinitialize {
  541. struct res_header header;
  542. };
  543. struct req_lib_ckpt_sectioniteratornext {
  544. struct req_header header;
  545. };
  546. struct res_lib_ckpt_sectioniteratornext {
  547. struct res_header header;
  548. SaCkptSectionDescriptorT sectionDescriptor;
  549. };
  550. struct req_lib_ckpt_sectionwrite {
  551. struct req_header header;
  552. SaUint32T idLen;
  553. SaOffsetT dataOffset;
  554. SaOffsetT dataSize;
  555. };
  556. struct res_lib_ckpt_sectionwrite {
  557. struct res_header header;
  558. };
  559. struct req_exec_ckpt_sectionwrite {
  560. struct req_header header;
  561. struct message_source source;
  562. SaNameT checkpointName;
  563. struct req_lib_ckpt_sectionwrite req_lib_ckpt_sectionwrite;
  564. };
  565. struct req_lib_ckpt_sectionoverwrite {
  566. struct req_header header;
  567. SaUint32T idLen;
  568. SaUint32T dataSize;
  569. };
  570. struct res_lib_ckpt_sectionoverwrite {
  571. struct res_header header;
  572. };
  573. struct req_exec_ckpt_sectionoverwrite {
  574. struct req_header header;
  575. struct message_source source;
  576. SaNameT checkpointName;
  577. struct req_lib_ckpt_sectionoverwrite req_lib_ckpt_sectionoverwrite;
  578. };
  579. struct req_lib_ckpt_sectionread {
  580. struct req_header header;
  581. SaUint32T idLen;
  582. SaOffsetT dataOffset;
  583. SaOffsetT dataSize;
  584. };
  585. struct res_lib_ckpt_sectionread {
  586. struct res_header header;
  587. SaSizeT dataRead;
  588. };
  589. struct req_exec_ckpt_sectionread {
  590. struct req_header header;
  591. struct message_source source;
  592. SaNameT checkpointName;
  593. struct req_lib_ckpt_sectionread req_lib_ckpt_sectionread;
  594. };
  595. struct req_lib_ckpt_checkpointsynchronize {
  596. struct req_header header;
  597. };
  598. struct res_lib_ckpt_checkpointsynchronize {
  599. struct res_header header;
  600. };
  601. struct req_lib_ckpt_checkpointsynchronizeasync {
  602. struct req_header header;
  603. SaInvocationT invocation;
  604. };
  605. struct res_lib_ckpt_checkpointsynchronizeasync {
  606. struct res_header header;
  607. };
  608. /*
  609. * MESSAGE_REQ_EVT_OPEN_CHANNEL
  610. *
  611. * ico_head Request head
  612. * ico_open_flag: Channel open flags
  613. * ico_channel_name: Name of channel to open
  614. * ico_c_handle: Local lib channel handle (used in returned event data)
  615. * ico_timeout: Used only by open
  616. * ico_invocation: Used only by async open
  617. *
  618. */
  619. struct req_evt_channel_open {
  620. struct req_header ico_head;
  621. SaUint8T ico_open_flag;
  622. SaNameT ico_channel_name;
  623. SaEvtChannelHandleT ico_c_handle; /* client chan handle */
  624. SaTimeT ico_timeout; /* open only */
  625. SaInvocationT ico_invocation; /* open async only */
  626. };
  627. /*
  628. * MESSAGE_RES_EVT_OPEN_CHANNEL
  629. *
  630. *
  631. * ico_head: Results head
  632. * ico_error: Request results
  633. * ico_channel_handle: Server side channel handle (used in channel ops)
  634. *
  635. */
  636. struct res_evt_channel_open {
  637. struct res_header ico_head;
  638. uint32_t ico_channel_handle;/* svr chan handle */
  639. };
  640. /*
  641. * MESSAGE_RES_EVT_CHAN_OPEN_CALLBACK
  642. *
  643. * TODO: Define this
  644. */
  645. struct res_evt_open_chan_async {
  646. struct res_header ico_head;
  647. };
  648. /*
  649. * MESSAGE_REQ_EVT_CLOSE_CHANNEL
  650. *
  651. * icc_head: Request head
  652. * icc_channel_handle: Server handle of channel to close
  653. *
  654. */
  655. struct req_evt_channel_close {
  656. struct req_header icc_head;
  657. uint32_t icc_channel_handle;
  658. };
  659. /*
  660. * MESSAGE_RES_EVT_CLOSE_CHANNEL
  661. *
  662. * icc_head: Results head
  663. * icc_error: Request result
  664. *
  665. */
  666. struct res_evt_channel_close {
  667. struct res_header icc_head;
  668. };
  669. /*
  670. * MESSAGE_REQ_EVT_SUBSCRIBE
  671. *
  672. * ics_head: Request head
  673. * ics_channel_handle: Server handle of channel
  674. * ics_sub_id: Subscription ID
  675. * ics_filter_size: Size of supplied filter data
  676. * ics_filter_count: Number of filters supplied
  677. * ics_filter_data: Filter data
  678. *
  679. */
  680. struct req_evt_event_subscribe {
  681. struct req_header ics_head;
  682. uint32_t ics_channel_handle;
  683. SaEvtSubscriptionIdT ics_sub_id;
  684. uint32_t ics_filter_size;
  685. uint32_t ics_filter_count;
  686. uint8_t ics_filter_data[0];
  687. };
  688. /*
  689. * MESSAGE_RES_EVT_SUBSCRIBE
  690. *
  691. * ics_head: Result head
  692. * ics_error: Request results
  693. *
  694. */
  695. struct res_evt_event_subscribe {
  696. struct res_header ics_head;
  697. };
  698. /*
  699. * MESSAGE_REQ_EVT_UNSUBSCRIBE
  700. *
  701. * icu_head: Request head
  702. * icu_channel_handle: Server handle of channel
  703. * icu_sub_id: Subscription ID
  704. *
  705. */
  706. struct req_evt_event_unsubscribe {
  707. struct req_header icu_head;
  708. uint32_t icu_channel_handle;
  709. SaEvtSubscriptionIdT icu_sub_id;
  710. };
  711. /*
  712. * MESSAGE_RES_EVT_UNSUBSCRIBE
  713. *
  714. * icu_head: Results head
  715. * icu_error: request result
  716. *
  717. */
  718. struct res_evt_event_unsubscribe {
  719. struct res_header icu_head;
  720. };
  721. /*
  722. * MESSAGE_REQ_EVT_EVENT_DATA
  723. * MESSAGE_RES_EVT_AVAILABLE
  724. *
  725. * evd_head: Request Head
  726. */
  727. struct res_evt_event_data {
  728. struct res_header evd_head;
  729. };
  730. /*
  731. * MESSAGE_REQ_EVT_PUBLISH (1)
  732. * MESSAGE_RES_EVT_EVENT_DATA (2)
  733. * MESSAGE_REQ_EXEC_EVT_EVENTDATA (3)
  734. * MESSAGE_REQ_EXEC_EVT_RECOVERY_EVENTDATA (4)
  735. *
  736. * led_head: Request/Results head
  737. * led_in_addr: address of node (4 only)
  738. * led_receive_time: Time that the message was received (4 only)
  739. * led_svr_channel_handle: Server channel handle (1 only)
  740. * led_lib_channel_handle: Lib channel handle (2 only)
  741. * led_chan_name: Channel name (3 and 4 only)
  742. * led_event_id: Event ID (2, 3 and 4 only)
  743. * led_sub_id: Subscription ID (2 only)
  744. * led_publisher_node_id: Node ID of event publisher
  745. * led_publisher_name: Node name of event publisher
  746. * led_retention_time: Event retention time
  747. * led_publish_time: Publication time of the event
  748. * led_priority: Event priority
  749. * led_user_data_offset: Offset to user data
  750. * led_user_data_size: Size of user data
  751. * led_patterns_number: Number of patterns in the event
  752. * led_body: Pattern and user data
  753. */
  754. struct lib_event_data {
  755. struct res_header led_head;
  756. struct in_addr led_in_addr;
  757. SaTimeT led_receive_time;
  758. uint32_t led_svr_channel_handle;
  759. uint32_t led_lib_channel_handle;
  760. SaNameT led_chan_name;
  761. SaEvtEventIdT led_event_id;
  762. SaEvtSubscriptionIdT led_sub_id;
  763. SaClmNodeIdT led_publisher_node_id;
  764. SaNameT led_publisher_name;
  765. SaTimeT led_retention_time;
  766. SaTimeT led_publish_time;
  767. SaEvtEventPriorityT led_priority;
  768. uint32_t led_user_data_offset;
  769. uint32_t led_user_data_size;
  770. uint32_t led_patterns_number;
  771. uint8_t led_body[0];
  772. };
  773. /*
  774. * MESSAGE_RES_EVT_PUBLISH
  775. *
  776. * iep_head: Result head
  777. * iep_error: Request results
  778. * iep_event_id: Event ID of published message
  779. *
  780. */
  781. struct res_evt_event_publish {
  782. struct res_header iep_head;
  783. SaEvtEventIdT iep_event_id;
  784. };
  785. /*
  786. * MESSAGE_REQ_EVT_CLEAR_RETENTIONTIME
  787. *
  788. * Request message:
  789. *
  790. * iec_head: Request head
  791. * iec_event_id: ID of event to clear
  792. * iec_channel_handle: Server handle of associate channel
  793. *
  794. */
  795. struct req_evt_event_clear_retentiontime {
  796. struct req_header iec_head;
  797. SaEvtEventIdT iec_event_id;
  798. uint32_t iec_channel_handle;
  799. };
  800. /*
  801. * MESSAGE_RES_EVT_CLEAR_RETENTIONTIME
  802. *
  803. * iec_head: Results head
  804. * iec_error: Request result
  805. *
  806. */
  807. struct res_evt_event_clear_retentiontime {
  808. struct res_header iec_head;
  809. };
  810. /*
  811. * MESSAGE_REQ_EXEC_EVT_CHANCMD
  812. *
  813. * chc_header: Request head
  814. * chc_chan: Channel Name
  815. * chc_op: Channel operation (open, close, clear retentiontime)
  816. */
  817. enum evt_chan_ops {
  818. EVT_OPEN_CHAN_OP,
  819. EVT_CLOSE_CHAN_OP,
  820. EVT_CLEAR_RET_OP,
  821. EVT_SET_ID_OP,
  822. EVT_CONF_DONE,
  823. EVT_OPEN_COUNT,
  824. EVT_OPEN_COUNT_DONE
  825. };
  826. struct evt_set_id {
  827. struct in_addr chc_addr;
  828. SaEvtEventIdT chc_last_id;
  829. };
  830. struct evt_set_opens {
  831. SaNameT chc_chan_name;
  832. uint32_t chc_open_count;
  833. };
  834. struct req_evt_chan_command {
  835. struct req_header chc_head;
  836. int chc_op;
  837. union {
  838. SaNameT chc_chan;
  839. SaEvtEventIdT chc_event_id;
  840. struct evt_set_id chc_set_id;
  841. struct evt_set_opens chc_set_opens;
  842. } u;
  843. };
  844. #endif /* AIS_MSG_H_DEFINED */