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