/* * SPDX-FileCopyrightText: 2021 Jiri Svoboda * * SPDX-License-Identifier: BSD-3-Clause */ /** @addtogroup libc * @{ */ /** @file */ #ifndef _LIBC_IO_CONSOLE_H_ #define _LIBC_IO_CONSOLE_H_ #include #include #include #include #include #include #include #include #include /** Console control structure. */ typedef struct { /** Console input file */ FILE *input; /** Console output file */ FILE *output; /** Console input session */ async_sess_t *input_sess; /** Console output session */ async_sess_t *output_sess; /** Input request call with timeout */ ipc_call_t input_call; /** Input response with timeout */ aid_t input_aid; } console_ctrl_t; extern console_ctrl_t *console_init(FILE *, FILE *); extern void console_done(console_ctrl_t *); extern bool console_kcon(void); extern void console_flush(console_ctrl_t *); extern void console_clear(console_ctrl_t *); extern errno_t console_get_size(console_ctrl_t *, sysarg_t *, sysarg_t *); extern errno_t console_get_pos(console_ctrl_t *, sysarg_t *, sysarg_t *); extern void console_set_pos(console_ctrl_t *, sysarg_t, sysarg_t); extern void console_set_style(console_ctrl_t *, uint8_t); extern void console_set_color(console_ctrl_t *, uint8_t, uint8_t, uint8_t); extern void console_set_rgb_color(console_ctrl_t *, uint32_t, uint32_t); extern void console_cursor_visibility(console_ctrl_t *, bool); extern errno_t console_set_caption(console_ctrl_t *, const char *); extern errno_t console_get_color_cap(console_ctrl_t *, sysarg_t *); extern errno_t console_get_event(console_ctrl_t *, cons_event_t *); extern errno_t console_get_event_timeout(console_ctrl_t *, cons_event_t *, usec_t *); extern errno_t console_map(console_ctrl_t *, sysarg_t, sysarg_t, charfield_t **); extern void console_unmap(console_ctrl_t *, charfield_t *); extern errno_t console_update(console_ctrl_t *, sysarg_t, sysarg_t, sysarg_t, sysarg_t); #endif /** @} */