jack2 codebase
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

751 lines
16KB

  1. #ifndef _JackRPCEngine_user_
  2. #define _JackRPCEngine_user_
  3. /* Module JackRPCEngine */
  4. #include <string.h>
  5. #include <mach/ndr.h>
  6. #include <mach/boolean.h>
  7. #include <mach/kern_return.h>
  8. #include <mach/notify.h>
  9. #include <mach/mach_types.h>
  10. #include <mach/message.h>
  11. #include <mach/mig_errors.h>
  12. #include <mach/port.h>
  13. #ifdef AUTOTEST
  14. #ifndef FUNCTION_PTR_T
  15. #define FUNCTION_PTR_T
  16. typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
  17. typedef struct {
  18. char *name;
  19. function_ptr_t function;
  20. } function_table_entry;
  21. typedef function_table_entry *function_table_t;
  22. #endif /* FUNCTION_PTR_T */
  23. #endif /* AUTOTEST */
  24. #ifndef JackRPCEngine_MSG_COUNT
  25. #define JackRPCEngine_MSG_COUNT 15
  26. #endif /* JackRPCEngine_MSG_COUNT */
  27. #include <mach/std_types.h>
  28. #include <mach/mig.h>
  29. #include <mach/mig.h>
  30. #include <mach/mach_types.h>
  31. #include "Jackdefs.h"
  32. #ifdef __BeforeMigUserHeader
  33. __BeforeMigUserHeader
  34. #endif /* __BeforeMigUserHeader */
  35. #include <sys/cdefs.h>
  36. __BEGIN_DECLS
  37. /* Routine rpc_jack_client_open */
  38. #ifdef mig_external
  39. mig_external
  40. #else
  41. extern
  42. #endif /* mig_external */
  43. kern_return_t rpc_jack_client_open
  44. (
  45. mach_port_t server_port,
  46. client_name_t client_name,
  47. mach_port_t *private_port,
  48. int *shared_engine,
  49. int *shared_client,
  50. int *shared_graph,
  51. int *result
  52. );
  53. /* Routine rpc_jack_client_close */
  54. #ifdef mig_external
  55. mig_external
  56. #else
  57. extern
  58. #endif /* mig_external */
  59. kern_return_t rpc_jack_client_close
  60. (
  61. mach_port_t server_port,
  62. int refnum,
  63. int *result
  64. );
  65. /* Routine rpc_jack_client_activate */
  66. #ifdef mig_external
  67. mig_external
  68. #else
  69. extern
  70. #endif /* mig_external */
  71. kern_return_t rpc_jack_client_activate
  72. (
  73. mach_port_t server_port,
  74. int refnum,
  75. int *result
  76. );
  77. /* Routine rpc_jack_client_deactivate */
  78. #ifdef mig_external
  79. mig_external
  80. #else
  81. extern
  82. #endif /* mig_external */
  83. kern_return_t rpc_jack_client_deactivate
  84. (
  85. mach_port_t server_port,
  86. int refnum,
  87. int *result
  88. );
  89. /* Routine rpc_jack_port_register */
  90. #ifdef mig_external
  91. mig_external
  92. #else
  93. extern
  94. #endif /* mig_external */
  95. kern_return_t rpc_jack_port_register
  96. (
  97. mach_port_t server_port,
  98. int refnum,
  99. client_port_name_t name,
  100. unsigned flags,
  101. unsigned buffer_size,
  102. unsigned *port_index,
  103. int *result
  104. );
  105. /* Routine rpc_jack_port_unregister */
  106. #ifdef mig_external
  107. mig_external
  108. #else
  109. extern
  110. #endif /* mig_external */
  111. kern_return_t rpc_jack_port_unregister
  112. (
  113. mach_port_t server_port,
  114. int refnum,
  115. int port,
  116. int *result
  117. );
  118. /* Routine rpc_jack_port_connect */
  119. #ifdef mig_external
  120. mig_external
  121. #else
  122. extern
  123. #endif /* mig_external */
  124. kern_return_t rpc_jack_port_connect
  125. (
  126. mach_port_t server_port,
  127. int refnum,
  128. int src,
  129. int dst,
  130. int *result
  131. );
  132. /* Routine rpc_jack_port_disconnect */
  133. #ifdef mig_external
  134. mig_external
  135. #else
  136. extern
  137. #endif /* mig_external */
  138. kern_return_t rpc_jack_port_disconnect
  139. (
  140. mach_port_t server_port,
  141. int refnum,
  142. int src,
  143. int dst,
  144. int *result
  145. );
  146. /* Routine rpc_jack_port_connect_name */
  147. #ifdef mig_external
  148. mig_external
  149. #else
  150. extern
  151. #endif /* mig_external */
  152. kern_return_t rpc_jack_port_connect_name
  153. (
  154. mach_port_t server_port,
  155. int refnum,
  156. client_port_name_t src,
  157. client_port_name_t dst,
  158. int *result
  159. );
  160. /* Routine rpc_jack_port_disconnect_name */
  161. #ifdef mig_external
  162. mig_external
  163. #else
  164. extern
  165. #endif /* mig_external */
  166. kern_return_t rpc_jack_port_disconnect_name
  167. (
  168. mach_port_t server_port,
  169. int refnum,
  170. client_port_name_t src,
  171. client_port_name_t dst,
  172. int *result
  173. );
  174. /* Routine rpc_jack_set_buffer_size */
  175. #ifdef mig_external
  176. mig_external
  177. #else
  178. extern
  179. #endif /* mig_external */
  180. kern_return_t rpc_jack_set_buffer_size
  181. (
  182. mach_port_t server_port,
  183. int buffer_size,
  184. int *result
  185. );
  186. /* Routine rpc_jack_set_freewheel */
  187. #ifdef mig_external
  188. mig_external
  189. #else
  190. extern
  191. #endif /* mig_external */
  192. kern_return_t rpc_jack_set_freewheel
  193. (
  194. mach_port_t server_port,
  195. int onoff,
  196. int *result
  197. );
  198. /* Routine rpc_jack_release_timebase */
  199. #ifdef mig_external
  200. mig_external
  201. #else
  202. extern
  203. #endif /* mig_external */
  204. kern_return_t rpc_jack_release_timebase
  205. (
  206. mach_port_t server_port,
  207. int refnum,
  208. int *result
  209. );
  210. /* Routine rpc_jack_set_timebase_callback */
  211. #ifdef mig_external
  212. mig_external
  213. #else
  214. extern
  215. #endif /* mig_external */
  216. kern_return_t rpc_jack_set_timebase_callback
  217. (
  218. mach_port_t server_port,
  219. int refnum,
  220. int conditional,
  221. int *result
  222. );
  223. /* SimpleRoutine rpc_jack_client_rt_notify */
  224. #ifdef mig_external
  225. mig_external
  226. #else
  227. extern
  228. #endif /* mig_external */
  229. kern_return_t rpc_jack_client_rt_notify
  230. (
  231. mach_port_t client_port,
  232. int refnum,
  233. int notify,
  234. int value,
  235. int timeout
  236. );
  237. __END_DECLS
  238. /********************** Caution **************************/
  239. /* The following data types should be used to calculate */
  240. /* maximum message sizes only. The actual message may be */
  241. /* smaller, and the position of the arguments within the */
  242. /* message layout may vary from what is presented here. */
  243. /* For example, if any of the arguments are variable- */
  244. /* sized, and less than the maximum is sent, the data */
  245. /* will be packed tight in the actual message to reduce */
  246. /* the presence of holes. */
  247. /********************** Caution **************************/
  248. /* typedefs for all requests */
  249. #ifndef __Request__JackRPCEngine_subsystem__defined
  250. #define __Request__JackRPCEngine_subsystem__defined
  251. #ifdef __MigPackStructs
  252. #pragma pack(4)
  253. #endif
  254. typedef struct {
  255. mach_msg_header_t Head;
  256. NDR_record_t NDR;
  257. client_name_t client_name;
  258. } __Request__rpc_jack_client_open_t;
  259. #ifdef __MigPackStructs
  260. #pragma pack()
  261. #endif
  262. #ifdef __MigPackStructs
  263. #pragma pack(4)
  264. #endif
  265. typedef struct {
  266. mach_msg_header_t Head;
  267. NDR_record_t NDR;
  268. int refnum;
  269. } __Request__rpc_jack_client_close_t;
  270. #ifdef __MigPackStructs
  271. #pragma pack()
  272. #endif
  273. #ifdef __MigPackStructs
  274. #pragma pack(4)
  275. #endif
  276. typedef struct {
  277. mach_msg_header_t Head;
  278. NDR_record_t NDR;
  279. int refnum;
  280. } __Request__rpc_jack_client_activate_t;
  281. #ifdef __MigPackStructs
  282. #pragma pack()
  283. #endif
  284. #ifdef __MigPackStructs
  285. #pragma pack(4)
  286. #endif
  287. typedef struct {
  288. mach_msg_header_t Head;
  289. NDR_record_t NDR;
  290. int refnum;
  291. } __Request__rpc_jack_client_deactivate_t;
  292. #ifdef __MigPackStructs
  293. #pragma pack()
  294. #endif
  295. #ifdef __MigPackStructs
  296. #pragma pack(4)
  297. #endif
  298. typedef struct {
  299. mach_msg_header_t Head;
  300. NDR_record_t NDR;
  301. int refnum;
  302. client_port_name_t name;
  303. unsigned flags;
  304. unsigned buffer_size;
  305. } __Request__rpc_jack_port_register_t;
  306. #ifdef __MigPackStructs
  307. #pragma pack()
  308. #endif
  309. #ifdef __MigPackStructs
  310. #pragma pack(4)
  311. #endif
  312. typedef struct {
  313. mach_msg_header_t Head;
  314. NDR_record_t NDR;
  315. int refnum;
  316. int port;
  317. } __Request__rpc_jack_port_unregister_t;
  318. #ifdef __MigPackStructs
  319. #pragma pack()
  320. #endif
  321. #ifdef __MigPackStructs
  322. #pragma pack(4)
  323. #endif
  324. typedef struct {
  325. mach_msg_header_t Head;
  326. NDR_record_t NDR;
  327. int refnum;
  328. int src;
  329. int dst;
  330. } __Request__rpc_jack_port_connect_t;
  331. #ifdef __MigPackStructs
  332. #pragma pack()
  333. #endif
  334. #ifdef __MigPackStructs
  335. #pragma pack(4)
  336. #endif
  337. typedef struct {
  338. mach_msg_header_t Head;
  339. NDR_record_t NDR;
  340. int refnum;
  341. int src;
  342. int dst;
  343. } __Request__rpc_jack_port_disconnect_t;
  344. #ifdef __MigPackStructs
  345. #pragma pack()
  346. #endif
  347. #ifdef __MigPackStructs
  348. #pragma pack(4)
  349. #endif
  350. typedef struct {
  351. mach_msg_header_t Head;
  352. NDR_record_t NDR;
  353. int refnum;
  354. client_port_name_t src;
  355. client_port_name_t dst;
  356. } __Request__rpc_jack_port_connect_name_t;
  357. #ifdef __MigPackStructs
  358. #pragma pack()
  359. #endif
  360. #ifdef __MigPackStructs
  361. #pragma pack(4)
  362. #endif
  363. typedef struct {
  364. mach_msg_header_t Head;
  365. NDR_record_t NDR;
  366. int refnum;
  367. client_port_name_t src;
  368. client_port_name_t dst;
  369. } __Request__rpc_jack_port_disconnect_name_t;
  370. #ifdef __MigPackStructs
  371. #pragma pack()
  372. #endif
  373. #ifdef __MigPackStructs
  374. #pragma pack(4)
  375. #endif
  376. typedef struct {
  377. mach_msg_header_t Head;
  378. NDR_record_t NDR;
  379. int buffer_size;
  380. } __Request__rpc_jack_set_buffer_size_t;
  381. #ifdef __MigPackStructs
  382. #pragma pack()
  383. #endif
  384. #ifdef __MigPackStructs
  385. #pragma pack(4)
  386. #endif
  387. typedef struct {
  388. mach_msg_header_t Head;
  389. NDR_record_t NDR;
  390. int onoff;
  391. } __Request__rpc_jack_set_freewheel_t;
  392. #ifdef __MigPackStructs
  393. #pragma pack()
  394. #endif
  395. #ifdef __MigPackStructs
  396. #pragma pack(4)
  397. #endif
  398. typedef struct {
  399. mach_msg_header_t Head;
  400. NDR_record_t NDR;
  401. int refnum;
  402. } __Request__rpc_jack_release_timebase_t;
  403. #ifdef __MigPackStructs
  404. #pragma pack()
  405. #endif
  406. #ifdef __MigPackStructs
  407. #pragma pack(4)
  408. #endif
  409. typedef struct {
  410. mach_msg_header_t Head;
  411. NDR_record_t NDR;
  412. int refnum;
  413. int conditional;
  414. } __Request__rpc_jack_set_timebase_callback_t;
  415. #ifdef __MigPackStructs
  416. #pragma pack()
  417. #endif
  418. #ifdef __MigPackStructs
  419. #pragma pack(4)
  420. #endif
  421. typedef struct {
  422. mach_msg_header_t Head;
  423. NDR_record_t NDR;
  424. int refnum;
  425. int notify;
  426. int value;
  427. } __Request__rpc_jack_client_rt_notify_t;
  428. #ifdef __MigPackStructs
  429. #pragma pack()
  430. #endif
  431. #endif /* !__Request__JackRPCEngine_subsystem__defined */
  432. /* union of all requests */
  433. #ifndef __RequestUnion__JackRPCEngine_subsystem__defined
  434. #define __RequestUnion__JackRPCEngine_subsystem__defined
  435. union __RequestUnion__JackRPCEngine_subsystem {
  436. __Request__rpc_jack_client_open_t Request_rpc_jack_client_open;
  437. __Request__rpc_jack_client_close_t Request_rpc_jack_client_close;
  438. __Request__rpc_jack_client_activate_t Request_rpc_jack_client_activate;
  439. __Request__rpc_jack_client_deactivate_t Request_rpc_jack_client_deactivate;
  440. __Request__rpc_jack_port_register_t Request_rpc_jack_port_register;
  441. __Request__rpc_jack_port_unregister_t Request_rpc_jack_port_unregister;
  442. __Request__rpc_jack_port_connect_t Request_rpc_jack_port_connect;
  443. __Request__rpc_jack_port_disconnect_t Request_rpc_jack_port_disconnect;
  444. __Request__rpc_jack_port_connect_name_t Request_rpc_jack_port_connect_name;
  445. __Request__rpc_jack_port_disconnect_name_t Request_rpc_jack_port_disconnect_name;
  446. __Request__rpc_jack_set_buffer_size_t Request_rpc_jack_set_buffer_size;
  447. __Request__rpc_jack_set_freewheel_t Request_rpc_jack_set_freewheel;
  448. __Request__rpc_jack_release_timebase_t Request_rpc_jack_release_timebase;
  449. __Request__rpc_jack_set_timebase_callback_t Request_rpc_jack_set_timebase_callback;
  450. __Request__rpc_jack_client_rt_notify_t Request_rpc_jack_client_rt_notify;
  451. };
  452. #endif /* !__RequestUnion__JackRPCEngine_subsystem__defined */
  453. /* typedefs for all replies */
  454. #ifndef __Reply__JackRPCEngine_subsystem__defined
  455. #define __Reply__JackRPCEngine_subsystem__defined
  456. #ifdef __MigPackStructs
  457. #pragma pack(4)
  458. #endif
  459. typedef struct {
  460. mach_msg_header_t Head;
  461. /* start of the kernel processed data */
  462. mach_msg_body_t msgh_body;
  463. mach_msg_port_descriptor_t private_port;
  464. /* end of the kernel processed data */
  465. NDR_record_t NDR;
  466. int shared_engine;
  467. int shared_client;
  468. int shared_graph;
  469. int result;
  470. } __Reply__rpc_jack_client_open_t;
  471. #ifdef __MigPackStructs
  472. #pragma pack()
  473. #endif
  474. #ifdef __MigPackStructs
  475. #pragma pack(4)
  476. #endif
  477. typedef struct {
  478. mach_msg_header_t Head;
  479. NDR_record_t NDR;
  480. kern_return_t RetCode;
  481. int result;
  482. } __Reply__rpc_jack_client_close_t;
  483. #ifdef __MigPackStructs
  484. #pragma pack()
  485. #endif
  486. #ifdef __MigPackStructs
  487. #pragma pack(4)
  488. #endif
  489. typedef struct {
  490. mach_msg_header_t Head;
  491. NDR_record_t NDR;
  492. kern_return_t RetCode;
  493. int result;
  494. } __Reply__rpc_jack_client_activate_t;
  495. #ifdef __MigPackStructs
  496. #pragma pack()
  497. #endif
  498. #ifdef __MigPackStructs
  499. #pragma pack(4)
  500. #endif
  501. typedef struct {
  502. mach_msg_header_t Head;
  503. NDR_record_t NDR;
  504. kern_return_t RetCode;
  505. int result;
  506. } __Reply__rpc_jack_client_deactivate_t;
  507. #ifdef __MigPackStructs
  508. #pragma pack()
  509. #endif
  510. #ifdef __MigPackStructs
  511. #pragma pack(4)
  512. #endif
  513. typedef struct {
  514. mach_msg_header_t Head;
  515. NDR_record_t NDR;
  516. kern_return_t RetCode;
  517. unsigned port_index;
  518. int result;
  519. } __Reply__rpc_jack_port_register_t;
  520. #ifdef __MigPackStructs
  521. #pragma pack()
  522. #endif
  523. #ifdef __MigPackStructs
  524. #pragma pack(4)
  525. #endif
  526. typedef struct {
  527. mach_msg_header_t Head;
  528. NDR_record_t NDR;
  529. kern_return_t RetCode;
  530. int result;
  531. } __Reply__rpc_jack_port_unregister_t;
  532. #ifdef __MigPackStructs
  533. #pragma pack()
  534. #endif
  535. #ifdef __MigPackStructs
  536. #pragma pack(4)
  537. #endif
  538. typedef struct {
  539. mach_msg_header_t Head;
  540. NDR_record_t NDR;
  541. kern_return_t RetCode;
  542. int result;
  543. } __Reply__rpc_jack_port_connect_t;
  544. #ifdef __MigPackStructs
  545. #pragma pack()
  546. #endif
  547. #ifdef __MigPackStructs
  548. #pragma pack(4)
  549. #endif
  550. typedef struct {
  551. mach_msg_header_t Head;
  552. NDR_record_t NDR;
  553. kern_return_t RetCode;
  554. int result;
  555. } __Reply__rpc_jack_port_disconnect_t;
  556. #ifdef __MigPackStructs
  557. #pragma pack()
  558. #endif
  559. #ifdef __MigPackStructs
  560. #pragma pack(4)
  561. #endif
  562. typedef struct {
  563. mach_msg_header_t Head;
  564. NDR_record_t NDR;
  565. kern_return_t RetCode;
  566. int result;
  567. } __Reply__rpc_jack_port_connect_name_t;
  568. #ifdef __MigPackStructs
  569. #pragma pack()
  570. #endif
  571. #ifdef __MigPackStructs
  572. #pragma pack(4)
  573. #endif
  574. typedef struct {
  575. mach_msg_header_t Head;
  576. NDR_record_t NDR;
  577. kern_return_t RetCode;
  578. int result;
  579. } __Reply__rpc_jack_port_disconnect_name_t;
  580. #ifdef __MigPackStructs
  581. #pragma pack()
  582. #endif
  583. #ifdef __MigPackStructs
  584. #pragma pack(4)
  585. #endif
  586. typedef struct {
  587. mach_msg_header_t Head;
  588. NDR_record_t NDR;
  589. kern_return_t RetCode;
  590. int result;
  591. } __Reply__rpc_jack_set_buffer_size_t;
  592. #ifdef __MigPackStructs
  593. #pragma pack()
  594. #endif
  595. #ifdef __MigPackStructs
  596. #pragma pack(4)
  597. #endif
  598. typedef struct {
  599. mach_msg_header_t Head;
  600. NDR_record_t NDR;
  601. kern_return_t RetCode;
  602. int result;
  603. } __Reply__rpc_jack_set_freewheel_t;
  604. #ifdef __MigPackStructs
  605. #pragma pack()
  606. #endif
  607. #ifdef __MigPackStructs
  608. #pragma pack(4)
  609. #endif
  610. typedef struct {
  611. mach_msg_header_t Head;
  612. NDR_record_t NDR;
  613. kern_return_t RetCode;
  614. int result;
  615. } __Reply__rpc_jack_release_timebase_t;
  616. #ifdef __MigPackStructs
  617. #pragma pack()
  618. #endif
  619. #ifdef __MigPackStructs
  620. #pragma pack(4)
  621. #endif
  622. typedef struct {
  623. mach_msg_header_t Head;
  624. NDR_record_t NDR;
  625. kern_return_t RetCode;
  626. int result;
  627. } __Reply__rpc_jack_set_timebase_callback_t;
  628. #ifdef __MigPackStructs
  629. #pragma pack()
  630. #endif
  631. #ifdef __MigPackStructs
  632. #pragma pack(4)
  633. #endif
  634. typedef struct {
  635. mach_msg_header_t Head;
  636. NDR_record_t NDR;
  637. kern_return_t RetCode;
  638. } __Reply__rpc_jack_client_rt_notify_t;
  639. #ifdef __MigPackStructs
  640. #pragma pack()
  641. #endif
  642. #endif /* !__Reply__JackRPCEngine_subsystem__defined */
  643. /* union of all replies */
  644. #ifndef __ReplyUnion__JackRPCEngine_subsystem__defined
  645. #define __ReplyUnion__JackRPCEngine_subsystem__defined
  646. union __ReplyUnion__JackRPCEngine_subsystem {
  647. __Reply__rpc_jack_client_open_t Reply_rpc_jack_client_open;
  648. __Reply__rpc_jack_client_close_t Reply_rpc_jack_client_close;
  649. __Reply__rpc_jack_client_activate_t Reply_rpc_jack_client_activate;
  650. __Reply__rpc_jack_client_deactivate_t Reply_rpc_jack_client_deactivate;
  651. __Reply__rpc_jack_port_register_t Reply_rpc_jack_port_register;
  652. __Reply__rpc_jack_port_unregister_t Reply_rpc_jack_port_unregister;
  653. __Reply__rpc_jack_port_connect_t Reply_rpc_jack_port_connect;
  654. __Reply__rpc_jack_port_disconnect_t Reply_rpc_jack_port_disconnect;
  655. __Reply__rpc_jack_port_connect_name_t Reply_rpc_jack_port_connect_name;
  656. __Reply__rpc_jack_port_disconnect_name_t Reply_rpc_jack_port_disconnect_name;
  657. __Reply__rpc_jack_set_buffer_size_t Reply_rpc_jack_set_buffer_size;
  658. __Reply__rpc_jack_set_freewheel_t Reply_rpc_jack_set_freewheel;
  659. __Reply__rpc_jack_release_timebase_t Reply_rpc_jack_release_timebase;
  660. __Reply__rpc_jack_set_timebase_callback_t Reply_rpc_jack_set_timebase_callback;
  661. __Reply__rpc_jack_client_rt_notify_t Reply_rpc_jack_client_rt_notify;
  662. };
  663. #endif /* !__RequestUnion__JackRPCEngine_subsystem__defined */
  664. #ifndef subsystem_to_name_map_JackRPCEngine
  665. #define subsystem_to_name_map_JackRPCEngine \
  666. { "rpc_jack_client_open", 1000 },\
  667. { "rpc_jack_client_close", 1001 },\
  668. { "rpc_jack_client_activate", 1002 },\
  669. { "rpc_jack_client_deactivate", 1003 },\
  670. { "rpc_jack_port_register", 1004 },\
  671. { "rpc_jack_port_unregister", 1005 },\
  672. { "rpc_jack_port_connect", 1006 },\
  673. { "rpc_jack_port_disconnect", 1007 },\
  674. { "rpc_jack_port_connect_name", 1008 },\
  675. { "rpc_jack_port_disconnect_name", 1009 },\
  676. { "rpc_jack_set_buffer_size", 1010 },\
  677. { "rpc_jack_set_freewheel", 1011 },\
  678. { "rpc_jack_release_timebase", 1012 },\
  679. { "rpc_jack_set_timebase_callback", 1013 },\
  680. { "rpc_jack_client_rt_notify", 1014 }
  681. #endif
  682. #ifdef __AfterMigUserHeader
  683. __AfterMigUserHeader
  684. #endif /* __AfterMigUserHeader */
  685. #endif /* _JackRPCEngine_user_ */