diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/kernel/serial.h | 5 | ||||
| -rw-r--r-- | include/kernel/tty.h | 26 | ||||
| -rw-r--r-- | include/limits.h | 8 |
3 files changed, 39 insertions, 0 deletions
diff --git a/include/kernel/serial.h b/include/kernel/serial.h index dbfa7f2..6ac5d65 100644 --- a/include/kernel/serial.h +++ b/include/kernel/serial.h @@ -1,10 +1,15 @@ #ifndef _SERIAL_H #define _SERIAL_H +#include <kernel/tty.h> #include <sys/types.h> +extern struct tty_struct tty_rs; + int rsputs(char*); ssize_t rsread(void*, size_t); +void serial_init(void); + #endif diff --git a/include/kernel/tty.h b/include/kernel/tty.h new file mode 100644 index 0000000..b3f3012 --- /dev/null +++ b/include/kernel/tty.h @@ -0,0 +1,26 @@ +#ifndef _TTY_H +#define _TTY_H + +#include <kernel/sched.h> +#include <sys/types.h> + +#define TTY_BUF_SIZE 1024 + +struct tty_queue { + unsigned pread; + unsigned pwrite; + struct task_struct *waiting; + char buf[TTY_BUF_SIZE]; +}; + +struct tty_struct { + void (*init) (void); + struct tty_queue rqueue; + struct tty_queue wqueue; +}; + +ssize_t tty_read(unsigned, void*, size_t); + +void tty_init(void); + +#endif diff --git a/include/limits.h b/include/limits.h new file mode 100644 index 0000000..c2c9cc5 --- /dev/null +++ b/include/limits.h @@ -0,0 +1,8 @@ +#ifndef _LIMITS_H +#define _LIMITS_H + +#include <sys/types.h> + +#define SSIZE_MAX ((size_t) ~((size_t) 1 << (sizeof(size_t) * 8 - 1))) + +#endif |
