/***************************************************************************** * @copyright 1997-2050, . POWER SUPPLY CO., LTD. * @file kit_core.h * @brief xx功能 * @author Gary * @date 2024-09-21 * @remark *****************************************************************************/ #ifndef KIT_CORE_H #define KIT_CORE_H #define RUNIN_MAC 0 // 实机运行 #define RUNIN_VM 1 // 虚拟机 #include #include #include #include #include "kit_log.h" // 定义一个结构体表示一个 CPU 时间 typedef struct cpu_time { uint64_t user; // 用户态时间 uint64_t nice; // 低优先级用户态时间 uint64_t system; // 内核态时间 uint64_t idle; // 空闲时间 uint64_t iowait; // 等待 I/O 完成时间 uint64_t irq; // 硬中断时间 uint64_t softirq;// 软中断时间 uint64_t steal; // 被其他虚拟机偷走的时间 } cpu_time_t; // 定义一个结构体表示内存信息 typedef struct memory_info { uint64_t total; // 总内存大小 uint64_t free; // 空闲内存大小 uint64_t available; // 可用内存大小 uint64_t buffers; // 缓冲区内存大小 uint64_t cached; // 缓存内存大小 } memory_info_t; /***************************************************************************** * @brief 通过管道执行shell命令 (使用 system) * @param[in] cmd:shell命令 * @param[in] buffer:读取执行结果 * @param[in] buffer_size:读取执行结果长度 * @return 1-执行错误 0-执行成功 *****************************************************************************/ int kit_popen_exec(const char *cmd, char* buffer, size_t buffer_size); /***************************************************************************** * @brief 获取EMS的SN号 * @param[in] serial:返回SN号 * @return 1-执行错误 0-执行成功 *****************************************************************************/ int kit_get_ems_sn(char serial[128]); // 获取系统 CPU 时间 void getSysCpuTime(cpu_time_t *time); // 获取指定进程的 CPU 时间 void getProCpuTime(cpu_time_t *time, pid_t pid); // 获取内存信息的函数 void getMemInfo(memory_info_t *info); // 计算当前进程内存占用 double calculateProcMemUsage(memory_info_t info, pid_t pid); #endif // KIT_CORE_H