Subversion Repositories Kolibri OS

Rev

Rev 3336 | Rev 3869 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /////////////////////////////////////////////////////////////////////////////////////////
  2. /////////////////////////                êîíñîëü                     ////////////////////
  3. /////////////////////////////////////////////////////////////////////////////////////////
  4.  
  5. #ifdef LANG_RUS
  6.         char *rezult_text[]={
  7.         "®¯¥à æ¨ï ãᯥ譮 § ¢¥à襭 ",
  8.         "­¥¨§¢¥áâ­ë© IOCTL, ­¥¢¥à­ë© à §¬¥à ¯à¥¤®áâ ¢«ï¥¬ëå ¤ ­­ëå...",
  9.         "­®¬¥à ¤¨áª  ¤®«¦¥­ ¡ëâì ®â 0 ¤® 9",
  10.         "à §¬¥à ᮧ¤ ¢ ¥¬®£® ¤¨áª  ᫨誮¬ ¢¥«¨ª",
  11.         "à §¬¥à ᮧ¤ ¢ ¥¬®£® ¤¨áª  ᫨誮¬ ¬ «",
  12.         "®è¨¡ª  ¢ë¤¥«¥­¨ï ¯ ¬ïâ¨",
  13.         "­¥¨§¢¥áâ­ ï ®è¨¡ª  O_o",
  14.         0};
  15. #else
  16.         char *rezult_text[]={
  17.         "operation completed successfully",
  18.         "unknown IOCTL code, wrong input/output size...",
  19.         "DiskId must be from 0 to 9",
  20.         "DiskSize is too large",
  21.         "DiskSize is too small, might be too little free RAM",
  22.         "memory allocation failed",
  23.         "unknown error O_o",
  24.         0};
  25. #endif
  26.  
  27. char Console_Work()
  28. {
  29.         unsigned int disk_size, driver_rezult;
  30.         char size_t[256];
  31.  
  32.         strlwr(#param);
  33.         debug(#param);
  34.        
  35.         switch (param[0])
  36.         {
  37.                 case '?': //ïîìîùü ïî êîììàíäàì
  38.                 case 'h':
  39.                         debug("tmpdisk command line parameters:");
  40.                         debug("a[number]s[size in MB] - add RAM disk");
  41.                         debug("d[number] - delete RAM disk");
  42.                         ExitProcess();
  43.                         break;
  44.                 case 'd': //óäàëèòü äèñê
  45.                         debug("trying to delete disk");
  46.                         del_disk.DiskId = param[1]-'0';
  47.                         ioctl.handle   = driver_handle;
  48.                         ioctl.io_code  = DEV_DEL_DISK;
  49.                         ioctl.input    = #del_disk;
  50.                         ioctl.inp_size = sizeof(del_disk);
  51.                         ioctl.output   = 0;
  52.                         ioctl.out_size = 0;
  53.                         break;
  54.                 case 'a': //äîáàâèòü äèñê
  55.                         debug("trying to add disk");
  56.                         disk_size= strchr(#param, 's');
  57.                         if (!disk_size)
  58.                         {
  59.                                 add_disk.DiskSize = GetFreeRAM() / 5;
  60.                                 debug("disk size is not specified");
  61.                                 strcpy(#size_t, "10% from free RAM will be used, new DiskSize: ");
  62.                                 strcat(#size_t, itoa(add_disk.DiskSize/2048));
  63.                                 strcat(#size_t, " MB");
  64.                                 debug(#size_t);
  65.                         }                              
  66.                         else
  67.                                 add_disk.DiskSize = atoi(#param+disk_size)*2048;
  68.  
  69.                         add_disk.DiskId = param[1]-'0';
  70.                         ioctl.handle   = driver_handle;
  71.                         ioctl.io_code  = DEV_ADD_DISK;
  72.                         ioctl.input    = #add_disk;
  73.                         ioctl.inp_size = sizeof(add_disk);
  74.                         ioctl.output   = 0;
  75.                         ioctl.out_size = 0;
  76.                         break;
  77.                 default:
  78.                         debug("unknown command line parameters");
  79.                         debug("use 'h' or '?' for help");
  80.                         ExitProcess();                 
  81.         }
  82.        
  83.         driver_rezult = RuleDriver(#ioctl);
  84.         if (driver_rezult<7) debug(rezult_text[driver_rezult]);
  85.         return driver_rezult;
  86. }
  87.  
  88.