summaryrefslogtreecommitdiff
path: root/tests/test-marshallers.proto
blob: 6ca2d4c2ebed165bf611b9f6863db54eec516ec5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
channel TestChannel {
   message {
      uint8 dummy_byte; // so structure is not aligned
      uint32 data_size;
      uint64 *data[data_size] @marshall;
   } ShortDataSubMarshall;

   message {
      int8 name[] @end;
   } ArrayMessage;

    message {
        uint8 res1 @zero;
        uint16 n;
        uint32 res2 @zero;
    } Zeroes;

    message {
        uint32 num_of_channels;
        uint16 channels[num_of_channels] @end;
    } @ctype(SpiceMsgChannels) channels_list;

    message {
        uint32 dummy[2];
        uint8 data[] @end;
    } LenMessage;

    message {
        uint8 txt1[4] @zero_terminated;
        uint8 sep1;
        uint32 txt2_len;
        uint8 *txt2[txt2_len] @zero_terminated;
        uint8 txt3[txt2_len] @to_ptr @zero_terminated;
        uint32 n;
        uint16 txt4_len;
        uint8 txt4[txt4_len] @end @zero_terminated;
    } @declare ZeroLen1;
};

protocol Spice {
    TestChannel main = 1;
};