/* Includes. */ #include "../drivers.h" #include "../libdriver/driver.h" #include #include #include #include #include /* Constants and types. */ #define LOG_SIZE (5*1024) #define SUSPENDABLE 1 struct logdevice { char log_buffer[LOG_SIZE]; int log_size, /* no. of bytes in log buffer */ log_read, /* read mark */ log_write; /* write mark */ #if SUSPENDABLE int log_proc_nr, log_source, log_iosize; /* proc that is blocking on read */ vir_bytes log_user_vir; #endif int log_selected, log_select_proc; }; /* Function prototypes. */ _PROTOTYPE( void kputc, (int c) ); _PROTOTYPE( int do_new_kmess, (message *m) ); _PROTOTYPE( int do_diagnostics, (message *m) ); _PROTOTYPE( void log_putc, (int c) );