X-Git-Url: https://repo.jachan.dev/qemu.git/blobdiff_plain/87ecb68bdf8a3e40ef885ddbb7ca1797dca40ebf..8de24106355d25512a8578ac83dab0c7515575b0:/qemu-char.h diff --git a/qemu-char.h b/qemu-char.h index 3f482106e7..c64fc28c2e 100644 --- a/qemu-char.h +++ b/qemu-char.h @@ -1,6 +1,7 @@ #ifndef QEMU_CHAR_H #define QEMU_CHAR_H +#include "sys-queue.h" /* character device */ #define CHR_EVENT_BREAK 0 /* serial break char */ @@ -27,6 +28,17 @@ typedef struct { #define CHR_IOCTL_PP_EPP_READ 9 #define CHR_IOCTL_PP_EPP_WRITE_ADDR 10 #define CHR_IOCTL_PP_EPP_WRITE 11 +#define CHR_IOCTL_PP_DATA_DIR 12 + +#define CHR_IOCTL_SERIAL_SET_TIOCM 13 +#define CHR_IOCTL_SERIAL_GET_TIOCM 14 + +#define CHR_TIOCM_CTS 0x020 +#define CHR_TIOCM_CAR 0x040 +#define CHR_TIOCM_DSR 0x100 +#define CHR_TIOCM_RI 0x080 +#define CHR_TIOCM_DTR 0x002 +#define CHR_TIOCM_RTS 0x004 typedef void IOEventHandler(void *opaque, int event); @@ -40,12 +52,17 @@ struct CharDriverState { void *handler_opaque; void (*chr_send_event)(struct CharDriverState *chr, int event); void (*chr_close)(struct CharDriverState *chr); + void (*chr_accept_input)(struct CharDriverState *chr); void *opaque; int focus; QEMUBH *bh; + char *label; + char *filename; + TAILQ_ENTRY(CharDriverState) next; }; -CharDriverState *qemu_chr_open(const char *filename); +CharDriverState *qemu_chr_open(const char *label, const char *filename); +void qemu_chr_close(CharDriverState *chr); void qemu_chr_printf(CharDriverState *s, const char *fmt, ...); int qemu_chr_write(CharDriverState *s, const uint8_t *buf, int len); void qemu_chr_send_event(CharDriverState *s, int event); @@ -58,6 +75,10 @@ int qemu_chr_ioctl(CharDriverState *s, int cmd, void *arg); void qemu_chr_reset(CharDriverState *s); int qemu_chr_can_read(CharDriverState *s); void qemu_chr_read(CharDriverState *s, uint8_t *buf, int len); +void qemu_chr_accept_input(CharDriverState *s); +void qemu_chr_info(void); + +extern int term_escape_char; /* async I/O support */