65 lines
2.0 KiB
C
65 lines
2.0 KiB
C
//----------------------------------------------------------------------------//
|
|
// GNU GPL OS/K //
|
|
// //
|
|
// Authors: spectral` //
|
|
// NeoX //
|
|
// //
|
|
// Desc: Early terminal functions //
|
|
//----------------------------------------------------------------------------//
|
|
|
|
#ifndef _KALKERN_IO_KTERM_H
|
|
#define _KALKERN_IO_KTERM_H
|
|
|
|
#include "common/common.h"
|
|
|
|
// all available colors
|
|
enum kterm_color {
|
|
KTERM_COLOR_BLACK, KTERM_COLOR_BLUE,
|
|
KTERM_COLOR_GREEN, KTERM_COLOR_CYAN,
|
|
KTERM_COLOR_RED, KTERM_COLOR_MAGENTA,
|
|
KTERM_COLOR_BROWN, KTERM_COLOR_LGREY,
|
|
KTERM_COLOR_DARK_GREY, KTERM_COLOR_LBLUE,
|
|
KTERM_COLOR_LGREEN, KTERM_COLOR_LCYAN,
|
|
KTERM_COLOR_LRED, KTERM_COLOR_LMAGENTA,
|
|
KTERM_COLOR_LBROWN, KTERM_COLOR_WHITE
|
|
};
|
|
|
|
struct kterm {
|
|
void *kt_lock;
|
|
ushort *kt_buffer;
|
|
uchar kt_color;
|
|
size_t kt_width;
|
|
size_t kt_height;
|
|
off_t kt_curr_x;
|
|
off_t kt_curr_y;
|
|
#ifndef _NO_DEBUG
|
|
bool kt_init;
|
|
#endif
|
|
|
|
};
|
|
|
|
// current "standard" terminal
|
|
extern struct kterm *kt_stdout;
|
|
|
|
void kterm_init(void);
|
|
status_t kterm_clear(struct kterm *);
|
|
status_t kterm_putch(struct kterm *, char);
|
|
status_t kterm_print(struct kterm *, const char *);
|
|
status_t kterm_change_color(struct kterm *, uchar);
|
|
|
|
#ifdef _UNLOCKED_IO
|
|
void kterm_putch_unlocked(struct kterm *, char);
|
|
#endif
|
|
|
|
#define ktclear() kterm_clear(kt_stdout)
|
|
#define ktputch(c) kterm_putch(kt_stdout, (c))
|
|
#define ktprint(s) kterm_print(kt_stdout, (s))
|
|
#define ktchcol(c) kterm_change_color(kt_stdout, (c))
|
|
|
|
#define kterm_lock(kt)
|
|
#define kterm_trylock(kt)
|
|
#define kterm_unlock(kt)
|
|
|
|
#endif
|
|
|