 8c6df16ff6
			
		
	
	
		8c6df16ff6
		
	
	
	
	
		
			
			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
 |