/** @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_ */