diff options
| author | gkostka <kostka.grzegorz@gmail.com> | 2014-04-06 18:50:49 +0000 |
|---|---|---|
| committer | gkostka <kostka.grzegorz@gmail.com> | 2014-04-06 18:50:49 +0000 |
| commit | a8d8a94bfac9a6dfcbbfb463f62444f968637d5a (patch) | |
| tree | 067c95f69fc364bfe8edcdcd6ff086e80c6f535e /fs_test | |
| parent | a94addf5e3985c9773a6c0b156bbb795518a836f (diff) | |
Add windows partition mode.
Diffstat (limited to 'fs_test')
| -rw-r--r-- | fs_test/lwext4_server.c | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/fs_test/lwext4_server.c b/fs_test/lwext4_server.c index 30a7a08..72abdfd 100644 --- a/fs_test/lwext4_server.c +++ b/fs_test/lwext4_server.c @@ -45,6 +45,12 @@ static char *ext4_fname = "ext2"; /**@brief Verbose mode*/
static int verbose = 0;
+/**@brief Winpart mode*/
+static int winpart = 0;
+
+/**@brief Blockdev handle*/
+static struct ext4_blockdev *bd;
+
static char read_buffer[MAX_RW_BUFFER];
static char write_buffer[MAX_RW_BUFFER];
@@ -56,6 +62,7 @@ Usage: \n\ --image (-i) - ext2/3/4 image file \n\
--port (-p) - server port \n\
--verbose (-v) - verbose mode \n\
+ --winpart (-w) - windows_partition mode \n\
\n";
@@ -266,10 +273,11 @@ static bool parse_opt(int argc, char **argv) {"image", required_argument, 0, 'i'},
{"port", required_argument, 0, 'p'},
{"verbose", required_argument, 0, 'v'},
+ {"winpart", required_argument, 0, 'w'},
{0, 0, 0, 0}
};
- while(-1 != (c = getopt_long (argc, argv, "i:p:v:", long_options, &option_index))) {
+ while(-1 != (c = getopt_long (argc, argv, "i:p:v:w:", long_options, &option_index))) {
switch(c){
case 'i':
@@ -281,6 +289,9 @@ static bool parse_opt(int argc, char **argv) case 'v':
verbose = atoi(optarg);
break;
+ case 'w':
+ winpart = atoi(optarg);
+ break;
default:
printf("%s", usage);
return false;
@@ -300,7 +311,6 @@ int main(int argc, char *argv[]) if(!parse_opt(argc, argv))
return -1;
- ext4_filedev_filename(ext4_fname);
listenfd = server_open();
printf("lwext4_server: listening on port: %d\n", connection_port);
@@ -337,16 +347,28 @@ int main(int argc, char *argv[]) int _device_register(char *p)
{
- int bd;
+ int dev;
int cache_mode;
char dev_name[32];
- if(sscanf(p, "%d %d %s", &bd, &cache_mode, dev_name) != 3){
+ if(sscanf(p, "%d %d %s", &dev, &cache_mode, dev_name) != 3){
printf("Param list error\n");
return -1;
}
- return ext4_device_register(ext4_filedev_get(), 0, dev_name);
+#ifdef WIN32
+ if(winpart){
+ ext4_io_raw_filename(ext4_fname);
+ bd = ext4_io_raw_dev_get();
+
+ }
+ else
+#endif
+ {
+ ext4_filedev_filename(ext4_fname);
+ bd = ext4_filedev_get();
+ }
+ return ext4_device_register(bd, 0, dev_name);
}
int _mount(char *p)
|
