make the echo idl match the win32 IDL again
[samba.git] / source4 / librpc / idl / echo.idl
1 [
2 uuid(60a15ec5-4de8-11d7-a637-005056a20182),
3 version(1.0)
4 ]
5 interface rpcecho
6 {
7         /* Add one to an integer */
8         void echo_AddOne(
9                 [in,out,ref] uint32 *v
10         );
11         /* Echo an array of bytes back at the caller */
12         void echo_EchoData(
13                 [in] uint32 len,
14                 [in] [size_is(len)] uint8 in_data[],
15                 [out] [size_is(len)] uint8 out_data[]
16         );
17         /* Sink data to the server */
18         void echo_SinkData(
19                 [in] uint32 len,
20                 [in,ref,size_is(len)] uint8 *data
21         );
22         /* Source data from server */
23         void echo_SourceData(
24                 [in] uint32 len,
25                 [out,ref,size_is(len)] uint8 *data
26         );
27
28
29         /* test strings */
30         void TestCall (
31                 [in]       unistr *s1,
32                 [out]      unistr *s2
33                 );
34
35
36         /* test some alignment issues */
37         typedef struct {
38                 uint8 v;
39         } echo_info1;
40
41         typedef struct {
42                 uint16 v;
43         } echo_info2;
44
45         typedef struct {
46                 uint32 v;
47         } echo_info3;
48
49         typedef struct {
50                 HYPER_T v;
51         } echo_info4;
52
53         typedef struct {
54                 uint8 v1;
55                 HYPER_T v2;
56         } echo_info5;
57
58         typedef struct {
59                 uint8 v1;
60                 echo_info1 info1;
61         } echo_info6;
62
63         typedef union {
64                 [case(1)]  echo_info1 info1;
65         } echo_XXX;
66
67         typedef struct {
68                 uint8 v1;
69                 echo_info4 info4;
70         } echo_info7;
71
72         typedef union {
73                 [case(1)]  echo_info1 info1;
74                 [case(2)]  echo_info2 info2;
75                 [case(3)]  echo_info3 info3;
76                 [case(4)]  echo_info4 info4;
77                 [case(5)]  echo_info5 info5;
78                 [case(6)]  echo_info6 info6;
79                 [case(7)]  echo_info7 info7;
80         } echo_Info;
81
82         NTSTATUS TestCall2 (
83                      [in]                    uint16 level,
84                      [out,switch_is(level)]  echo_Info *info
85                 );
86 }