We've split sub-schemas off qapi-schema.json to enable proper MAINTAINERS coverage, and also because the complete schema has become rather large.
The reference documentation generated with qapi2texi.py is in textual schema order, with included sub-schemas inserted at the first include directive (subsequent include directives have no effect). Our sub-schemas start with a section title (except for qapi/introspect.json, but I'm fixing that). In other words, we derive the structure of our reference documentation from the maintenance domains. The resulting structure is servicable, but it could use some love. To see the structure, run "make txt", then $ egrep '^[0-9]\.|^ --' -h docs/interop/qemu-qmp-ref.txt Output with my "[PATCH 0/3] qapi-schema: Generated doc structure fixes" applied appended for your convenience. Observations: * The section headings are generally sub-par. * We have several grab-bags of miscellanea, one at the beginning, one in the middle, and one at the end: 1.3 QAPI common definitions 1.6 Other events 1.10 QMP commands This needs to be rethought. An obvious first step is to factor out more sub-schemas along maintenance domains. I'll do that next. 1.1 Introduction 1.2 Stability Considerations 1.3 QAPI common definitions -- Enum: QapiErrorClass -- Object: VersionTriple -- Object: VersionInfo -- Command: query-version -- Object: CommandInfo -- Command: query-commands -- Enum: OnOffAuto -- Enum: OnOffSplit 1.4 QAPI crypto definitions -- Enum: QCryptoTLSCredsEndpoint -- Enum: QCryptoSecretFormat -- Enum: QCryptoHashAlgorithm -- Enum: QCryptoCipherAlgorithm -- Enum: QCryptoCipherMode -- Enum: QCryptoIVGenAlgorithm -- Enum: QCryptoBlockFormat -- Object: QCryptoBlockOptionsBase -- Object: QCryptoBlockOptionsQCow -- Object: QCryptoBlockOptionsLUKS -- Object: QCryptoBlockCreateOptionsLUKS -- Object: QCryptoBlockOpenOptions -- Object: QCryptoBlockCreateOptions -- Object: QCryptoBlockInfoBase -- Object: QCryptoBlockInfoLUKSSlot -- Object: QCryptoBlockInfoLUKS -- Object: QCryptoBlockInfoQCow -- Object: QCryptoBlockInfo 1.5 QAPI block definitions 1.5.1 QAPI block core definitions (vm unrelated) -- Object: SnapshotInfo -- Object: ImageInfoSpecificQCow2EncryptionBase -- Object: ImageInfoSpecificQCow2Encryption -- Object: ImageInfoSpecificQCow2 -- Object: ImageInfoSpecificVmdk -- Object: ImageInfoSpecific -- Object: ImageInfo -- Object: ImageCheck -- Object: MapEntry -- Object: BlockdevCacheInfo -- Object: BlockDeviceInfo -- Enum: BlockDeviceIoStatus -- Object: BlockDeviceMapEntry -- Enum: DirtyBitmapStatus -- Object: BlockDirtyInfo -- Object: BlockInfo -- Object: BlockMeasureInfo -- Command: query-block -- Object: BlockDeviceTimedStats -- Object: BlockDeviceStats -- Object: BlockStats -- Command: query-blockstats -- Enum: BlockdevOnError -- Enum: MirrorSyncMode -- Enum: BlockJobType -- Object: BlockJobInfo -- Command: query-block-jobs -- Command: block_passwd -- Command: block_resize -- Enum: NewImageMode -- Object: BlockdevSnapshotSync -- Object: BlockdevSnapshot -- Object: DriveBackup -- Object: BlockdevBackup -- Command: blockdev-snapshot-sync -- Command: blockdev-snapshot -- Command: change-backing-file -- Command: block-commit -- Command: drive-backup -- Command: blockdev-backup -- Command: query-named-block-nodes -- Command: drive-mirror -- Object: DriveMirror -- Object: BlockDirtyBitmap -- Object: BlockDirtyBitmapAdd -- Command: block-dirty-bitmap-add -- Command: block-dirty-bitmap-remove -- Command: block-dirty-bitmap-clear -- Object: BlockDirtyBitmapSha256 -- Command: x-debug-block-dirty-bitmap-sha256 -- Command: blockdev-mirror -- Command: block_set_io_throttle -- Object: BlockIOThrottle -- Command: block-stream -- Command: block-job-set-speed -- Command: block-job-cancel -- Command: block-job-pause -- Command: block-job-resume -- Command: block-job-complete -- Enum: BlockdevDiscardOptions -- Enum: BlockdevDetectZeroesOptions -- Enum: BlockdevAioOptions -- Object: BlockdevCacheOptions -- Enum: BlockdevDriver -- Object: BlockdevOptionsFile -- Object: BlockdevOptionsNull -- Object: BlockdevOptionsVVFAT -- Object: BlockdevOptionsGenericFormat -- Object: BlockdevOptionsLUKS -- Object: BlockdevOptionsGenericCOWFormat -- Enum: Qcow2OverlapCheckMode -- Object: Qcow2OverlapCheckFlags -- Alternate: Qcow2OverlapChecks -- Enum: BlockdevQcowEncryptionFormat -- Object: BlockdevQcowEncryption -- Object: BlockdevOptionsQcow -- Enum: BlockdevQcow2EncryptionFormat -- Object: BlockdevQcow2Encryption -- Object: BlockdevOptionsQcow2 -- Object: BlockdevOptionsSsh -- Enum: BlkdebugEvent -- Object: BlkdebugInjectErrorOptions -- Object: BlkdebugSetStateOptions -- Object: BlockdevOptionsBlkdebug -- Object: BlockdevOptionsBlkverify -- Enum: QuorumReadPattern -- Object: BlockdevOptionsQuorum -- Object: BlockdevOptionsGluster -- Enum: IscsiTransport -- Enum: IscsiHeaderDigest -- Object: BlockdevOptionsIscsi -- Object: BlockdevOptionsRbd -- Object: BlockdevOptionsSheepdog -- Enum: ReplicationMode -- Object: BlockdevOptionsReplication -- Enum: NFSTransport -- Object: NFSServer -- Object: BlockdevOptionsNfs -- Object: BlockdevOptionsCurlBase -- Object: BlockdevOptionsCurlHttp -- Object: BlockdevOptionsCurlHttps -- Object: BlockdevOptionsCurlFtp -- Object: BlockdevOptionsCurlFtps -- Object: BlockdevOptionsNbd -- Object: BlockdevOptionsRaw -- Object: BlockdevOptionsVxHS -- Object: BlockdevOptions -- Alternate: BlockdevRef -- Alternate: BlockdevRefOrNull -- Command: blockdev-add -- Command: blockdev-del -- Command: blockdev-open-tray -- Command: blockdev-close-tray -- Command: x-blockdev-remove-medium -- Command: x-blockdev-insert-medium -- Enum: BlockdevChangeReadOnlyMode -- Command: blockdev-change-medium -- Enum: BlockErrorAction -- Event: BLOCK_IMAGE_CORRUPTED -- Event: BLOCK_IO_ERROR -- Event: BLOCK_JOB_COMPLETED -- Event: BLOCK_JOB_CANCELLED -- Event: BLOCK_JOB_ERROR -- Event: BLOCK_JOB_READY -- Enum: PreallocMode -- Event: BLOCK_WRITE_THRESHOLD -- Command: block-set-write-threshold -- Command: x-blockdev-change 1.5.2 QAPI block definitions (vm unrelated) -- Enum: BiosAtaTranslation -- Enum: FloppyDriveType -- Object: BlockdevSnapshotInternal -- Command: blockdev-snapshot-internal-sync -- Command: blockdev-snapshot-delete-internal-sync -- Command: eject -- Command: nbd-server-start -- Command: nbd-server-add -- Command: nbd-server-stop -- Event: DEVICE_TRAY_MOVED -- Enum: QuorumOpType 1.6 Other events -- Event: SHUTDOWN -- Event: POWERDOWN -- Event: RESET -- Event: STOP -- Event: RESUME -- Event: SUSPEND -- Event: SUSPEND_DISK -- Event: WAKEUP -- Event: RTC_CHANGE -- Event: WATCHDOG -- Event: DEVICE_DELETED -- Event: NIC_RX_FILTER_CHANGED -- Event: VNC_CONNECTED -- Event: VNC_INITIALIZED -- Event: VNC_DISCONNECTED -- Event: SPICE_CONNECTED -- Event: SPICE_INITIALIZED -- Event: SPICE_DISCONNECTED -- Event: SPICE_MIGRATE_COMPLETED -- Event: MIGRATION -- Event: MIGRATION_PASS -- Event: ACPI_DEVICE_OST -- Event: BALLOON_CHANGE -- Event: GUEST_PANICKED -- Event: QUORUM_FAILURE -- Event: QUORUM_REPORT_BAD -- Event: VSERPORT_CHANGE -- Event: MEM_UNPLUG_ERROR -- Event: DUMP_COMPLETED 1.7 Rocker switch device -- Object: RockerSwitch -- Command: query-rocker -- Enum: RockerPortDuplex -- Enum: RockerPortAutoneg -- Object: RockerPort -- Command: query-rocker-ports -- Object: RockerOfDpaFlowKey -- Object: RockerOfDpaFlowMask -- Object: RockerOfDpaFlowAction -- Object: RockerOfDpaFlow -- Command: query-rocker-of-dpa-flows -- Object: RockerOfDpaGroup -- Command: query-rocker-of-dpa-groups 1.8 Tracing commands -- Enum: TraceEventState -- Object: TraceEventInfo -- Command: trace-event-get-state -- Command: trace-event-set-state 1.9 QMP introspection -- Command: query-qmp-schema -- Enum: SchemaMetaType -- Object: SchemaInfo -- Object: SchemaInfoBuiltin -- Enum: JSONType -- Object: SchemaInfoEnum -- Object: SchemaInfoArray -- Object: SchemaInfoObject -- Object: SchemaInfoObjectMember -- Object: SchemaInfoObjectVariant -- Object: SchemaInfoAlternate -- Object: SchemaInfoAlternateMember -- Object: SchemaInfoCommand -- Object: SchemaInfoEvent 1.10 QMP commands -- Command: qmp_capabilities -- Alternate: StrOrNull -- Enum: LostTickPolicy -- Command: add_client -- Object: NameInfo -- Command: query-name -- Object: KvmInfo -- Command: query-kvm -- Enum: RunState -- Object: StatusInfo -- Command: query-status -- Object: UuidInfo -- Command: query-uuid -- Object: ChardevInfo -- Command: query-chardev -- Object: ChardevBackendInfo -- Command: query-chardev-backends -- Enum: DataFormat -- Command: ringbuf-write -- Command: ringbuf-read -- Object: EventInfo -- Command: query-events -- Object: MigrationStats -- Object: XBZRLECacheStats -- Enum: MigrationStatus -- Object: MigrationInfo -- Command: query-migrate -- Enum: MigrationCapability -- Object: MigrationCapabilityStatus -- Command: migrate-set-capabilities -- Command: query-migrate-capabilities -- Enum: MigrationParameter -- Object: MigrateSetParameters -- Command: migrate-set-parameters -- Object: MigrationParameters -- Command: query-migrate-parameters -- Command: client_migrate_info -- Command: migrate-start-postcopy -- Enum: COLOMessage -- Enum: COLOMode -- Enum: FailoverStatus -- Command: x-colo-lost-heartbeat -- Object: MouseInfo -- Command: query-mice -- Enum: CpuInfoArch -- Object: CpuInfo -- Object: CpuInfoX86 -- Object: CpuInfoSPARC -- Object: CpuInfoPPC -- Object: CpuInfoMIPS -- Object: CpuInfoTricore -- Object: CpuInfoOther -- Command: query-cpus -- Object: IOThreadInfo -- Command: query-iothreads -- Enum: NetworkAddressFamily -- Object: VncBasicInfo -- Object: VncServerInfo -- Object: VncClientInfo -- Object: VncInfo -- Enum: VncPrimaryAuth -- Enum: VncVencryptSubAuth -- Object: VncServerInfo2 -- Object: VncInfo2 -- Command: query-vnc -- Command: query-vnc-servers -- Object: SpiceBasicInfo -- Object: SpiceServerInfo -- Object: SpiceChannel -- Enum: SpiceQueryMouseMode -- Object: SpiceInfo -- Command: query-spice -- Object: BalloonInfo -- Command: query-balloon -- Object: PciMemoryRange -- Object: PciMemoryRegion -- Object: PciBusInfo -- Object: PciBridgeInfo -- Object: PciDeviceClass -- Object: PciDeviceId -- Object: PciDeviceInfo -- Object: PciInfo -- Command: query-pci -- Command: quit -- Command: stop -- Command: system_reset -- Command: system_powerdown -- Command: cpu -- Command: cpu-add -- Command: memsave -- Command: pmemsave -- Command: cont -- Command: system_wakeup -- Command: inject-nmi -- Command: set_link -- Command: balloon -- Object: Abort -- Enum: ActionCompletionMode -- Object: TransactionAction -- Object: TransactionProperties -- Command: transaction -- Command: human-monitor-command -- Command: migrate_cancel -- Command: migrate_set_downtime -- Command: migrate_set_speed -- Command: migrate-set-cache-size -- Command: query-migrate-cache-size -- Object: ObjectPropertyInfo -- Command: qom-list -- Command: qom-get -- Command: qom-set -- Command: set_password -- Command: expire_password -- Command: change-vnc-password -- Command: change -- Object: ObjectTypeInfo -- Command: qom-list-types -- Object: DevicePropertyInfo -- Command: device-list-properties -- Command: migrate -- Command: migrate-incoming -- Command: xen-save-devices-state -- Command: xen-set-global-dirty-log -- Command: device_add -- Command: device_del -- Enum: DumpGuestMemoryFormat -- Command: dump-guest-memory -- Enum: DumpStatus -- Object: DumpQueryResult -- Command: query-dump -- Object: DumpGuestMemoryCapability -- Command: query-dump-guest-memory-capability -- Command: dump-skeys -- Command: netdev_add -- Command: netdev_del -- Command: object-add -- Command: object-del -- Object: NetdevNoneOptions -- Object: NetLegacyNicOptions -- Object: String -- Object: NetdevUserOptions -- Object: NetdevTapOptions -- Object: NetdevSocketOptions -- Object: NetdevL2TPv3Options -- Object: NetdevVdeOptions -- Object: NetdevDumpOptions -- Object: NetdevBridgeOptions -- Object: NetdevHubPortOptions -- Object: NetdevNetmapOptions -- Object: NetdevVhostUserOptions -- Enum: NetClientDriver -- Object: Netdev -- Object: NetLegacy -- Enum: NetLegacyOptionsType -- Object: NetLegacyOptions -- Enum: NetFilterDirection -- Object: InetSocketAddressBase -- Object: InetSocketAddress -- Object: UnixSocketAddress -- Object: VsockSocketAddress -- Object: SocketAddressLegacy -- Enum: SocketAddressType -- Object: SocketAddress -- Command: getfd -- Command: closefd -- Object: MachineInfo -- Command: query-machines -- Object: CpuDefinitionInfo -- Command: query-cpu-definitions -- Object: CpuModelInfo -- Enum: CpuModelExpansionType -- Object: CpuModelExpansionInfo -- Command: query-cpu-model-expansion -- Enum: CpuModelCompareResult -- Object: CpuModelCompareInfo -- Command: query-cpu-model-comparison -- Object: CpuModelBaselineInfo -- Command: query-cpu-model-baseline -- Object: AddfdInfo -- Command: add-fd -- Command: remove-fd -- Object: FdsetFdInfo -- Object: FdsetInfo -- Command: query-fdsets -- Object: TargetInfo -- Command: query-target -- Enum: QKeyCode -- Object: KeyValue -- Command: send-key -- Command: screendump -- Object: ChardevCommon -- Object: ChardevFile -- Object: ChardevHostdev -- Object: ChardevSocket -- Object: ChardevUdp -- Object: ChardevMux -- Object: ChardevStdio -- Object: ChardevSpiceChannel -- Object: ChardevSpicePort -- Object: ChardevVC -- Object: ChardevRingbuf -- Object: ChardevBackend -- Object: ChardevReturn -- Command: chardev-add -- Command: chardev-change -- Command: chardev-remove -- Command: chardev-send-break -- Enum: TpmModel -- Command: query-tpm-models -- Enum: TpmType -- Command: query-tpm-types -- Object: TPMPassthroughOptions -- Object: TpmTypeOptions -- Object: TPMInfo -- Command: query-tpm -- Object: AcpiTableOptions -- Enum: CommandLineParameterType -- Object: CommandLineParameterInfo -- Object: CommandLineOptionInfo -- Command: query-command-line-options -- Enum: X86CPURegister32 -- Object: X86CPUFeatureWordInfo -- Object: DummyForceArrays -- Enum: RxState -- Object: RxFilterInfo -- Command: query-rx-filter -- Enum: InputButton -- Enum: InputAxis -- Object: InputKeyEvent -- Object: InputBtnEvent -- Object: InputMoveEvent -- Object: InputEvent -- Command: input-send-event -- Enum: NumaOptionsType -- Object: NumaOptions -- Object: NumaNodeOptions -- Object: NumaDistOptions -- Object: NumaCpuOptions -- Enum: HostMemPolicy -- Object: Memdev -- Command: query-memdev -- Object: PCDIMMDeviceInfo -- Object: MemoryDeviceInfo -- Command: query-memory-devices -- Enum: ACPISlotType -- Object: ACPIOSTInfo -- Command: query-acpi-ospm-status -- Enum: WatchdogExpirationAction -- Enum: IoOperationType -- Enum: GuestPanicAction -- Enum: GuestPanicInformationType -- Object: GuestPanicInformation -- Object: GuestPanicInformationHyperV -- Command: rtc-reset-reinjection -- Enum: ReplayMode -- Command: xen-load-devices-state -- Command: xen-set-replication -- Object: ReplicationStatus -- Command: query-xen-replication-status -- Command: xen-colo-do-checkpoint -- Object: GICCapability -- Command: query-gic-capabilities -- Object: CpuInstanceProperties -- Object: HotpluggableCPU -- Command: query-hotpluggable-cpus -- Object: GuidInfo -- Command: query-vm-generation-id