/** @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 <IndustryStandard/Virtio095.h> | |
#include <IndustryStandard/Virtio10.h> | |
// | |
// 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_ */ |