/**
 * @file io.h
 * @brief Header file for input.c and output.c
 * 
 */
 
#ifndef IO_H_
#define IO_H_

#include "typedefs.h"
#include "sys.h"
#include "debug.h"
#include "keyboard.h"
#include "printer.h"

//symbols from input.c
int gets (char * str, const size_t len);
int getc_try (void);
int getc (void);

//symbols from output.c
unsigned int putc (const char chr);
unsigned int puts (const char * str);
unsigned int printk (const char * format, ...);
unsigned int printk_unwind (const char * format, void* arguments);

/** keyboard lock */
extern mutex_t keyboard_mtx;
/** keyboard pool */
extern cond_t keyboard_cnd;

#endif /*IO_H_*/
