r18618: * remove svn:externals
[Samba/bb.git] / source / librpc / idl / echo.idl
blob80123f992246e2935e4695431848d5f0e2ce2967
3 uuid("60a15ec5-4de8-11d7-a637-005056a20182"),
4 endpoint("ncacn_np:[\\pipe\\rpcecho]", "ncacn_ip_tcp:", "ncalrpc:"),
5 pointer_default(unique),
6 version(1.0),
7 helpstring("Simple echo pipe"),
8 keepref
10 interface rpcecho
12 /* Add one to an integer */
13 void echo_AddOne(
14 [in] uint32 in_data,
15 [out] uint32 *out_data
17 /* Echo an array of bytes back at the caller */
18 void echo_EchoData(
19 [in] uint32 len,
20 [in] [size_is(len)] uint8 in_data[],
21 [out] [size_is(len)] uint8 out_data[]
23 /* Sink data to the server */
24 void echo_SinkData(
25 [in] uint32 len,
26 [in,size_is(len)] uint8 data[]
28 /* Source data from server */
29 void echo_SourceData(
30 [in] uint32 len,
31 [out,size_is(len)] uint8 data[]
34 /* test strings */
35 void echo_TestCall (
36 [in,string,charset(UTF16)] uint16 *s1,
37 [out,string,charset(UTF16)] uint16 **s2
41 /* test some alignment issues */
42 typedef struct {
43 uint8 v;
44 } echo_info1;
46 typedef struct {
47 uint16 v;
48 } echo_info2;
50 typedef struct {
51 uint32 v;
52 } echo_info3;
54 typedef struct {
55 hyper v;
56 } echo_info4;
58 typedef struct {
59 uint8 v1;
60 hyper v2;
61 } echo_info5;
63 typedef struct {
64 uint8 v1;
65 echo_info1 info1;
66 } echo_info6;
68 typedef struct {
69 uint8 v1;
70 echo_info4 info4;
71 } echo_info7;
73 typedef [switch_type(uint16)] union {
74 [case(1)] echo_info1 info1;
75 [case(2)] echo_info2 info2;
76 [case(3)] echo_info3 info3;
77 [case(4)] echo_info4 info4;
78 [case(5)] echo_info5 info5;
79 [case(6)] echo_info6 info6;
80 [case(7)] echo_info7 info7;
81 } echo_Info;
83 NTSTATUS echo_TestCall2 (
84 [in] uint16 level,
85 [out,switch_is(level)] echo_Info *info
88 uint32 echo_TestSleep(
89 [in] uint32 seconds
92 typedef enum {
93 ECHO_ENUM1 = 1,
94 ECHO_ENUM2 = 2
95 } echo_Enum1;
97 typedef [v1_enum] enum {
98 ECHO_ENUM1_32 = 1,
99 ECHO_ENUM2_32 = 2
100 } echo_Enum1_32;
102 typedef struct {
103 echo_Enum1 e1;
104 echo_Enum1_32 e2;
105 } echo_Enum2;
107 typedef [switch_type(uint16)] union {
108 [case(ECHO_ENUM1)] echo_Enum1 e1;
109 [case(ECHO_ENUM2)] echo_Enum2 e2;
110 } echo_Enum3;
112 void echo_TestEnum(
113 [in,out,ref] echo_Enum1 *foo1,
114 [in,out,ref] echo_Enum2 *foo2,
115 [in,out,ref,switch_is(*foo1)] echo_Enum3 *foo3
118 typedef struct {
119 uint32 x;
120 [size_is(x)] uint16 surrounding[*];
121 } echo_Surrounding;
123 void echo_TestSurrounding(
124 [in,out,ref] echo_Surrounding *data
127 uint16 echo_TestDoublePointer([in] uint16 ***data);