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