Files
mkrtos-real/mkrtos_user/lib/sys/inc/u_sys.h
2025-02-05 14:44:49 +08:00

53 lines
1.2 KiB
C

#pragma once
#include "u_types.h"
#include "u_prot.h"
typedef struct sys_info
{
umword_t sys_tick;
umword_t bootfs_start_addr;
umword_t sys_clk;
} sys_info_t;
typedef struct sys_info2
{
umword_t resv_dtbo;
umword_t cpu_usage_cur; //!< 当前cpu占用率
} sys_info2_t;
#define SYS_FLAGS_MAP_CPIO_FS 0x01
msg_tag_t sys_read_info(obj_handler_t obj, sys_info_t *info, umword_t flags);
msg_tag_t sys_read_info2(obj_handler_t obj, sys_info2_t *info, umword_t flags);
msg_tag_t sys_reboot(obj_handler_t obj);
msg_tag_t sys_mem_info(obj_handler_t obj, umword_t *total, umword_t *free);
msg_tag_t sys_dis_info(obj_handler_t obj, umword_t irq_inx);
static inline umword_t sys_read_tick(void)
{
sys_info_t info;
sys_read_info(SYS_PROT, &info, 0);
return info.sys_tick;
}
static inline umword_t sys_read_clk(void)
{
sys_info_t info;
sys_read_info(SYS_PROT, &info, 0);
return info.sys_clk;
}
static inline umword_t sys_read_dtbo(void)
{
sys_info2_t info;
sys_read_info2(SYS_PROT, &info, 0);
return info.resv_dtbo;
}
static inline umword_t sys_read_cpu_usage(void)
{
sys_info2_t info;
sys_read_info2(SYS_PROT, &info, 0);
return info.cpu_usage_cur;
}