blob: 430d061e6e98a34bbacdbf8540b1b0185c7c73fb [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<protocol name="test_protocol">
<!--
Add new types to the end of the interface since the test depends on the
specific opcodes listed here (which are implied by the ordering).
-->
<interface name="test_interface" version="1">
<enum name="test_enum">
<entry name="entry1" value="0" />
<entry name="entry2" value="1" />
<entry name="0_starts_with_number" value="0x2" />
</enum>
<enum name="test_bitfield" bitfield="true">
<entry name="entry1" value="1" />
<entry name="entry2" value="2" />
<entry name="0_starts_with_number" value="0x4" />
</enum>
<!-- Opcode 0: uint request/event -->
<request name="uint">
<arg name="arg" type="uint"/>
</request>
<event name="uint">
<arg name="arg" type="uint"/>
</event>
<!-- Opcode 1: int request/event -->
<request name="int">
<arg name="arg" type="int"/>
</request>
<event name="int">
<arg name="arg" type="int"/>
</event>
<!-- Opcode 2: fixed request/event -->
<request name="fixed">
<arg name="arg" type="fixed"/>
</request>
<event name="fixed">
<arg name="arg" type="fixed"/>
</event>
<!-- Opcode 3: string request/event -->
<request name="string">
<arg name="arg" type="string"/>
</request>
<event name="string">
<arg name="arg" type="string"/>
</event>
<!-- Opcode 4: object request/event -->
<request name="object">
<arg name="arg" type="object"/>
</request>
<event name="object">
<arg name="arg" type="object"/>
</event>
<!-- Opcode 5: new_id request/event -->
<request name="new_id">
<arg name="arg" type="new_id" interface="test_interface"/>
</request>
<event name="new_id">
<arg name="arg" type="new_id" interface="test_inteface"/>
</event>
<!-- Opcode 6: array request/event -->
<request name="array">
<arg name="arg" type="array"/>
</request>
<event name="array">
<arg name="arg" type="array"/>
</event>
<!-- Opcode 7: handle request/event -->
<request name="handle">
<arg name="arg" type="fd"/>
</request>
<event name="handle">
<arg name="arg" type="fd"/>
</event>
<!-- Opcode 8: compound request/event -->
<request name="complex">
<arg name="uint_arg" type="uint" />
<arg name="int_arg" type="int" />
<arg name="handle_arg1" type="fd" />
<arg name="object_arg" type="object" />
<arg name="handle_arg2" type="fd" />
<arg name="string_arg" type="string" />
<arg name="array_arg" type="array" />
</request>
<event name="complex">
<arg name="uint_arg" type="uint" />
<arg name="int_arg" type="int" />
<arg name="handle_arg1" type="fd" />
<arg name="object_arg" type="object" />
<arg name="handle_arg2" type="fd" />
<arg name="string_arg" type="string" />
<arg name="array_arg" type="array" />
</event>
<!-- Opcode 9: new_id request/event with untyped interface -->
<request name="untyped_new_id">
<arg name="arg" type="new_id" />
</request>
<event name="untyped_new_id">
<arg name="arg" type="new_id" />
</event>
<!-- Summary test -->
<request name="test_summary">
<description summary="multi-line
summary">
This request takes two arguments, one with a single-line summary, and
another with a multi-line summary.
</description>
<arg name="arg1" type="int" summary="simple summary"/>
<arg name="arg2" type="int" summary="complex summary that span
multiple lines"/>
</request>
</interface>
</protocol>