# -*- Mode: 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' ] }

##
# @String:
#
# A fat type wrapping 'str', to be embedded in lists.
#
# Since: 1.2
##
{ 'struct': 'String',
  'data': {
    'str': 'str' } }

##
# @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
#
# Since: 4.0
##
{ 'enum': 'PCIELinkSpeed',
  'data': [ '2_5', '5', '8', '16' ] }

##
# @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' ] }
