53 lines
1.2 KiB
C
53 lines
1.2 KiB
C
#pragma once
|
|
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "../base/std.h"
|
|
#include "../base/type_system/ktid.h"
|
|
#include "kprint_colors.h"
|
|
|
|
/// kprint_format
|
|
typedef u32 kp_fmt;
|
|
|
|
PACKED_ENUM(kp_dataFmt,
|
|
// 00000000 00000000 00000000 00000000
|
|
// ^^^^
|
|
// type
|
|
kp_i = 0x00000000,
|
|
kp_u = 0x00010000,
|
|
kp_h = 0x00020000,
|
|
kp_b = 0x00030000,
|
|
kp_f = 0x00040000,
|
|
kp_c = 0x00050000,
|
|
kp_s = 0x00060000,
|
|
|
|
// 00100000 00000000 00000000 00000000
|
|
// ^
|
|
// prefix/postfix flag
|
|
kp_pre=0x20000000,
|
|
kp_post=kp_pre,
|
|
|
|
// 00010000 00000000 00000000 00000000
|
|
// ^
|
|
// uppercase flag
|
|
kp_upper=0x10000000
|
|
)
|
|
|
|
#define kp_fmt_fgColorSet(FMT) (bool)((FMT&0x80000000)!=0)
|
|
#define kp_fmt_bgColorSet(FMT) (bool)((FMT&0x40000000)!=0)
|
|
#define kp_fmt_withPrefix(FMT) (bool)((FMT&kp_pre)!=0)
|
|
#define kp_fmt_withPostfix(FMT) (bool)((FMT&kp_post)!=0)
|
|
#define kp_fmt_isUpper(FMT) (bool)((FMT&kp_upper)!=0)
|
|
#define kp_fmt_fgColor(FMT) (kp_fgColor)(FMT&0x8f000000)
|
|
#define kp_fmt_bgColor(FMT) (kp_bgColor)(FMT&0x40f00000)
|
|
#define kp_fmt_dataFormat(FMT) (kp_dataFmt)(FMT&0x000f0000)
|
|
#define kp_fmt_ktid(FMT) (ktid)(FMT&0x0000ffff)
|
|
|
|
///@param f bgColor | fgColor
|
|
void kprint_setColor(kp_fmt f);
|
|
|
|
#if __cplusplus
|
|
}
|
|
#endif |