=================================================================== RCS file: /cvs/funnyos/dev/fcons/fconsvar.h,v retrieving revision 1.1 retrieving revision 1.9 diff -u -r1.1 -r1.9 --- funnyos/dev/fcons/fconsvar.h 2007/10/16 09:41:04 1.1 +++ funnyos/dev/fcons/fconsvar.h 2008/01/11 15:36:01 1.9 @@ -1,35 +1,47 @@ /* - * $Id: fconsvar.h,v 1.1 2007/10/16 08:41:04 init Exp $ + * $Id: fconsvar.h,v 1.9 2008/01/11 15:36:01 nbrk Exp $ */ #ifndef _DEV_FCONS_FCONSVAR_H #define _DEV_FCONS_FCONSVAR_H +#include +#include #define FCONS_WIDTH 80 #define FCONS_HEIGHT 25 -#define NFCONS 1 -struct fcons_devdata { - /* current cursor position */ - uint8_t currow; - uint8_t curcol; +struct fcons_handle { + void *fh_ownerdd; /* similar to bh_ownerdd in bus_handle; XXX kill this cause it is ugly */ + char (*getc)(void *); + void (*putc)(void *, char); }; -struct consoleops { - char (*getc)(struct device *); - void (*putc)(struct device *, char); +struct fcons_char { + char fc_char; +// struct fcons_char *fc_next; + SIMPLEQ_ENTRY(fcons_char) fc_next; }; -int fcons_devctl(struct device *devp, uint8_t ctl, void *data); -char fcons_getchar(struct device *devp); -void fcons_putchar(struct device *devp, char ch); +struct fcons_dd { + /* current cursor position */ + uint8_t fd_currow; + uint8_t fd_curcol; -/* XXX */ -//#define putchar(x) fcons_putchar() + /* input queue */ +// struct fcons_char *fd_iqueue; + SIMPLEQ_HEAD(head, fcons_char) fd_iqhead; + uint32_t fd_iqlength; + struct fcons_handle *fd_fh; +}; + + +int fcons_devctl(struct device *devp, uint8_t ctl, void *data); +char fcons_getchar(void *ddp); +void fcons_putchar(void *ddp, char ch); /* devctl stuff */ #define DCFCONS_GETCURROW 0