kolibrios-fun/programs/system/shell/cmd/cmd_ver.c

68 lines
1.3 KiB
C
Raw Normal View History

int cmd_ver(char param[])
{
if (!strcmp(param, "kernel"))
{
char *kvbuf;
char *vA, *vB, *vC, *vD;
unsigned *Rev;
kvbuf = malloc(16);
kol_get_kernel_ver(kvbuf);
vA = kvbuf+0;
vB = kvbuf+1;
vC = kvbuf+2;
vD = kvbuf+3;
Rev = (unsigned*)(kvbuf + 5);
#if LANG_ENG
printf (" KolibriOS v%d.%d.%d.%d. Kernel SVN-rev.: %d\n\r", *vA, *vB, *vC, *vD, *Rev);
#elif LANG_RUS
printf (" KolibriOS v%d.%d.%d.%d. SVN-ॢ. <20><><EFBFBD><EFBFBD>: %d\n\r", *vA, *vB, *vC, *vD, *Rev);
#endif
free(kvbuf);
return TRUE;
}
if (!strcmp(param, "cpu"))
{
unsigned a, b, c, d;
char str[13];
str[12] = '\0';
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;
printf("%s\n\r", str);
return TRUE;
}
printf (" Shell v%s\n\r", SHELL_VERSION);
return TRUE;
}