xref: /qemu/include/hw/char/goldfish_tty.h (revision 65b4c8c759a5c1a9cf207a3deb05dfdf09277161)
18c6df16fSLaurent Vivier /*
2*65b4c8c7SPhilippe Mathieu-Daudé  * SPDX-License-Identifier: GPL-2.0-or-later
38c6df16fSLaurent Vivier  *
48c6df16fSLaurent Vivier  * Goldfish TTY
58c6df16fSLaurent Vivier  *
68c6df16fSLaurent Vivier  * (c) 2020 Laurent Vivier <laurent@vivier.eu>
78c6df16fSLaurent Vivier  *
88c6df16fSLaurent Vivier  */
98c6df16fSLaurent Vivier 
108c6df16fSLaurent Vivier #ifndef HW_CHAR_GOLDFISH_TTY_H
118c6df16fSLaurent Vivier #define HW_CHAR_GOLDFISH_TTY_H
128c6df16fSLaurent Vivier 
138c6df16fSLaurent Vivier #include "qemu/fifo8.h"
148c6df16fSLaurent Vivier #include "chardev/char-fe.h"
158c6df16fSLaurent Vivier 
168c6df16fSLaurent Vivier #define TYPE_GOLDFISH_TTY "goldfish_tty"
178c6df16fSLaurent Vivier OBJECT_DECLARE_SIMPLE_TYPE(GoldfishTTYState, GOLDFISH_TTY)
188c6df16fSLaurent Vivier 
198c6df16fSLaurent Vivier #define GOLFISH_TTY_BUFFER_SIZE 128
208c6df16fSLaurent Vivier 
218c6df16fSLaurent Vivier struct GoldfishTTYState {
228c6df16fSLaurent Vivier     SysBusDevice parent_obj;
238c6df16fSLaurent Vivier 
248c6df16fSLaurent Vivier     MemoryRegion iomem;
258c6df16fSLaurent Vivier     qemu_irq irq;
268c6df16fSLaurent Vivier     CharBackend chr;
278c6df16fSLaurent Vivier 
288c6df16fSLaurent Vivier     uint32_t data_len;
298c6df16fSLaurent Vivier     uint64_t data_ptr;
308c6df16fSLaurent Vivier     bool int_enabled;
318c6df16fSLaurent Vivier 
328c6df16fSLaurent Vivier     Fifo8 rx_fifo;
338c6df16fSLaurent Vivier };
348c6df16fSLaurent Vivier 
358c6df16fSLaurent Vivier #endif
36