Revision 03875444 vl.c
b/vl.c | ||
---|---|---|
142 | 142 |
//#define DEBUG_UNUSED_IOPORT |
143 | 143 |
//#define DEBUG_IOPORT |
144 | 144 |
|
145 |
#define PHYS_RAM_MAX_SIZE (2047 * 1024 * 1024) |
|
146 |
|
|
145 | 147 |
#ifdef TARGET_PPC |
146 | 148 |
#define DEFAULT_RAM_SIZE 144 |
147 | 149 |
#else |
... | ... | |
173 | 175 |
int curses; |
174 | 176 |
const char* keyboard_layout = NULL; |
175 | 177 |
int64_t ticks_per_sec; |
176 |
ram_addr_t ram_size;
|
|
178 |
int ram_size;
|
|
177 | 179 |
int pit_min_timer_count = 0; |
178 | 180 |
int nb_nics; |
179 | 181 |
NICInfo nd_table[MAX_NICS]; |
... | ... | |
6875 | 6877 |
|
6876 | 6878 |
static int ram_load_v1(QEMUFile *f, void *opaque) |
6877 | 6879 |
{ |
6878 |
int ret; |
|
6879 |
ram_addr_t i; |
|
6880 |
int i, ret; |
|
6880 | 6881 |
|
6881 | 6882 |
if (qemu_get_be32(f) != phys_ram_size) |
6882 | 6883 |
return -EINVAL; |
... | ... | |
7012 | 7013 |
|
7013 | 7014 |
static void ram_save(QEMUFile *f, void *opaque) |
7014 | 7015 |
{ |
7015 |
ram_addr_t i;
|
|
7016 |
int i;
|
|
7016 | 7017 |
RamCompressState s1, *s = &s1; |
7017 | 7018 |
uint8_t buf[10]; |
7018 | 7019 |
|
... | ... | |
7057 | 7058 |
{ |
7058 | 7059 |
RamDecompressState s1, *s = &s1; |
7059 | 7060 |
uint8_t buf[10]; |
7060 |
ram_addr_t i;
|
|
7061 |
int i;
|
|
7061 | 7062 |
|
7062 | 7063 |
if (version_id == 1) |
7063 | 7064 |
return ram_load_v1(f, opaque); |
... | ... | |
7074 | 7075 |
} |
7075 | 7076 |
if (buf[0] == 0) { |
7076 | 7077 |
if (ram_decompress_buf(s, phys_ram_base + i, BDRV_HASH_BLOCK_SIZE) < 0) { |
7077 |
fprintf(stderr, "Error while reading ram block address=0x%08" PRIx64, (uint64_t)i);
|
|
7078 |
fprintf(stderr, "Error while reading ram block address=0x%08x", i);
|
|
7078 | 7079 |
goto error; |
7079 | 7080 |
} |
7080 | 7081 |
} else |
... | ... | |
8555 | 8556 |
case QEMU_OPTION_h: |
8556 | 8557 |
help(0); |
8557 | 8558 |
break; |
8558 |
case QEMU_OPTION_m: { |
|
8559 |
uint64_t value; |
|
8560 |
char *ptr; |
|
8561 |
|
|
8562 |
value = strtoul(optarg, &ptr, 10); |
|
8563 |
switch (*ptr) { |
|
8564 |
case 0: case 'M': case 'm': |
|
8565 |
value <<= 20; |
|
8566 |
break; |
|
8567 |
case 'G': case 'g': |
|
8568 |
value <<= 30; |
|
8569 |
break; |
|
8570 |
default: |
|
8571 |
fprintf(stderr, "qemu: invalid ram size: %s\n", optarg); |
|
8559 |
case QEMU_OPTION_m: |
|
8560 |
ram_size = atoi(optarg) * 1024 * 1024; |
|
8561 |
if (ram_size <= 0) |
|
8562 |
help(1); |
|
8563 |
if (ram_size > PHYS_RAM_MAX_SIZE) { |
|
8564 |
fprintf(stderr, "qemu: at most %d MB RAM can be simulated\n", |
|
8565 |
PHYS_RAM_MAX_SIZE / (1024 * 1024)); |
|
8572 | 8566 |
exit(1); |
8573 | 8567 |
} |
8574 |
|
|
8575 |
/* On 32-bit hosts, QEMU is limited by virtual address space */ |
|
8576 |
if (value > (2047 << 20) |
|
8577 |
#ifndef USE_KQEMU |
|
8578 |
&& HOST_LONG_BITS == 32 |
|
8579 |
#endif |
|
8580 |
) { |
|
8581 |
fprintf(stderr, "qemu: at most 2047 MB RAM can be simulated\n"); |
|
8582 |
exit(1); |
|
8583 |
} |
|
8584 |
if (value != (uint64_t)(ram_addr_t)value) { |
|
8585 |
fprintf(stderr, "qemu: ram size too large\n"); |
|
8586 |
exit(1); |
|
8587 |
} |
|
8588 |
ram_size = value; |
|
8589 | 8568 |
break; |
8590 |
} |
|
8591 | 8569 |
case QEMU_OPTION_d: |
8592 | 8570 |
{ |
8593 | 8571 |
int mask; |
Also available in: Unified diff