Rev 3067 | Rev 3336 | 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 | |||
5 | /*#ifdef LANG_RUS |
||
6 | char *rezult_text[]={ |
||
7 | "операция успешно завершена"w, |
||
8 | "неизвестный IOCTL, неверный размер предоставляемых данных..."w, |
||
9 | "номер диска должен быть от 0 до 9"w, |
||
10 | "размер создаваемого диска слишком велик"w, |
||
11 | "размер создаваемого диска слишком мал"w, |
||
12 | "ошибка выделения памяти"w, |
||
13 | "неизвестная ошибка O_o"w, |
||
14 | 0}; |
||
15 | #else*/ |
||
16 | char *rezult_text[]={ |
||
17 | "operation compleated 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", |
||
22 | "memory allocation failed", |
||
23 | "unknown error O_o", |
||
24 | 0}; |
||
25 | //#endif |
||
26 | |||
27 | void Console_Work() |
||
28 | { |
||
29 | unsigned int disk_size, driver_rezult; |
||
30 | char size_t[256]; |
||
31 | |||
32 | strlwr(#param); |
||
33 | |||
34 | switch (param[0]) |
||
35 | { |
||
36 | case '?': //помощь по коммандам |
||
37 | case 'h': |
||
38 | debug("tmpdisk command line parameters:"); |
||
39 | debug("a[number]s[size in MB] - add RAM disk"); |
||
40 | debug("d[number] - delete RAM disk"); |
||
41 | ExitProcess(); |
||
42 | break; |
||
43 | case 'd': //удалить диск |
||
44 | debug("trying to delete disk"); |
||
45 | del_disk.DiskId = param[1]-'0'; |
||
46 | ioctl.handle = driver_handle; |
||
47 | ioctl.io_code = DEV_DEL_DISK; |
||
48 | ioctl.input = #del_disk; |
||
49 | ioctl.inp_size = sizeof(del_disk); |
||
50 | ioctl.output = 0; |
||
51 | ioctl.out_size = 0; |
||
52 | break; |
||
53 | case 'a': //добавить диск |
||
54 | debug("trying to add disk"); |
||
55 | disk_size= strchr(#param, 's'); |
||
56 | if (!disk_size) |
||
57 | { |
||
58 | add_disk.DiskSize = GetFreeRAM() / 5; |
||
59 | debug("disk size is not specified"); |
||
60 | strcpy(#size_t, "10% from free RAM will be used, new DiskSize: "); |
||
3114 | leency | 61 | strcat(#size_t, itoa(add_disk.DiskSize/2048)); |
3067 | leency | 62 | strcat(#size_t, " MB"); |
63 | debug(#size_t); |
||
64 | } |
||
65 | else |
||
66 | add_disk.DiskSize = atoi(#param+disk_size)*2048; |
||
67 | |||
68 | add_disk.DiskId = param[1]-'0'; |
||
69 | ioctl.handle = driver_handle; |
||
70 | ioctl.io_code = DEV_ADD_DISK; |
||
71 | ioctl.input = #add_disk; |
||
72 | ioctl.inp_size = sizeof(add_disk); |
||
73 | ioctl.output = 0; |
||
74 | ioctl.out_size = 0; |
||
75 | break; |
||
76 | default: |
||
77 | debug("unknown command line parameters"); |
||
78 | debug("use 'h' or '?' for help"); |
||
79 | ExitProcess(); |
||
80 | } |
||
81 | |||
82 | driver_rezult = RuleDriver(#ioctl); |
||
83 | if (driver_rezult<7) debug(rezult_text[driver_rezult]); |
||
84 | }7)> |
||
85 |