| alternate AltIntNum |
| tag type |
| case i: int |
| case n: number |
| alternate AltNumInt |
| tag type |
| case n: number |
| case i: int |
| alternate AltNumStr |
| tag type |
| case n: number |
| case s: str |
| alternate AltStrBool |
| tag type |
| case s: str |
| case b: bool |
| alternate AltStrInt |
| tag type |
| case s: str |
| case i: int |
| alternate AltStrNum |
| tag type |
| case s: str |
| case n: number |
| event EVENT_A None |
| boxed=False |
| event EVENT_B None |
| boxed=False |
| event EVENT_C q_obj_EVENT_C-arg |
| boxed=False |
| event EVENT_D q_obj_EVENT_D-arg |
| boxed=False |
| event EVENT_E UserDefZero |
| boxed=True |
| event EVENT_F UserDefAlternate |
| boxed=True |
| object Empty1 |
| object Empty2 |
| base Empty1 |
| enum EnumOne ['value1', 'value2', 'value3'] |
| object EventStructOne |
| member struct1: UserDefOne optional=False |
| member string: str optional=False |
| member enum2: EnumOne optional=True |
| object ForceArrays |
| member unused1: UserDefOneList optional=False |
| member unused2: UserDefTwoList optional=False |
| member unused3: TestStructList optional=False |
| enum MyEnum [] |
| object NestedEnumsOne |
| member enum1: EnumOne optional=False |
| member enum2: EnumOne optional=True |
| member enum3: EnumOne optional=False |
| member enum4: EnumOne optional=True |
| enum QEnumTwo ['value1', 'value2'] |
| prefix QENUM_TWO |
| enum QType ['none', 'qnull', 'qint', 'qstring', 'qdict', 'qlist', 'qfloat', 'qbool'] |
| prefix QTYPE |
| object TestStruct |
| member integer: int optional=False |
| member boolean: bool optional=False |
| member string: str optional=False |
| object UserDefA |
| member boolean: bool optional=False |
| member a_b: int optional=True |
| alternate UserDefAlternate |
| tag type |
| case udfu: UserDefFlatUnion |
| case s: str |
| case i: int |
| object UserDefB |
| member intb: int optional=False |
| member a-b: bool optional=True |
| object UserDefC |
| member string1: str optional=False |
| member string2: str optional=False |
| object UserDefFlatUnion |
| base UserDefUnionBase |
| tag enum1 |
| case value1: UserDefA |
| case value2: UserDefB |
| case value3: UserDefB |
| object UserDefFlatUnion2 |
| base q_obj_UserDefFlatUnion2-base |
| tag enum1 |
| case value1: UserDefC |
| case value2: UserDefB |
| object UserDefNativeListUnion |
| member type: UserDefNativeListUnionKind optional=False |
| tag type |
| case integer: q_obj_intList-wrapper |
| case s8: q_obj_int8List-wrapper |
| case s16: q_obj_int16List-wrapper |
| case s32: q_obj_int32List-wrapper |
| case s64: q_obj_int64List-wrapper |
| case u8: q_obj_uint8List-wrapper |
| case u16: q_obj_uint16List-wrapper |
| case u32: q_obj_uint32List-wrapper |
| case u64: q_obj_uint64List-wrapper |
| case number: q_obj_numberList-wrapper |
| case boolean: q_obj_boolList-wrapper |
| case string: q_obj_strList-wrapper |
| case sizes: q_obj_sizeList-wrapper |
| case any: q_obj_anyList-wrapper |
| enum UserDefNativeListUnionKind ['integer', 's8', 's16', 's32', 's64', 'u8', 'u16', 'u32', 'u64', 'number', 'boolean', 'string', 'sizes', 'any'] |
| object UserDefOne |
| base UserDefZero |
| member string: str optional=False |
| member enum1: EnumOne optional=True |
| object UserDefOptions |
| member i64: intList optional=True |
| member u64: uint64List optional=True |
| member u16: uint16List optional=True |
| member i64x: int optional=True |
| member u64x: uint64 optional=True |
| object UserDefTwo |
| member string0: str optional=False |
| member dict1: UserDefTwoDict optional=False |
| object UserDefTwoDict |
| member string1: str optional=False |
| member dict2: UserDefTwoDictDict optional=False |
| member dict3: UserDefTwoDictDict optional=True |
| object UserDefTwoDictDict |
| member userdef: UserDefOne optional=False |
| member string: str optional=False |
| object UserDefUnionBase |
| base UserDefZero |
| member string: str optional=False |
| member enum1: EnumOne optional=False |
| object UserDefZero |
| member integer: int optional=False |
| object WrapAlternate |
| member alt: UserDefAlternate optional=False |
| event __ORG.QEMU_X-EVENT __org.qemu_x-Struct |
| boxed=False |
| alternate __org.qemu_x-Alt |
| tag type |
| case __org.qemu_x-branch: str |
| case b: __org.qemu_x-Base |
| object __org.qemu_x-Base |
| member __org.qemu_x-member1: __org.qemu_x-Enum optional=False |
| enum __org.qemu_x-Enum ['__org.qemu_x-value'] |
| object __org.qemu_x-Struct |
| base __org.qemu_x-Base |
| member __org.qemu_x-member2: str optional=False |
| member wchar-t: int optional=True |
| object __org.qemu_x-Struct2 |
| member array: __org.qemu_x-Union1List optional=False |
| object __org.qemu_x-Union1 |
| member type: __org.qemu_x-Union1Kind optional=False |
| tag type |
| case __org.qemu_x-branch: q_obj_str-wrapper |
| enum __org.qemu_x-Union1Kind ['__org.qemu_x-branch'] |
| object __org.qemu_x-Union2 |
| base __org.qemu_x-Base |
| tag __org.qemu_x-member1 |
| case __org.qemu_x-value: __org.qemu_x-Struct2 |
| command __org.qemu_x-command q_obj___org.qemu_x-command-arg -> __org.qemu_x-Union1 |
| gen=True success_response=True boxed=False |
| command boxed-struct UserDefZero -> None |
| gen=True success_response=True boxed=True |
| command boxed-union UserDefNativeListUnion -> None |
| gen=True success_response=True boxed=True |
| command guest-get-time q_obj_guest-get-time-arg -> int |
| gen=True success_response=True boxed=False |
| command guest-sync q_obj_guest-sync-arg -> any |
| gen=True success_response=True boxed=False |
| object q_empty |
| object q_obj_EVENT_C-arg |
| member a: int optional=True |
| member b: UserDefOne optional=True |
| member c: str optional=False |
| object q_obj_EVENT_D-arg |
| member a: EventStructOne optional=False |
| member b: str optional=False |
| member c: str optional=True |
| member enum3: EnumOne optional=True |
| object q_obj_UserDefFlatUnion2-base |
| member integer: int optional=True |
| member string: str optional=False |
| member enum1: QEnumTwo optional=False |
| object q_obj___org.qemu_x-command-arg |
| member a: __org.qemu_x-EnumList optional=False |
| member b: __org.qemu_x-StructList optional=False |
| member c: __org.qemu_x-Union2 optional=False |
| member d: __org.qemu_x-Alt optional=False |
| object q_obj_anyList-wrapper |
| member data: anyList optional=False |
| object q_obj_boolList-wrapper |
| member data: boolList optional=False |
| object q_obj_guest-get-time-arg |
| member a: int optional=False |
| member b: int optional=True |
| object q_obj_guest-sync-arg |
| member arg: any optional=False |
| object q_obj_int16List-wrapper |
| member data: int16List optional=False |
| object q_obj_int32List-wrapper |
| member data: int32List optional=False |
| object q_obj_int64List-wrapper |
| member data: int64List optional=False |
| object q_obj_int8List-wrapper |
| member data: int8List optional=False |
| object q_obj_intList-wrapper |
| member data: intList optional=False |
| object q_obj_numberList-wrapper |
| member data: numberList optional=False |
| object q_obj_sizeList-wrapper |
| member data: sizeList optional=False |
| object q_obj_str-wrapper |
| member data: str optional=False |
| object q_obj_strList-wrapper |
| member data: strList optional=False |
| object q_obj_uint16List-wrapper |
| member data: uint16List optional=False |
| object q_obj_uint32List-wrapper |
| member data: uint32List optional=False |
| object q_obj_uint64List-wrapper |
| member data: uint64List optional=False |
| object q_obj_uint8List-wrapper |
| member data: uint8List optional=False |
| object q_obj_user_def_cmd1-arg |
| member ud1a: UserDefOne optional=False |
| object q_obj_user_def_cmd2-arg |
| member ud1a: UserDefOne optional=False |
| member ud1b: UserDefOne optional=True |
| command user_def_cmd None -> None |
| gen=True success_response=True boxed=False |
| command user_def_cmd0 Empty2 -> Empty2 |
| gen=True success_response=True boxed=False |
| command user_def_cmd1 q_obj_user_def_cmd1-arg -> None |
| gen=True success_response=True boxed=False |
| command user_def_cmd2 q_obj_user_def_cmd2-arg -> UserDefTwo |
| gen=True success_response=True boxed=False |
| doc freeform |
| body= |
| = Section |
| == subsection |
| |
| Some text foo with *strong* and _emphasis_ |
| 1. with a list |
| 2. like that @foo |
| |
| And some code: |
| | $ echo foo |
| | -> do this |
| | <- get that |
| |
| Note: is not a meta |
| doc symbol=TestStruct expr=('struct', 'TestStruct') |
| arg=integer |
| foo |
| blah |
| |
| bao |
| arg=boolean |
| bar |
| arg=string |
| baz |
| section=Example |
| -> { "execute": ... } |
| <- { "return": ... } |
| section=Since |
| 2.3 |
| section=Note |
| a note |
| body= |
| body with @var |
| doc symbol=NestedEnumsOne expr=('struct', 'NestedEnumsOne') |
| body= |
| for testing enums |
| doc symbol=MyEnum expr=('enum', 'MyEnum') |
| body= |
| An empty enum, although unusual, is currently acceptable |
| doc symbol=Empty1 expr=('struct', 'Empty1') |
| body= |
| Likewise for an empty struct, including an empty base |
| doc symbol=Empty2 expr=('struct', 'Empty2') |
| doc symbol=user_def_cmd0 expr=('command', 'user_def_cmd0') |
| doc symbol=QEnumTwo expr=('enum', 'QEnumTwo') |
| body= |
| for testing override of default naming heuristic |
| doc symbol=UserDefOne expr=('struct', 'UserDefOne') |
| body= |
| for testing nested structs |
| doc symbol=EnumOne expr=('enum', 'EnumOne') |
| doc symbol=UserDefZero expr=('struct', 'UserDefZero') |
| doc symbol=UserDefTwoDictDict expr=('struct', 'UserDefTwoDictDict') |
| doc symbol=UserDefTwoDict expr=('struct', 'UserDefTwoDict') |
| doc symbol=UserDefTwo expr=('struct', 'UserDefTwo') |
| doc symbol=ForceArrays expr=('struct', 'ForceArrays') |
| body= |
| dummy struct to force generation of array types not otherwise mentioned |
| doc symbol=UserDefA expr=('struct', 'UserDefA') |
| body= |
| for testing unions |
| Among other things, test that a name collision between branches does |
| not cause any problems (since only one branch can be in use at a time), |
| by intentionally using two branches that both have a C member 'a_b' |
| doc symbol=UserDefB expr=('struct', 'UserDefB') |
| doc symbol=UserDefFlatUnion expr=('union', 'UserDefFlatUnion') |
| doc symbol=UserDefUnionBase expr=('struct', 'UserDefUnionBase') |
| doc symbol=UserDefFlatUnion2 expr=('union', 'UserDefFlatUnion2') |
| body= |
| this variant of UserDefFlatUnion defaults to a union that uses members with |
| allocated types to test corner cases in the cleanup/dealloc visitor |
| doc symbol=WrapAlternate expr=('struct', 'WrapAlternate') |
| doc symbol=UserDefAlternate expr=('alternate', 'UserDefAlternate') |
| doc symbol=UserDefC expr=('struct', 'UserDefC') |
| doc symbol=AltStrBool expr=('alternate', 'AltStrBool') |
| doc symbol=AltStrNum expr=('alternate', 'AltStrNum') |
| doc symbol=AltNumStr expr=('alternate', 'AltNumStr') |
| doc symbol=AltStrInt expr=('alternate', 'AltStrInt') |
| doc symbol=AltIntNum expr=('alternate', 'AltIntNum') |
| doc symbol=AltNumInt expr=('alternate', 'AltNumInt') |
| doc symbol=UserDefNativeListUnion expr=('union', 'UserDefNativeListUnion') |
| body= |
| for testing native lists |
| doc symbol=user_def_cmd expr=('command', 'user_def_cmd') |
| doc symbol=user_def_cmd1 expr=('command', 'user_def_cmd1') |
| doc symbol=user_def_cmd2 expr=('command', 'user_def_cmd2') |
| doc freeform |
| body= |
| Another comment |
| doc symbol=guest-get-time expr=('command', 'guest-get-time') |
| arg=a |
| an integer |
| arg=b |
| #optional integer |
| section=Returns |
| returns something |
| section=Example |
| -> { "execute": "guest-get-time", ... } |
| <- { "return": "42" } |
| body= |
| @guest-get-time body |
| doc symbol=guest-sync expr=('command', 'guest-sync') |
| doc symbol=boxed-struct expr=('command', 'boxed-struct') |
| doc symbol=boxed-union expr=('command', 'boxed-union') |
| doc symbol=UserDefOptions expr=('struct', 'UserDefOptions') |
| body= |
| For testing integer range flattening in opts-visitor. The following schema |
| corresponds to the option format: |
| |
| -userdef i64=3-6,i64=-5--1,u64=2,u16=1,u16=7-12 |
| |
| For simplicity, this example doesn't use [type=]discriminator nor optargs |
| specific to discriminator values. |
| doc symbol=EventStructOne expr=('struct', 'EventStructOne') |
| doc symbol=EVENT_A expr=('event', 'EVENT_A') |
| doc symbol=EVENT_B expr=('event', 'EVENT_B') |
| doc symbol=EVENT_C expr=('event', 'EVENT_C') |
| doc symbol=EVENT_D expr=('event', 'EVENT_D') |
| doc symbol=EVENT_E expr=('event', 'EVENT_E') |
| doc symbol=EVENT_F expr=('event', 'EVENT_F') |
| doc symbol=__org.qemu_x-Enum expr=('enum', '__org.qemu_x-Enum') |
| doc symbol=__org.qemu_x-Base expr=('struct', '__org.qemu_x-Base') |
| doc symbol=__org.qemu_x-Struct expr=('struct', '__org.qemu_x-Struct') |
| doc symbol=__org.qemu_x-Union1 expr=('union', '__org.qemu_x-Union1') |
| doc symbol=__org.qemu_x-Struct2 expr=('struct', '__org.qemu_x-Struct2') |
| doc symbol=__org.qemu_x-Union2 expr=('union', '__org.qemu_x-Union2') |
| doc symbol=__org.qemu_x-Alt expr=('alternate', '__org.qemu_x-Alt') |
| doc symbol=__ORG.QEMU_X-EVENT expr=('event', '__ORG.QEMU_X-EVENT') |
| doc symbol=__org.qemu_x-command expr=('command', '__org.qemu_x-command') |