# -*- Mode: Python -*-
# vim: filetype=python

##
# *****************
# Common data types
# *****************
##

##
# @IoOperationType:
#
# An enumeration of the I/O operation types
#
# @read: read operation
#
# @write: write operation
#
# Since: 2.1
##
{ 'enum': 'IoOperationType',
  'data': [ 'read', 'write' ] }

##
# @OnOffAuto:
#
# An enumeration of three options: on, off, and auto
#
# @auto: QEMU selects the value between on and off
#
# @on: Enabled
#
# @off: Disabled
#
# Since: 2.2
##
{ 'enum': 'OnOffAuto',
  'data': [ 'auto', 'on', 'off' ] }

##
# @OnOffSplit:
#
# An enumeration of three values: on, off, and split
#
# @on: Enabled
#
# @off: Disabled
#
# @split: Mixed
#
# Since: 2.6
##
{ 'enum': 'OnOffSplit',
  'data': [ 'on', 'off', 'split' ] }

##
# @StrOrNull:
#
# This is a string value or the explicit lack of a string (null
# pointer in C).  Intended for cases when 'optional absent' already
# has a different meaning.
#
# @s: the string value
#
# @n: no string value
#
# Since: 2.10
##
{ 'alternate': 'StrOrNull',
  'data': { 's': 'str',
            'n': 'null' } }

##
# @OffAutoPCIBAR:
#
# An enumeration of options for specifying a PCI BAR
#
# @off: The specified feature is disabled
#
# @auto: The PCI BAR for the feature is automatically selected
#
# @bar0: PCI BAR0 is used for the feature
#
# @bar1: PCI BAR1 is used for the feature
#
# @bar2: PCI BAR2 is used for the feature
#
# @bar3: PCI BAR3 is used for the feature
#
# @bar4: PCI BAR4 is used for the feature
#
# @bar5: PCI BAR5 is used for the feature
#
# Since: 2.12
##
{ 'enum': 'OffAutoPCIBAR',
  'data': [ 'off', 'auto', 'bar0', 'bar1', 'bar2', 'bar3', 'bar4', 'bar5' ] }

##
# @PCIELinkSpeed:
#
# An enumeration of PCIe link speeds in units of GT/s
#
# @2_5: 2.5GT/s
#
# @5: 5.0GT/s
#
# @8: 8.0GT/s
#
# @16: 16.0GT/s
#
# @32: 32.0GT/s (since 9.0)
#
# @64: 64.0GT/s (since 9.0)
#
# Since: 4.0
##
{ 'enum': 'PCIELinkSpeed',
  'data': [ '2_5', '5', '8', '16', '32', '64' ] }

##
# @PCIELinkWidth:
#
# An enumeration of PCIe link width
#
# @1: x1
#
# @2: x2
#
# @4: x4
#
# @8: x8
#
# @12: x12
#
# @16: x16
#
# @32: x32
#
# Since: 4.0
##
{ 'enum': 'PCIELinkWidth',
  'data': [ '1', '2', '4', '8', '12', '16', '32' ] }

##
# @HostMemPolicy:
#
# Host memory policy types
#
# @default: restore default policy, remove any nondefault policy
#
# @preferred: set the preferred host nodes for allocation
#
# @bind: a strict policy that restricts memory allocation to the host
#     nodes specified
#
# @interleave: memory allocations are interleaved across the set of
#     host nodes specified
#
# Since: 2.1
##
{ 'enum': 'HostMemPolicy',
  'data': [ 'default', 'preferred', 'bind', 'interleave' ] }

##
# @NetFilterDirection:
#
# Indicates whether a netfilter is attached to a netdev's transmit
# queue or receive queue or both.
#
# @all: the filter is attached both to the receive and the transmit
#     queue of the netdev (default).
#
# @rx: the filter is attached to the receive queue of the netdev,
#     where it will receive packets sent to the netdev.
#
# @tx: the filter is attached to the transmit queue of the netdev,
#     where it will receive packets sent by the netdev.
#
# Since: 2.5
##
{ 'enum': 'NetFilterDirection',
  'data': [ 'all', 'rx', 'tx' ] }

##
# @GrabToggleKeys:
#
# Key combinations to toggle input-linux between host and guest.
#
# @ctrl-ctrl: left and right control key
#
# @alt-alt: left and right alt key
#
# @shift-shift: left and right shift key
#
# @meta-meta: left and right meta key
#
# @scrolllock: scroll lock key
#
# @ctrl-scrolllock: either control key and scroll lock key
#
# Since: 4.0
##
{ 'enum': 'GrabToggleKeys',
  'data': [ 'ctrl-ctrl', 'alt-alt', 'shift-shift','meta-meta', 'scrolllock',
            'ctrl-scrolllock' ] }

##
# @HumanReadableText:
#
# @human-readable-text: Formatted output intended for humans.
#
# Since: 6.2
##
{ 'struct': 'HumanReadableText',
  'data': { 'human-readable-text': 'str' } }

##
# @EndianMode:
#
# @unspecified: Endianness not specified
#
# @little: Little endianness
#
# @big: Big endianness
#
# Since: 10.0
##
{ 'enum': 'EndianMode',
  'data': [ 'unspecified', 'little', 'big' ] }
