diff options
author | Vladimir Chtchetkine <vchtchetkine@google.com> | 2010-08-26 09:03:54 -0700 |
---|---|---|
committer | Vladimir Chtchetkine <vchtchetkine@google.com> | 2010-08-26 09:03:54 -0700 |
commit | e13168648d5947955e0fd4fbf396f891ae53921f (patch) | |
tree | 6ca7f9f091daa6097e5b36812be87c905a243f81 /android | |
parent | 3f16680b70d6c065fd2c1672ae324a49c5d1d316 (diff) | |
download | external_qemu-e13168648d5947955e0fd4fbf396f891ae53921f.zip external_qemu-e13168648d5947955e0fd4fbf396f891ae53921f.tar.gz external_qemu-e13168648d5947955e0fd4fbf396f891ae53921f.tar.bz2 |
Moved nand and netspeed initialization from main to core.
Change-Id: Ide3914fa52f62f618d39ac20f02bce8185a6805a
Diffstat (limited to 'android')
-rw-r--r-- | android/main.c | 148 |
1 files changed, 19 insertions, 129 deletions
diff --git a/android/main.c b/android/main.c index f06d619..03d0ffd 100644 --- a/android/main.c +++ b/android/main.c @@ -577,113 +577,6 @@ write_default_keyset( void ) } } -#ifdef CONFIG_NAND_LIMITS - -static uint64_t -parse_nand_rw_limit( const char* value ) -{ - char* end; - uint64_t val = strtoul( value, &end, 0 ); - - if (end == value) { - derror( "bad parameter value '%s': expecting unsigned integer", value ); - exit(1); - } - - switch (end[0]) { - case 'K': val <<= 10; break; - case 'M': val <<= 20; break; - case 'G': val <<= 30; break; - case 0: break; - default: - derror( "bad read/write limit suffix: use K, M or G" ); - exit(1); - } - return val; -} - -static void -parse_nand_limits(char* limits) -{ - int pid = -1, signal = -1; - int64_t reads = 0, writes = 0; - char* item = limits; - - /* parse over comma-separated items */ - while (item && *item) { - char* next = strchr(item, ','); - char* end; - - if (next == NULL) { - next = item + strlen(item); - } else { - *next++ = 0; - } - - if ( !memcmp(item, "pid=", 4) ) { - pid = strtol(item+4, &end, 10); - if (end == NULL || *end) { - derror( "bad parameter, expecting pid=<number>, got '%s'", - item ); - exit(1); - } - if (pid <= 0) { - derror( "bad parameter: process identifier must be > 0" ); - exit(1); - } - } - else if ( !memcmp(item, "signal=", 7) ) { - signal = strtol(item+7,&end, 10); - if (end == NULL || *end) { - derror( "bad parameter: expecting signal=<number>, got '%s'", - item ); - exit(1); - } - if (signal <= 0) { - derror( "bad parameter: signal number must be > 0" ); - exit(1); - } - } - else if ( !memcmp(item, "reads=", 6) ) { - reads = parse_nand_rw_limit(item+6); - } - else if ( !memcmp(item, "writes=", 7) ) { - writes = parse_nand_rw_limit(item+7); - } - else { - derror( "bad parameter '%s' (see -help-nand-limits)", item ); - exit(1); - } - item = next; - } - if (pid < 0) { - derror( "bad paramater: missing pid=<number>" ); - exit(1); - } - else if (signal < 0) { - derror( "bad parameter: missing signal=<number>" ); - exit(1); - } - else if (reads == 0 && writes == 0) { - dwarning( "no read or write limit specified. ignoring -nand-limits" ); - } else { - nand_threshold* t; - - t = &android_nand_read_threshold; - t->pid = pid; - t->signal = signal; - t->counter = 0; - t->limit = reads; - - t = &android_nand_write_threshold; - t->pid = pid; - t->signal = signal; - t->counter = 0; - t->limit = writes; - } -} -#endif /* CONFIG_NAND_LIMITS */ - void emulator_help( void ) { STRALLOC_DEFINE(out); @@ -1194,11 +1087,6 @@ int main(int argc, char **argv) exit(1); } -#ifdef CONFIG_NAND_LIMITS - if (opts->nand_limits) - parse_nand_limits(opts->nand_limits); -#endif - if (opts->keyset) { parse_keyset(opts->keyset, opts); if (!android_keyset) { @@ -1249,23 +1137,6 @@ int main(int argc, char **argv) opts->netdelay = (char*)skin_network_delay; } - if ( android_parse_network_speed(opts->netspeed) < 0 ) { - fprintf(stderr, "invalid -netspeed parameter '%s', see emulator -usage\n", opts->netspeed); - emulator_help(); - } - - if ( android_parse_network_latency(opts->netdelay) < 0 ) { - fprintf(stderr, "invalid -netdelay parameter '%s', see emulator -usage\n", opts->netdelay); - emulator_help(); - } - - if (opts->netfast) { - qemu_net_download_speed = 0; - qemu_net_upload_speed = 0; - qemu_net_min_latency = 0; - qemu_net_max_latency = 0; - } - if (opts->trace) { char* tracePath = avdInfo_getTracePath(avd, opts->trace); int ret; @@ -1319,6 +1190,25 @@ int main(int argc, char **argv) } } +#ifdef CONFIG_NAND_LIMITS + if (opts->nand_limits) { + args[n++] = "-nand-limits"; + args[n++] = opts->nand_limits; + } +#endif + + if (opts->netspeed) { + args[n++] = "-netspeed"; + args[n++] = opts->netspeed; + } + if (opts->netdelay) { + args[n++] = "-netdelay"; + args[n++] = opts->netdelay; + } + if (opts->netfast) { + args[n++] = "-netfast"; + } + /* the purpose of -no-audio is to disable sound output from the emulator, * not to disable Audio emulation. So simply force the 'none' backends */ if (opts->no_audio) |