Rev 3336 | Rev 3869 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
3067 | leency | 1 | ///////////////////////////////////////////////////////////////////////////////////////// |
2 | ///////////////////////// ъюэёюы№ //////////////////// |
||
3 | ///////////////////////////////////////////////////////////////////////////////////////// |
||
4 | |||
3866 | punk_joker | 5 | #ifdef LANG_RUS |
3067 | leency | 6 | char *rezult_text[]={ |
3866 | punk_joker | 7 | "операция успешно завершена", |
8 | "неизвестный IOCTL, неверный размер предоставляемых данных...", |
||
9 | "номер диска должен быть от 0 до 9", |
||
10 | "размер создаваемого диска слишком велик", |
||
11 | "размер создаваемого диска слишком мал", |
||
12 | "ошибка выделения памяти", |
||
13 | "неизвестная ошибка O_o", |
||
3067 | leency | 14 | 0}; |
3866 | punk_joker | 15 | #else |
3067 | leency | 16 | char *rezult_text[]={ |
3336 | yogev_ezra | 17 | "operation completed successfully", |
3067 | leency | 18 | "unknown IOCTL code, wrong input/output size...", |
19 | "DiskId must be from 0 to 9", |
||
20 | "DiskSize is too large", |
||
3336 | yogev_ezra | 21 | "DiskSize is too small, might be too little free RAM", |
3067 | leency | 22 | "memory allocation failed", |
23 | "unknown error O_o", |
||
24 | 0}; |
||
3866 | punk_joker | 25 | #endif |
3067 | leency | 26 | |
3306 | leency | 27 | char Console_Work() |
3067 | leency | 28 | { |
29 | unsigned int disk_size, driver_rezult; |
||
30 | char size_t[256]; |
||
31 | |||
32 | strlwr(#param); |
||
3866 | punk_joker | 33 | debug(#param); |
3067 | leency | 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: "); |
||
3114 | leency | 62 | strcat(#size_t, itoa(add_disk.DiskSize/2048)); |
3067 | leency | 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]); |
||
3306 | leency | 85 | return driver_rezult; |
3067 | leency | 86 | }7)> |
87 |