+ options.log = log_level;
+}
+
+static void
+decode_memory_size(char *arg, struct argp_state *state, int memid)
+{
+ char *endptr;
+ int *dest;
+
+ if (memid == PGM_MEM_ID)
+ dest = &options.pram_size;
+ else if (memid == INT_MEM_ID)
+ dest = &options.iram_size;
+ else if (memid == EXT_MEM_ID)
+ dest = &options.xram_size;
+ else
+ exit(1); /* Programming error. */
+
+ /*
+ * Sizes versus max memory sizes will be checked when calling
+ * memory_init().
+ */
+ *dest = strtol(arg, &endptr, 0);
+
+ if (*endptr != '\0') {
+ log_err("Invalid memory size");
+ argp_usage(state);
+ }