|
PatchworkOS
|
Logging. More...
Modules | |
| Log file | |
| Userspace kernel log file. | |
| Screen | |
| Screen logging. | |
| Panic | |
| Panic handling. | |
Macros | |
| #define | LOG_MAX_BUFFER 0x1000 |
| Maximum buffer size for a single log line. | |
| #define | LOG_DEBUG(format, ...) log_print(LOG_LEVEL_DEBUG, FILE_BASENAME, format __VA_OPT__(, ) __VA_ARGS__) |
| #define | LOG_USER(format, ...) log_print(LOG_LEVEL_USER, FILE_BASENAME, format __VA_OPT__(, ) __VA_ARGS__) |
| #define | LOG_INFO(format, ...) log_print(LOG_LEVEL_INFO, FILE_BASENAME, format __VA_OPT__(, ) __VA_ARGS__) |
| #define | LOG_WARN(format, ...) log_print(LOG_LEVEL_WARN, FILE_BASENAME, format __VA_OPT__(, ) __VA_ARGS__) |
| #define | LOG_ERR(format, ...) log_print(LOG_LEVEL_ERR, FILE_BASENAME, format __VA_OPT__(, ) __VA_ARGS__) |
| #define | LOG_PANIC(format, ...) log_print(LOG_LEVEL_PANIC, FILE_BASENAME, format __VA_OPT__(, ) __VA_ARGS__) |
Enumerations | |
| enum | log_output_t { LOG_OUTPUT_SERIAL = 1 << 0 , LOG_OUTPUT_SCREEN = 1 << 1 , LOG_OUTPUT_FILE = 1 << 2 } |
| Logging output options. More... | |
| enum | log_level_t { LOG_LEVEL_DEBUG , LOG_LEVEL_USER , LOG_LEVEL_INFO , LOG_LEVEL_WARN , LOG_LEVEL_ERR , LOG_LEVEL_PANIC } |
| Log levels. More... | |
Functions | |
| void | log_init (const boot_gop_t *gop) |
| Initialize the logging system. | |
| void | log_screen_enable (void) |
| Enable logging to the screen. | |
| void | log_screen_disable (void) |
| Disable logging to the screen. | |
| void | log_write (const char *string, uint64_t length) |
| Write directly to the log outputs without any formatting or headers. | |
| uint64_t | log_print (log_level_t level, const char *prefix, const char *format,...) |
| Print a formatted log message. | |
| uint64_t | log_vprint (log_level_t level, const char *prefix, const char *format, va_list args) |
| Print a formatted log message with a va_list. | |
Logging.
| #define LOG_DEBUG | ( | format, | |
| ... | |||
| ) | log_print(LOG_LEVEL_DEBUG, FILE_BASENAME, format __VA_OPT__(, ) __VA_ARGS__) |
| #define LOG_ERR | ( | format, | |
| ... | |||
| ) | log_print(LOG_LEVEL_ERR, FILE_BASENAME, format __VA_OPT__(, ) __VA_ARGS__) |
| #define LOG_INFO | ( | format, | |
| ... | |||
| ) | log_print(LOG_LEVEL_INFO, FILE_BASENAME, format __VA_OPT__(, ) __VA_ARGS__) |
| #define LOG_MAX_BUFFER 0x1000 |
| #define LOG_PANIC | ( | format, | |
| ... | |||
| ) | log_print(LOG_LEVEL_PANIC, FILE_BASENAME, format __VA_OPT__(, ) __VA_ARGS__) |
| #define LOG_USER | ( | format, | |
| ... | |||
| ) | log_print(LOG_LEVEL_USER, FILE_BASENAME, format __VA_OPT__(, ) __VA_ARGS__) |
| #define LOG_WARN | ( | format, | |
| ... | |||
| ) | log_print(LOG_LEVEL_WARN, FILE_BASENAME, format __VA_OPT__(, ) __VA_ARGS__) |
| enum log_level_t |
| enum log_output_t |
| void log_init | ( | const boot_gop_t * | gop | ) |
Initialize the logging system.
| gop | Pointer to the bootloader-provided GOP information for screen logging. |
Definition at line 50 of file log.c.
References COM1, com_init(), gop, isLastCharNewline, LOG_LEVEL_DEBUG, LOG_LEVEL_USER, LOG_OUTPUT_FILE, LOG_OUTPUT_SCREEN, LOG_OUTPUT_SERIAL, log_screen_init(), log_splash(), minLevel, and outputs.
Referenced by init_early().
| uint64_t log_print | ( | log_level_t | level, |
| const char * | prefix, | ||
| const char * | format, | ||
| ... | |||
| ) |
Print a formatted log message.
Definition at line 164 of file log.c.
References log_vprint(), va_end, and va_start.
| void log_screen_disable | ( | void | ) |
Disable logging to the screen.
Definition at line 85 of file log.c.
References lock, LOCK_SCOPE, and outputs.
Referenced by fb_buffer_mmap().
| void log_screen_enable | ( | void | ) |
Enable logging to the screen.
Definition at line 72 of file log.c.
References lock, LOCK_SCOPE, log_file_flush_to_screen(), LOG_OUTPUT_SCREEN, and outputs.
Referenced by panic().
| uint64_t log_vprint | ( | log_level_t | level, |
| const char * | prefix, | ||
| const char * | format, | ||
| va_list | args | ||
| ) |
Print a formatted log message with a va_list.
Definition at line 173 of file log.c.
References EINVAL, ERR, errno, lineBuffer, lock, LOCK_SCOPE, log_handle_char(), LOG_MAX_BUFFER, minLevel, and vsnprintf().
Referenced by aml_debug_error(), and log_print().
| void log_write | ( | const char * | string, |
| uint64_t | length | ||
| ) |
Write directly to the log outputs without any formatting or headers.
Definition at line 92 of file log.c.
References COM1, com_write(), log_file_write(), LOG_OUTPUT_FILE, LOG_OUTPUT_SCREEN, LOG_OUTPUT_SERIAL, log_screen_write(), and outputs.
Referenced by log_handle_char(), log_print_header(), and panic().