Subversion Repositories Kolibri OS

Rev

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
}
87