Implement the goldfish tty device as defined in https://android.googlesource.com/platform/external/qemu/+/master/docs/GOLDFISH-VIRTUAL-HARDWARE.TXT and based on the kernel driver code: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/tty/goldfish.c Signed-off-by: Laurent Vivier <laurent@vivier.eu> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20210312214145.2936082-2-laurent@vivier.eu>
36 lines
598 B
C
36 lines
598 B
C
/*
|
|
* SPDX-License-Identifer: GPL-2.0-or-later
|
|
*
|
|
* Goldfish TTY
|
|
*
|
|
* (c) 2020 Laurent Vivier <laurent@vivier.eu>
|
|
*
|
|
*/
|
|
|
|
#ifndef HW_CHAR_GOLDFISH_TTY_H
|
|
#define HW_CHAR_GOLDFISH_TTY_H
|
|
|
|
#include "qemu/fifo8.h"
|
|
#include "chardev/char-fe.h"
|
|
|
|
#define TYPE_GOLDFISH_TTY "goldfish_tty"
|
|
OBJECT_DECLARE_SIMPLE_TYPE(GoldfishTTYState, GOLDFISH_TTY)
|
|
|
|
#define GOLFISH_TTY_BUFFER_SIZE 128
|
|
|
|
struct GoldfishTTYState {
|
|
SysBusDevice parent_obj;
|
|
|
|
MemoryRegion iomem;
|
|
qemu_irq irq;
|
|
CharBackend chr;
|
|
|
|
uint32_t data_len;
|
|
uint64_t data_ptr;
|
|
bool int_enabled;
|
|
|
|
Fifo8 rx_fifo;
|
|
};
|
|
|
|
#endif
|