1#ifndef __LIBK_SERIAL_H__
2#define __LIBK_SERIAL_H__
6#define SERIAL_COM1 0x3f8
7#define SERIAL_COM2 0x2f8
8#define SERIAL_COM3 0x3e8
9#define SERIAL_COM4 0x2e8
19#define serial_trace(...) serial2_printf(__VA_ARGS__)
20#define LOG_INFO(mod, fmt, ...) \
21 serial2_printf("[INFO][%s] " fmt "\n", mod, ##__VA_ARGS__)
22#define LOG_DEBUG(mod, fmt, ...) \
23 serial2_printf("[DEBUG][%s][%s:%d] " fmt "\n", mod, __FILE__, \
24 __LINE__, ##__VA_ARGS__)
25#define LOG_ERROR(mod, fmt, ...) \
26 serial2_printf("[ERROR][%s] " fmt "\n", mod, ##__VA_ARGS__)
27#define LOG_WARN(mod, fmt, ...) \
28 serial2_printf("[WARN][%s] " fmt "\n", mod, ##__VA_ARGS__)
33#define LOG2_INFO(mod, fmt, ...) \
34 serial2_printf("[INFO][%s] " fmt "\n", mod, ##__VA_ARGS__)
35#define LOG2_DEBUG(mod, fmt, ...) \
36 serial2_printf("[DEBUG][%s][%s:%d] " fmt "\n", mod, __FILE__, \
37 __LINE__, ##__VA_ARGS__)
38#define LOG2_ERROR(mod, fmt, ...) \
39 serial2_printf("[ERROR][%s] " fmt "\n", mod, ##__VA_ARGS__)
40#define LOG2_WARN(mod, fmt, ...) \
41 serial2_printf("[WARN][%s] " fmt "\n", mod, ##__VA_ARGS__)
elf_section_map uintptr_t base
int serial_is_transmit_empty(void)
void serial_printf(const char *fmt,...)
void parse_multicore(__builtin_va_list args, const char *fmt)
void serial2_printf(const char *fmt,...)
void serial_send_string(char *str)
void serial_send_number(int64_t num, int base)
kstring str(const char *str)