Subversion Repositories Kolibri OS

Rev

Rev 3067 | Rev 3306 | 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
}
85