/**@brief Verbose mode*/\r
static int verbose = 0;\r
\r
+/**@brief Winpart mode*/\r
+static int winpart = 0;\r
+\r
+/**@brief Blockdev handle*/\r
+static struct ext4_blockdev *bd;\r
+\r
static char read_buffer[MAX_RW_BUFFER];\r
static char write_buffer[MAX_RW_BUFFER];\r
\r
--image (-i) - ext2/3/4 image file \n\\r
--port (-p) - server port \n\\r
--verbose (-v) - verbose mode \n\\r
+ --winpart (-w) - windows_partition mode \n\\r
\n";\r
\r
\r
{"image", required_argument, 0, 'i'},\r
{"port", required_argument, 0, 'p'},\r
{"verbose", required_argument, 0, 'v'},\r
+ {"winpart", required_argument, 0, 'w'},\r
{0, 0, 0, 0}\r
};\r
\r
- while(-1 != (c = getopt_long (argc, argv, "i:p:v:", long_options, &option_index))) {\r
+ while(-1 != (c = getopt_long (argc, argv, "i:p:v:w:", long_options, &option_index))) {\r
\r
switch(c){\r
case 'i':\r
case 'v':\r
verbose = atoi(optarg);\r
break;\r
+ case 'w':\r
+ winpart = atoi(optarg);\r
+ break;\r
default:\r
printf("%s", usage);\r
return false;\r
if(!parse_opt(argc, argv))\r
return -1;\r
\r
- ext4_filedev_filename(ext4_fname);\r
listenfd = server_open();\r
\r
printf("lwext4_server: listening on port: %d\n", connection_port);\r
\r
int _device_register(char *p)\r
{\r
- int bd;\r
+ int dev;\r
int cache_mode;\r
char dev_name[32];\r
\r
- if(sscanf(p, "%d %d %s", &bd, &cache_mode, dev_name) != 3){\r
+ if(sscanf(p, "%d %d %s", &dev, &cache_mode, dev_name) != 3){\r
printf("Param list error\n");\r
return -1;\r
}\r
\r
- return ext4_device_register(ext4_filedev_get(), 0, dev_name);\r
+#ifdef WIN32\r
+ if(winpart){\r
+ ext4_io_raw_filename(ext4_fname);\r
+ bd = ext4_io_raw_dev_get();\r
+\r
+ }\r
+ else\r
+#endif\r
+ {\r
+ ext4_filedev_filename(ext4_fname);\r
+ bd = ext4_filedev_get();\r
+ }\r
+ return ext4_device_register(bd, 0, dev_name);\r
}\r
\r
int _mount(char *p)\r