Files
mkrtos-real/mkrtos_knl/inc/knl/printk.h

45 lines
801 B
C
Executable File

/**
* @file printk.h
* @author zhagnzheng (1358745329@qq.com)
* @brief
* @version 0.1
* @date 2023-09-14
*
* @copyright Copyright (c) 2023
*
*/
#pragma once
#include "kobject.h"
#include "types.h"
#include "arch.h"
/**
* @brief 向io输出一个字符
*
* @param c
*/
void putc(int c);
/**
* @brief 获取io的一个输入
*
* @return int
*/
int getc(void);
void put_bytes(const uint8_t *data, size_t len);
/**
* @brief 打印内核信息
*
* @param fmt
* @param ...
*/
void printk(const char *fmt, ...);
void printkln(const char *fmt, ...);
void dumpstack(void);
/**
* @brief 可变参数宏
*
*/
#define dbg_print_kobj(kobj, fmt, ...) printk(kobject_get_name(kobj), "[%s]" fmt, __VA_ARGS__)
#define dbg_printk(fmt, ...) printk("[%d]" fmt, sys_tick_cnt_get(), __VA_ARGS__)