📄 printk.c
字号:
/*文件名: panik.c
说明: 内核中打印信息
作者: marsinfan
日期: 2005/12/20
*/
#include <stdarg.h>
#include <fairysky/types.h>
static char buf[1024];
static unsigned long log_page = 0;
static unsigned long log_start = 0;
static unsigned long log_size = 0;
extern int vsprintf(char *buf, const char *fmt, va_list args);
extern void console_print(const char *);
//在内核中在屏幕上直接打印信息
int printk(const char *fmt, ...)
{
va_list args;
int i, j;
char *p;
va_start(args, fmt);
i = vsprintf(buf, fmt, args);
va_end(args);
for (j = 0; j < i && log_page ; j++) {
p = (char *) log_page + (4095 & (log_start + log_size));
*p = buf[j];
if (log_size < 4096) {
log_size++;
} else {
log_start++;
}
}
//if (log_page)
// wake_up(&log_wait);
console_print(buf);
return i;
}
int sprintf(char *str, const char *fmt, ...)
{
va_list args;
int i;
va_start(args, fmt);
i = vsprintf(str, fmt, args);
va_end(args);
return i;
}
void print_hex(void *buf, size_t count)
{
int i;
for (i = 0; i < count; i++) {
if (i != 0) {
if (i % 16 == 0) {
printk("\n");
} else if (i % 8 == 0) {
printk(" ");
}
}
printk("%02X ", ((u8 *)buf)[i]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -