diff --git a/OvmfPkg/Include/IndustryStandard/VirtioSerial.h b/OvmfPkg/Include/IndustryStandard/VirtioSerial.h new file mode 100644 index 0000000000..ffc8f84d03 --- /dev/null +++ b/OvmfPkg/Include/IndustryStandard/VirtioSerial.h @@ -0,0 +1,64 @@ +/** @file + Virtio Serial Device specific type and macro definitions. + + Copyright (C) 2013-2016, Red Hat, Inc. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef _VIRTIO_SERIAL_H_ +#define _VIRTIO_SERIAL_H_ + +#include +#include + +// +// Device Configuration +// +typedef struct { + UINT16 Cols; + UINT16 Rows; + UINT32 MaxPorts; + UINT32 EmergWrite; +} VIRTIO_SERIAL_CONFIG; + +// +// Control Queue +// +typedef struct { + UINT32 Id; + UINT16 Event; + UINT16 Value; +} VIRTIO_SERIAL_CONTROL; + +// +// Queue Identifiers +// +#define VIRTIO_SERIAL_Q_RX_PORT0 0 +#define VIRTIO_SERIAL_Q_TX_PORT0 1 +#define VIRTIO_SERIAL_Q_RX_CTRL 2 +#define VIRTIO_SERIAL_Q_TX_CTRL 3 +#define VIRTIO_SERIAL_Q_RX_BASE 4 +#define VIRTIO_SERIAL_Q_TX_BASE 5 + +// +// Feature Bits +// +#define VIRTIO_SERIAL_F_SIZE BIT0 +#define VIRTIO_SERIAL_F_MULTIPORT BIT1 +#define VIRTIO_SERIAL_F_EMERG_WRITE BIT2 + +// +// Events +// +#define VIRTIO_SERIAL_DEVICE_READY 0 +#define VIRTIO_SERIAL_DEVICE_ADD 1 +#define VIRTIO_SERIAL_DEVICE_REMOVE 2 +#define VIRTIO_SERIAL_PORT_READY 3 +#define VIRTIO_SERIAL_CONSOLE_PORT 4 +#define VIRTIO_SERIAL_RESIZE 5 +#define VIRTIO_SERIAL_PORT_OPEN 6 +#define VIRTIO_SERIAL_PORT_NAME 7 + +#endif /* _VIRTIO_SERIAL_H_ */