mirror of
https://github.com/KolibriOS/kolibrios.git
synced 2025-09-11 13:06:43 -04:00

Kfetch command now reports - kernel ABI, - git hash (aka commit id), - release offset, - debug tag. No svn revision anymore.
66 lines
1.6 KiB
C
66 lines
1.6 KiB
C
#include "../system/kolibri.h"
|
|
|
|
void get_str_kernel_version(char *str, const char *fmt) {
|
|
struct kernel_version kv;
|
|
|
|
kol_get_kernel_ver(&kv);
|
|
char str_offset[8] = {'\0'};
|
|
if (kv.offset)
|
|
sprintf(str_offset, "+%u", kv.offset);
|
|
char str_dbgtag[4] = {'\0'};
|
|
if (kv.dbgtag)
|
|
sprintf(str_dbgtag, "-%c", kv.dbgtag);
|
|
char str_cmtid[16] = {'\0'};
|
|
if (kv.cmtid)
|
|
sprintf(str_cmtid, " (%08x)", kv.cmtid);
|
|
|
|
sprintf(str, fmt, kv.osrel[0], kv.osrel[1], kv.osrel[2], kv.osrel[3],
|
|
str_offset, str_dbgtag, str_cmtid, kv.abimaj, kv.abimin);
|
|
}
|
|
|
|
void get_str_cpu_info(char *str) {
|
|
unsigned a, b, c, d;
|
|
|
|
asm ("cpuid" :
|
|
"=a" (a),
|
|
"=b" (b),
|
|
"=c" (c),
|
|
"=d" (d):
|
|
"a"(0));
|
|
|
|
str[0] = (b&0x000000ff) >> 0;
|
|
str[1] = (b&0x0000ff00) >> 8;
|
|
str[2] = (b&0x00ff0000) >> 16;
|
|
str[3] = (b&0xff000000) >> 24;
|
|
|
|
str[4] = (d&0x000000ff) >> 0;
|
|
str[5] = (d&0x0000ff00) >> 8;
|
|
str[6] = (d&0x00ff0000) >> 16;
|
|
str[7] = (d&0xff000000) >> 24;
|
|
|
|
str[8] = (c&0x000000ff) >> 0;
|
|
str[9] = (c&0x0000ff00) >> 8;
|
|
str[10] = (c&0x00ff0000) >> 16;
|
|
str[11] = (c&0xff000000) >> 24;
|
|
str[12] = '\0';
|
|
}
|
|
|
|
int cmd_ver(char param[]) {
|
|
if (!strcmp(param, "kernel")) {
|
|
get_str_kernel_version(tmpstr, CMD_VER_FMT1);
|
|
printf(tmpstr);
|
|
return TRUE;
|
|
}
|
|
|
|
if (!strcmp(param, "cpu")) {
|
|
char str[13];
|
|
get_str_cpu_info(str);
|
|
printf("%s\n\r", str);
|
|
return TRUE;
|
|
}
|
|
|
|
printf (" Shell v%s\n\r", SHELL_VERSION);
|
|
return TRUE;
|
|
}
|
|
|