kolibrios-fun/programs/cmm/tmpdisk/t_console.c
Kirill Lipatov (Leency) 088f181657 tmpdisk 0.45: show error notifications from GUI, free RAM size indication
git-svn-id: svn://kolibrios.org@3306 a494cfbc-eb01-0410-851d-a64ba20cac60
2013-03-01 13:00:21 +00:00

87 lines
2.5 KiB
C

/////////////////////////////////////////////////////////////////////////////////////////
///////////////////////// êîíñîëü ////////////////////
/////////////////////////////////////////////////////////////////////////////////////////
/*#ifdef LANG_RUS
char *rezult_text[]={
"îïåðàöèÿ óñïåøíî çàâåðøåíà"w,
"íåèçâåñòíûé IOCTL, íåâåðíûé ðàçìåð ïðåäîñòàâëÿåìûõ äàííûõ..."w,
"íîìåð äèñêà äîëæåí áûòü îò 0 äî 9"w,
"ðàçìåð ñîçäàâàåìîãî äèñêà ñëèøêîì âåëèê"w,
"ðàçìåð ñîçäàâàåìîãî äèñêà ñëèøêîì ìàë"w,
"îøèáêà âûäåëåíèÿ ïàìÿòè"w,
"íåèçâåñòíàÿ îøèáêà O_o"w,
0};
#else*/
char *rezult_text[]={
"operation compleated successfully",
"unknown IOCTL code, wrong input/output size...",
"DiskId must be from 0 to 9",
"DiskSize is too large",
"DiskSize is too small, may be too less free RAM",
"memory allocation failed",
"unknown error O_o",
0};
//#endif
char Console_Work()
{
unsigned int disk_size, driver_rezult;
char size_t[256];
strlwr(#param);
switch (param[0])
{
case '?': //ïîìîùü ïî êîììàíäàì
case 'h':
debug("tmpdisk command line parameters:");
debug("a[number]s[size in MB] - add RAM disk");
debug("d[number] - delete RAM disk");
ExitProcess();
break;
case 'd': //óäàëèòü äèñê
debug("trying to delete disk");
del_disk.DiskId = param[1]-'0';
ioctl.handle = driver_handle;
ioctl.io_code = DEV_DEL_DISK;
ioctl.input = #del_disk;
ioctl.inp_size = sizeof(del_disk);
ioctl.output = 0;
ioctl.out_size = 0;
break;
case 'a': //äîáàâèòü äèñê
debug("trying to add disk");
disk_size= strchr(#param, 's');
if (!disk_size)
{
add_disk.DiskSize = GetFreeRAM() / 5;
debug("disk size is not specified");
strcpy(#size_t, "10% from free RAM will be used, new DiskSize: ");
strcat(#size_t, itoa(add_disk.DiskSize/2048));
strcat(#size_t, " MB");
debug(#size_t);
}
else
add_disk.DiskSize = atoi(#param+disk_size)*2048;
add_disk.DiskId = param[1]-'0';
ioctl.handle = driver_handle;
ioctl.io_code = DEV_ADD_DISK;
ioctl.input = #add_disk;
ioctl.inp_size = sizeof(add_disk);
ioctl.output = 0;
ioctl.out_size = 0;
break;
default:
debug("unknown command line parameters");
debug("use 'h' or '?' for help");
ExitProcess();
}
driver_rezult = RuleDriver(#ioctl);
if (driver_rezult<7) debug(rezult_text[driver_rezult]);
return driver_rezult;
}