47 lines
1.4 KiB
C
47 lines
1.4 KiB
C
|
/*
|
||
|
Copyright (C) 2015-2019 The University of Notre Dame
|
||
|
This software is distributed under the GNU General Public License.
|
||
|
See the file LICENSE for details.
|
||
|
*/
|
||
|
|
||
|
#ifndef CONSOLE_H
|
||
|
#define CONSOLE_H
|
||
|
|
||
|
#include "kernel/types.h"
|
||
|
#include "window.h"
|
||
|
#include "device.h"
|
||
|
#include "string.h"
|
||
|
|
||
|
/*
|
||
|
console_create_root creates the very first global console that
|
||
|
is used for kernel debug output. The singleton "console_root"
|
||
|
must be statically allocated so that is usable at early
|
||
|
startup before memory allocation is available.
|
||
|
*/
|
||
|
|
||
|
extern struct console console_root;
|
||
|
|
||
|
struct console * console_create_root();
|
||
|
|
||
|
/*
|
||
|
Any number of other consoles can be created and manipulated
|
||
|
on top of existing windows.
|
||
|
*/
|
||
|
|
||
|
struct console * console_create( struct window *w );
|
||
|
struct console * console_addref( struct console *c );
|
||
|
void console_delete( struct console *c );
|
||
|
|
||
|
void console_reset( struct console *c );
|
||
|
int console_post( struct console *c, const char *data, int length );
|
||
|
int console_write( struct console *c, const char *data, int length );
|
||
|
int console_read( struct console *c, char *data, int length );
|
||
|
int console_read_nonblock( struct console *c, char *data, int length );
|
||
|
int console_getchar( struct console *c );
|
||
|
void console_putchar( struct console *c, char ch );
|
||
|
void console_putstring( struct console *c, const char *str );
|
||
|
void console_heartbeat( struct console *c );
|
||
|
void console_size( struct console *c, int *xsize, int *ysize );
|
||
|
|
||
|
#endif
|