Revision 03875444

b/cpu-all.h
700 700

  
701 701
/* page related stuff */
702 702

  
703
#define TARGET_PAGE_SIZE (1UL << TARGET_PAGE_BITS)
703
#define TARGET_PAGE_SIZE (1 << TARGET_PAGE_BITS)
704 704
#define TARGET_PAGE_MASK ~(TARGET_PAGE_SIZE - 1)
705 705
#define TARGET_PAGE_ALIGN(addr) (((addr) + TARGET_PAGE_SIZE - 1) & TARGET_PAGE_MASK)
706 706

  
......
806 806
int cpu_inl(CPUState *env, int addr);
807 807
#endif
808 808

  
809
/* address in the RAM (different from a physical address) */
810
typedef unsigned long ram_addr_t;
811

  
812 809
/* memory API */
813 810

  
814
extern ram_addr_t phys_ram_size;
811
extern int phys_ram_size;
815 812
extern int phys_ram_fd;
816 813
extern uint8_t *phys_ram_base;
817 814
extern uint8_t *phys_ram_dirty;
818
extern ram_addr_t ram_size;
819 815

  
820 816
/* physical memory access */
821 817
#define TLB_INVALID_MASK   (1 << 3)
......
837 833
typedef uint32_t CPUReadMemoryFunc(void *opaque, target_phys_addr_t addr);
838 834

  
839 835
void cpu_register_physical_memory(target_phys_addr_t start_addr,
840
                                  ram_addr_t size,
841
                                  ram_addr_t phys_offset);
842
ram_addr_t cpu_get_physical_page_desc(target_phys_addr_t addr);
843
ram_addr_t qemu_ram_alloc(ram_addr_t);
836
                                  unsigned long size,
837
                                  unsigned long phys_offset);
838
uint32_t cpu_get_physical_page_desc(target_phys_addr_t addr);
839
ram_addr_t qemu_ram_alloc(unsigned int size);
844 840
void qemu_ram_free(ram_addr_t addr);
845 841
int cpu_register_io_memory(int io_index,
846 842
                           CPUReadMemoryFunc **mem_read,
b/cpu-defs.h
76 76
#error TARGET_PHYS_ADDR_BITS undefined
77 77
#endif
78 78

  
79
/* address in the RAM (different from a physical address) */
80
typedef unsigned long ram_addr_t;
81

  
79 82
#define HOST_LONG_SIZE (HOST_LONG_BITS / 8)
80 83

  
81 84
#define EXCP_INTERRUPT 	0x10000 /* async interruption */
b/exec-all.h
82 82
void cpu_resume_from_signal(CPUState *env1, void *puc);
83 83
void cpu_exec_init(CPUState *env);
84 84
int page_unprotect(target_ulong address, unsigned long pc, void *puc);
85
void tb_invalidate_phys_page_range(target_phys_addr_t start, target_phys_addr_t end,
85
void tb_invalidate_phys_page_range(target_ulong start, target_ulong end,
86 86
                                   int is_cpu_write_access);
87 87
void tb_invalidate_page_range(target_ulong start, target_ulong end);
88 88
void tlb_flush_page(CPUState *env, target_ulong addr);
b/exec.c
74 74
#define TARGET_VIRT_ADDR_SPACE_BITS 42
75 75
#elif defined(TARGET_PPC64)
76 76
#define TARGET_PHYS_ADDR_SPACE_BITS 42
77
#elif defined(TARGET_X86_64) && !defined(USE_KQEMU)
78
#define TARGET_PHYS_ADDR_SPACE_BITS 40
79
#elif defined(TARGET_I386) && !defined(USE_KQEMU)
80
#define TARGET_PHYS_ADDR_SPACE_BITS 36
81 77
#else
82 78
/* Note: for compatibility with kqemu, we use 32 bits for x86_64 */
83 79
#define TARGET_PHYS_ADDR_SPACE_BITS 32
......
92 88
uint8_t code_gen_buffer[CODE_GEN_BUFFER_SIZE] __attribute__((aligned (32)));
93 89
uint8_t *code_gen_ptr;
94 90

  
95
ram_addr_t phys_ram_size;
91
int phys_ram_size;
96 92
int phys_ram_fd;
97 93
uint8_t *phys_ram_base;
98 94
uint8_t *phys_ram_dirty;
......
117 113

  
118 114
typedef struct PhysPageDesc {
119 115
    /* offset in host memory of the page + io_index in the low 12 bits */
120
    ram_addr_t phys_offset;
116
    uint32_t phys_offset;
121 117
} PhysPageDesc;
122 118

  
123 119
#define L2_BITS 10
......
128 124
 */
129 125
#define L1_BITS (TARGET_VIRT_ADDR_SPACE_BITS - L2_BITS - TARGET_PAGE_BITS)
130 126
#else
131
#define L1_BITS (TARGET_PHYS_ADDR_SPACE_BITS - L2_BITS - TARGET_PAGE_BITS)
127
#define L1_BITS (32 - L2_BITS - TARGET_PAGE_BITS)
132 128
#endif
133 129

  
134
#undef L1_BITS
135
#undef L2_BITS
136
#define L1_BITS 13
137
#define L2_BITS 13
138

  
139 130
#define L1_SIZE (1 << L1_BITS)
140 131
#define L2_SIZE (1 << L2_BITS)
141 132

  
......
243 234
#endif
244 235
}
245 236

  
246
static inline PageDesc *page_find_alloc(target_ulong index)
237
static inline PageDesc *page_find_alloc(unsigned int index)
247 238
{
248 239
    PageDesc **lp, *p;
249 240

  
......
258 249
    return p + (index & (L2_SIZE - 1));
259 250
}
260 251

  
261
static inline PageDesc *page_find(target_ulong index)
252
static inline PageDesc *page_find(unsigned int index)
262 253
{
263 254
    PageDesc *p;
264 255

  
......
274 265
    PhysPageDesc *pd;
275 266

  
276 267
    p = (void **)l1_phys_map;
277
#if 0
278 268
#if TARGET_PHYS_ADDR_SPACE_BITS > 32
279 269

  
280 270
#if TARGET_PHYS_ADDR_SPACE_BITS > (32 + L1_BITS)
......
291 281
        *lp = p;
292 282
    }
293 283
#endif
294
#endif
295 284
    lp = p + ((index >> L2_BITS) & (L1_SIZE - 1));
296 285
    pd = *lp;
297 286
    if (!pd) {
......
522 511
    tb_set_jmp_target(tb, n, (unsigned long)(tb->tc_ptr + tb->tb_next_offset[n]));
523 512
}
524 513

  
525
static inline void tb_phys_invalidate(TranslationBlock *tb, target_ulong page_addr)
514
static inline void tb_phys_invalidate(TranslationBlock *tb, unsigned int page_addr)
526 515
{
527 516
    CPUState *env;
528 517
    PageDesc *p;
529 518
    unsigned int h, n1;
530
    target_phys_addr_t phys_pc;
519
    target_ulong phys_pc;
531 520
    TranslationBlock *tb1, *tb2;
532 521

  
533 522
    /* remove the TB from the hash list */
......
678 667
   the same physical page. 'is_cpu_write_access' should be true if called
679 668
   from a real cpu write access: the virtual CPU will exit the current
680 669
   TB if code is modified inside this TB. */
681
void tb_invalidate_phys_page_range(target_phys_addr_t start, target_phys_addr_t end,
670
void tb_invalidate_phys_page_range(target_ulong start, target_ulong end,
682 671
                                   int is_cpu_write_access)
683 672
{
684 673
    int n, current_tb_modified, current_tb_not_found, current_flags;
......
791 780
}
792 781

  
793 782
/* len must be <= 8 and start must be a multiple of len */
794
static inline void tb_invalidate_phys_page_fast(target_phys_addr_t start, int len)
783
static inline void tb_invalidate_phys_page_fast(target_ulong start, int len)
795 784
{
796 785
    PageDesc *p;
797 786
    int offset, b;
......
820 809
}
821 810

  
822 811
#if !defined(CONFIG_SOFTMMU)
823
static void tb_invalidate_phys_page(target_phys_addr_t addr,
812
static void tb_invalidate_phys_page(target_ulong addr,
824 813
                                    unsigned long pc, void *puc)
825 814
{
826 815
    int n, current_flags, current_tb_modified;
......
1997 1986

  
1998 1987
static int subpage_register (subpage_t *mmio, uint32_t start, uint32_t end,
1999 1988
                             int memory);
2000
static void *subpage_init (target_phys_addr_t base, ram_addr_t *phys,
1989
static void *subpage_init (target_phys_addr_t base, uint32_t *phys,
2001 1990
                           int orig_memory);
2002 1991
#define CHECK_SUBPAGE(addr, start_addr, start_addr2, end_addr, end_addr2, \
2003 1992
                      need_subpage)                                     \
......
2023 2012
   page size. If (phys_offset & ~TARGET_PAGE_MASK) != 0, then it is an
2024 2013
   io memory page */
2025 2014
void cpu_register_physical_memory(target_phys_addr_t start_addr,
2026
                                  ram_addr_t size,
2027
                                  ram_addr_t phys_offset)
2015
                                  unsigned long size,
2016
                                  unsigned long phys_offset)
2028 2017
{
2029 2018
    target_phys_addr_t addr, end_addr;
2030 2019
    PhysPageDesc *p;
2031 2020
    CPUState *env;
2032
    ram_addr_t orig_size = size;
2021
    unsigned long orig_size = size;
2033 2022
    void *subpage;
2034 2023

  
2035 2024
    size = (size + TARGET_PAGE_SIZE - 1) & TARGET_PAGE_MASK;
......
2037 2026
    for(addr = start_addr; addr != end_addr; addr += TARGET_PAGE_SIZE) {
2038 2027
        p = phys_page_find(addr >> TARGET_PAGE_BITS);
2039 2028
        if (p && p->phys_offset != IO_MEM_UNASSIGNED) {
2040
            ram_addr_t orig_memory = p->phys_offset;
2029
            unsigned long orig_memory = p->phys_offset;
2041 2030
            target_phys_addr_t start_addr2, end_addr2;
2042 2031
            int need_subpage = 0;
2043 2032

  
......
2090 2079
}
2091 2080

  
2092 2081
/* XXX: temporary until new memory mapping API */
2093
ram_addr_t cpu_get_physical_page_desc(target_phys_addr_t addr)
2082
uint32_t cpu_get_physical_page_desc(target_phys_addr_t addr)
2094 2083
{
2095 2084
    PhysPageDesc *p;
2096 2085

  
......
2101 2090
}
2102 2091

  
2103 2092
/* XXX: better than nothing */
2104
ram_addr_t qemu_ram_alloc(ram_addr_t size)
2093
ram_addr_t qemu_ram_alloc(unsigned int size)
2105 2094
{
2106 2095
    ram_addr_t addr;
2107 2096
    if ((phys_ram_alloc_offset + size) >= phys_ram_size) {
2108
        fprintf(stderr, "Not enough memory (requested_size = %lu, max memory = %" PRIu64 ")\n",
2109
                size, (uint64_t)phys_ram_size);
2097
        fprintf(stderr, "Not enough memory (requested_size = %u, max memory = %d)\n",
2098
                size, phys_ram_size);
2110 2099
        abort();
2111 2100
    }
2112 2101
    addr = phys_ram_alloc_offset;
......
2449 2438
    return 0;
2450 2439
}
2451 2440

  
2452
static void *subpage_init (target_phys_addr_t base, ram_addr_t *phys,
2441
static void *subpage_init (target_phys_addr_t base, uint32_t *phys,
2453 2442
                           int orig_memory)
2454 2443
{
2455 2444
    subpage_t *mmio;
b/hw/an5206.c
30 30

  
31 31
/* Board init.  */
32 32

  
33
static void an5206_init(ram_addr_t ram_size, int vga_ram_size,
33
static void an5206_init(int ram_size, int vga_ram_size,
34 34
                     const char *boot_device, DisplayState *ds,
35 35
                     const char *kernel_filename, const char *kernel_cmdline,
36 36
                     const char *initrd_filename, const char *cpu_model)
b/hw/boards.h
3 3
#ifndef HW_BOARDS_H
4 4
#define HW_BOARDS_H
5 5

  
6
typedef void QEMUMachineInitFunc(ram_addr_t ram_size, int vga_ram_size,
6
typedef void QEMUMachineInitFunc(int ram_size, int vga_ram_size,
7 7
                                 const char *boot_device, DisplayState *ds,
8 8
                                 const char *kernel_filename,
9 9
                                 const char *kernel_cmdline,
b/hw/dummy_m68k.c
14 14

  
15 15
/* Board init.  */
16 16

  
17
static void dummy_m68k_init(ram_addr_t ram_size, int vga_ram_size,
17
static void dummy_m68k_init(int ram_size, int vga_ram_size,
18 18
                     const char *boot_device, DisplayState *ds,
19 19
                     const char *kernel_filename, const char *kernel_cmdline,
20 20
                     const char *initrd_filename, const char *cpu_model)
b/hw/etraxfs.c
41 41
void etraxfs_ser_init(CPUState *env, qemu_irq *irqs, target_phys_addr_t base);
42 42

  
43 43
static
44
void bareetraxfs_init (ram_addr_t ram_size, int vga_ram_size,
44
void bareetraxfs_init (int ram_size, int vga_ram_size,
45 45
                       const char *boot_device, DisplayState *ds,
46 46
                       const char *kernel_filename, const char *kernel_cmdline,
47 47
                       const char *initrd_filename, const char *cpu_model)
b/hw/gumstix.c
41 41

  
42 42
static const int sector_len = 128 * 1024;
43 43

  
44
static void connex_init(ram_addr_t ram_size, int vga_ram_size,
44
static void connex_init(int ram_size, int vga_ram_size,
45 45
                const char *boot_device, DisplayState *ds,
46 46
                const char *kernel_filename, const char *kernel_cmdline,
47 47
                const char *initrd_filename, const char *cpu_model)
......
81 81
                    pxa2xx_gpio_in_get(cpu->gpio)[36]);
82 82
}
83 83

  
84
static void verdex_init(ram_addr_t ram_size, int vga_ram_size,
84
static void verdex_init(int ram_size, int vga_ram_size,
85 85
                const char *boot_device, DisplayState *ds,
86 86
                const char *kernel_filename, const char *kernel_cmdline,
87 87
                const char *initrd_filename, const char *cpu_model)
b/hw/integratorcp.c
474 474
    .board_id = 0x113,
475 475
};
476 476

  
477
static void integratorcp_init(ram_addr_t ram_size, int vga_ram_size,
477
static void integratorcp_init(int ram_size, int vga_ram_size,
478 478
                     const char *boot_device, DisplayState *ds,
479 479
                     const char *kernel_filename, const char *kernel_cmdline,
480 480
                     const char *initrd_filename, const char *cpu_model)
b/hw/mainstone.c
64 64
    .ram_size = 0x04000000,
65 65
};
66 66

  
67
static void mainstone_common_init(ram_addr_t ram_size, int vga_ram_size,
67
static void mainstone_common_init(int ram_size, int vga_ram_size,
68 68
                DisplayState *ds, const char *kernel_filename,
69 69
                const char *kernel_cmdline, const char *initrd_filename,
70 70
                const char *cpu_model, enum mainstone_model_e model, int arm_id)
......
133 133
    arm_load_kernel(cpu->env, &mainstone_binfo);
134 134
}
135 135

  
136
static void mainstone_init(ram_addr_t ram_size, int vga_ram_size,
136
static void mainstone_init(int ram_size, int vga_ram_size,
137 137
                const char *boot_device, DisplayState *ds,
138 138
                const char *kernel_filename, const char *kernel_cmdline,
139 139
                const char *initrd_filename, const char *cpu_model)
b/hw/mcf5208.c
202 202
    }
203 203
}
204 204

  
205
static void mcf5208evb_init(ram_addr_t ram_size, int vga_ram_size,
205
static void mcf5208evb_init(int ram_size, int vga_ram_size,
206 206
                     const char *boot_device, DisplayState *ds,
207 207
                     const char *kernel_filename, const char *kernel_cmdline,
208 208
                     const char *initrd_filename, const char *cpu_model)
b/hw/mips_jazz.c
116 116
#define MAGNUM_BIOS_SIZE (BIOS_SIZE < MAGNUM_BIOS_SIZE_MAX ? BIOS_SIZE : MAGNUM_BIOS_SIZE_MAX)
117 117

  
118 118
static
119
void mips_jazz_init (ram_addr_t ram_size, int vga_ram_size,
119
void mips_jazz_init (int ram_size, int vga_ram_size,
120 120
                     DisplayState *ds, const char *cpu_model,
121 121
                     enum jazz_model_e jazz_model)
122 122
{
......
256 256
}
257 257

  
258 258
static
259
void mips_magnum_init (ram_addr_t ram_size, int vga_ram_size,
259
void mips_magnum_init (int ram_size, int vga_ram_size,
260 260
                       const char *boot_device, DisplayState *ds,
261 261
                       const char *kernel_filename, const char *kernel_cmdline,
262 262
                       const char *initrd_filename, const char *cpu_model)
......
265 265
}
266 266

  
267 267
static
268
void mips_pica61_init (ram_addr_t ram_size, int vga_ram_size,
268
void mips_pica61_init (int ram_size, int vga_ram_size,
269 269
                       const char *boot_device, DisplayState *ds,
270 270
                       const char *kernel_filename, const char *kernel_cmdline,
271 271
                       const char *initrd_filename, const char *cpu_model)
b/hw/mips_malta.c
763 763
}
764 764

  
765 765
static
766
void mips_malta_init (ram_addr_t ram_size, int vga_ram_size,
766
void mips_malta_init (int ram_size, int vga_ram_size,
767 767
                      const char *boot_device, DisplayState *ds,
768 768
                      const char *kernel_filename, const char *kernel_cmdline,
769 769
                      const char *initrd_filename, const char *cpu_model)
b/hw/mips_mipssim.c
106 106
}
107 107

  
108 108
static void
109
mips_mipssim_init (ram_addr_t ram_size, int vga_ram_size,
109
mips_mipssim_init (int ram_size, int vga_ram_size,
110 110
                   const char *boot_device, DisplayState *ds,
111 111
                   const char *kernel_filename, const char *kernel_cmdline,
112 112
                   const char *initrd_filename, const char *cpu_model)
b/hw/mips_r4k.c
147 147

  
148 148
static const int sector_len = 32 * 1024;
149 149
static
150
void mips_r4k_init (ram_addr_t ram_size, int vga_ram_size,
150
void mips_r4k_init (int ram_size, int vga_ram_size,
151 151
                    const char *boot_device, DisplayState *ds,
152 152
                    const char *kernel_filename, const char *kernel_cmdline,
153 153
                    const char *initrd_filename, const char *cpu_model)
b/hw/nseries.c
891 891
    .atag_board = n800_atag_setup,
892 892
};
893 893

  
894
static void n800_init(ram_addr_t ram_size, int vga_ram_size,
894
static void n800_init(int ram_size, int vga_ram_size,
895 895
                const char *boot_device, DisplayState *ds,
896 896
                const char *kernel_filename, const char *kernel_cmdline,
897 897
                const char *initrd_filename, const char *cpu_model)
b/hw/palm.c
192 192
    .board_id = 0x331,
193 193
};
194 194

  
195
static void palmte_init(ram_addr_t ram_size, int vga_ram_size,
195
static void palmte_init(int ram_size, int vga_ram_size,
196 196
                const char *boot_device, DisplayState *ds,
197 197
                const char *kernel_filename, const char *kernel_cmdline,
198 198
                const char *initrd_filename, const char *cpu_model)
b/hw/pc.c
188 188
}
189 189

  
190 190
/* hd_table must contain 4 block drivers */
191
static void cmos_init(ram_addr_t ram_size, ram_addr_t above_4g_mem_size,
192
                      const char *boot_device, BlockDriverState **hd_table)
191
static void cmos_init(int ram_size, const char *boot_device, BlockDriverState **hd_table)
193 192
{
194 193
    RTCState *s = rtc_state;
195 194
    int nbds, bds[3] = { 0, };
......
212 211
    rtc_set_memory(s, 0x30, val);
213 212
    rtc_set_memory(s, 0x31, val >> 8);
214 213

  
215
    if (above_4g_mem_size) {
216
        rtc_set_memory(s, 0x5b, (unsigned int)above_4g_mem_size >> 16);
217
        rtc_set_memory(s, 0x5c, (unsigned int)above_4g_mem_size >> 24);
218
        rtc_set_memory(s, 0x5d, (uint64_t)above_4g_mem_size >> 32);
219
    }
220

  
221 214
    if (ram_size > (16 * 1024 * 1024))
222 215
        val = (ram_size / 65536) - ((16 * 1024 * 1024) / 65536);
223 216
    else
......
683 676
}
684 677

  
685 678
/* PC hardware initialisation */
686
static void pc_init1(ram_addr_t ram_size, int vga_ram_size,
679
static void pc_init1(int ram_size, int vga_ram_size,
687 680
                     const char *boot_device, DisplayState *ds,
688 681
                     const char *kernel_filename, const char *kernel_cmdline,
689 682
                     const char *initrd_filename,
......
692 685
    char buf[1024];
693 686
    int ret, linux_boot, i;
694 687
    ram_addr_t ram_addr, vga_ram_addr, bios_offset, vga_bios_offset;
695
    ram_addr_t below_4g_mem_size, above_4g_mem_size = 0;
696 688
    int bios_size, isa_bios_size, vga_bios_size;
697 689
    PCIBus *pci_bus;
698 690
    int piix3_devfn = -1;
......
704 696
    BlockDriverState *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
705 697
    BlockDriverState *fd[MAX_FD];
706 698

  
707
    if (ram_size >= 0xe0000000 ) {
708
        above_4g_mem_size = ram_size - 0xe0000000;
709
        below_4g_mem_size = 0xe0000000;
710
    } else {
711
        below_4g_mem_size = ram_size;
712
    }
713

  
714 699
    linux_boot = (kernel_filename != NULL);
715 700

  
716 701
    /* init CPUs */
......
745 730

  
746 731
    /* allocate RAM */
747 732
    ram_addr = qemu_ram_alloc(ram_size);
748
    cpu_register_physical_memory(0, below_4g_mem_size, ram_addr);
749

  
750
    /* above 4giga memory allocation */
751
    if (above_4g_mem_size > 0) {
752
        cpu_register_physical_memory(0x100000000ULL, above_4g_mem_size,
753
                                     ram_addr + below_4g_mem_size);
754
    }
733
    cpu_register_physical_memory(0, ram_size, ram_addr);
755 734

  
756 735
    /* allocate VGA RAM */
757 736
    vga_ram_addr = qemu_ram_alloc(vga_ram_size);
......
971 950
    }
972 951
    floppy_controller = fdctrl_init(i8259[6], 2, 0, 0x3f0, fd);
973 952

  
974
    cmos_init(below_4g_mem_size, above_4g_mem_size, boot_device, hd);
953
    cmos_init(ram_size, boot_device, hd);
975 954

  
976 955
    if (pci_enabled && usb_enabled) {
977 956
        usb_uhci_piix3_init(pci_bus, piix3_devfn + 2);
......
1011 990
    }
1012 991
}
1013 992

  
1014
static void pc_init_pci(ram_addr_t ram_size, int vga_ram_size,
993
static void pc_init_pci(int ram_size, int vga_ram_size,
1015 994
                        const char *boot_device, DisplayState *ds,
1016 995
                        const char *kernel_filename,
1017 996
                        const char *kernel_cmdline,
......
1023 1002
             initrd_filename, 1, cpu_model);
1024 1003
}
1025 1004

  
1026
static void pc_init_isa(ram_addr_t ram_size, int vga_ram_size,
1005
static void pc_init_isa(int ram_size, int vga_ram_size,
1027 1006
                        const char *boot_device, DisplayState *ds,
1028 1007
                        const char *kernel_filename,
1029 1008
                        const char *kernel_cmdline,
b/hw/piix_pci.c
55 55
    return (irq_num + slot_addend) & 3;
56 56
}
57 57

  
58
static target_phys_addr_t isa_page_descs[384 / 4];
58
static uint32_t isa_page_descs[384 / 4];
59 59
static uint8_t smm_enabled;
60 60
static int pci_irq_levels[4];
61 61

  
b/hw/ppc405_boards.c
177 177
    }
178 178
}
179 179

  
180
static void ref405ep_init (ram_addr_t ram_size, int vga_ram_size,
180
static void ref405ep_init (int ram_size, int vga_ram_size,
181 181
                           const char *boot_device, DisplayState *ds,
182 182
                           const char *kernel_filename,
183 183
                           const char *kernel_cmdline,
......
504 504
    }
505 505
}
506 506

  
507
static void taihu_405ep_init(ram_addr_t ram_size, int vga_ram_size,
507
static void taihu_405ep_init(int ram_size, int vga_ram_size,
508 508
                             const char *boot_device, DisplayState *ds,
509 509
                             const char *kernel_filename,
510 510
                             const char *kernel_cmdline,
b/hw/ppc_chrp.c
57 57
};
58 58

  
59 59
/* PowerPC Mac99 hardware initialisation */
60
static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size,
60
static void ppc_core99_init (int ram_size, int vga_ram_size,
61 61
                             const char *boot_device, DisplayState *ds,
62 62
                             const char *kernel_filename,
63 63
                             const char *kernel_cmdline,
b/hw/ppc_oldworld.c
103 103
    return 1; /* osi_call handled */
104 104
}
105 105

  
106
static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
106
static void ppc_heathrow_init (int ram_size, int vga_ram_size,
107 107
                               const char *boot_device, DisplayState *ds,
108 108
                               const char *kernel_filename,
109 109
                               const char *kernel_cmdline,
b/hw/ppc_prep.c
535 535
#define NVRAM_SIZE        0x2000
536 536

  
537 537
/* PowerPC PREP hardware initialisation */
538
static void ppc_prep_init (ram_addr_t ram_size, int vga_ram_size,
538
static void ppc_prep_init (int ram_size, int vga_ram_size,
539 539
                           const char *boot_device, DisplayState *ds,
540 540
                           const char *kernel_filename,
541 541
                           const char *kernel_cmdline,
b/hw/r2d.c
30 30
#define SDRAM_BASE 0x0c000000 /* Physical location of SDRAM: Area 3 */
31 31
#define SDRAM_SIZE 0x04000000
32 32

  
33
static void r2d_init(ram_addr_t ram_size, int vga_ram_size,
33
static void r2d_init(int ram_size, int vga_ram_size,
34 34
              const char *boot_device, DisplayState * ds,
35 35
	      const char *kernel_filename, const char *kernel_cmdline,
36 36
	      const char *initrd_filename, const char *cpu_model)
b/hw/realview.c
23 23
    .board_id = 0x33b,
24 24
};
25 25

  
26
static void realview_init(ram_addr_t ram_size, int vga_ram_size,
26
static void realview_init(int ram_size, int vga_ram_size,
27 27
                     const char *boot_device, DisplayState *ds,
28 28
                     const char *kernel_filename, const char *kernel_cmdline,
29 29
                     const char *initrd_filename, const char *cpu_model)
b/hw/shix.c
65 65
    /* XXXXX */
66 66
}
67 67

  
68
static void shix_init(ram_addr_t ram_size, int vga_ram_size,
68
static void shix_init(int ram_size, int vga_ram_size,
69 69
               const char *boot_device, DisplayState * ds,
70 70
	       const char *kernel_filename, const char *kernel_cmdline,
71 71
	       const char *initrd_filename, const char *cpu_model)
b/hw/spitz.c
1185 1185
    .ram_size = 0x04000000,
1186 1186
};
1187 1187

  
1188
static void spitz_common_init(ram_addr_t ram_size, int vga_ram_size,
1188
static void spitz_common_init(int ram_size, int vga_ram_size,
1189 1189
                DisplayState *ds, const char *kernel_filename,
1190 1190
                const char *kernel_cmdline, const char *initrd_filename,
1191 1191
                const char *cpu_model, enum spitz_model_e model, int arm_id)
......
1245 1245
    sl_bootparam_write(SL_PXA_PARAM_BASE - PXA2XX_SDRAM_BASE);
1246 1246
}
1247 1247

  
1248
static void spitz_init(ram_addr_t ram_size, int vga_ram_size,
1248
static void spitz_init(int ram_size, int vga_ram_size,
1249 1249
                const char *boot_device, DisplayState *ds,
1250 1250
                const char *kernel_filename, const char *kernel_cmdline,
1251 1251
                const char *initrd_filename, const char *cpu_model)
......
1254 1254
                kernel_cmdline, initrd_filename, cpu_model, spitz, 0x2c9);
1255 1255
}
1256 1256

  
1257
static void borzoi_init(ram_addr_t ram_size, int vga_ram_size,
1257
static void borzoi_init(int ram_size, int vga_ram_size,
1258 1258
                const char *boot_device, DisplayState *ds,
1259 1259
                const char *kernel_filename, const char *kernel_cmdline,
1260 1260
                const char *initrd_filename, const char *cpu_model)
......
1263 1263
                kernel_cmdline, initrd_filename, cpu_model, borzoi, 0x33f);
1264 1264
}
1265 1265

  
1266
static void akita_init(ram_addr_t ram_size, int vga_ram_size,
1266
static void akita_init(int ram_size, int vga_ram_size,
1267 1267
                const char *boot_device, DisplayState *ds,
1268 1268
                const char *kernel_filename, const char *kernel_cmdline,
1269 1269
                const char *initrd_filename, const char *cpu_model)
......
1272 1272
                kernel_cmdline, initrd_filename, cpu_model, akita, 0x2e8);
1273 1273
}
1274 1274

  
1275
static void terrier_init(ram_addr_t ram_size, int vga_ram_size,
1275
static void terrier_init(int ram_size, int vga_ram_size,
1276 1276
                const char *boot_device, DisplayState *ds,
1277 1277
                const char *kernel_filename, const char *kernel_cmdline,
1278 1278
                const char *initrd_filename, const char *cpu_model)
b/hw/stellaris.c
1169 1169
}
1170 1170

  
1171 1171
/* FIXME: Figure out how to generate these from stellaris_boards.  */
1172
static void lm3s811evb_init(ram_addr_t ram_size, int vga_ram_size,
1172
static void lm3s811evb_init(int ram_size, int vga_ram_size,
1173 1173
                     const char *boot_device, DisplayState *ds,
1174 1174
                     const char *kernel_filename, const char *kernel_cmdline,
1175 1175
                     const char *initrd_filename, const char *cpu_model)
......
1177 1177
    stellaris_init(kernel_filename, cpu_model, ds, &stellaris_boards[0]);
1178 1178
}
1179 1179

  
1180
static void lm3s6965evb_init(ram_addr_t ram_size, int vga_ram_size,
1180
static void lm3s6965evb_init(int ram_size, int vga_ram_size,
1181 1181
                     const char *boot_device, DisplayState *ds,
1182 1182
                     const char *kernel_filename, const char *kernel_cmdline,
1183 1183
                     const char *initrd_filename, const char *cpu_model)
b/hw/sun4m.c
1110 1110
};
1111 1111

  
1112 1112
/* SPARCstation 5 hardware initialisation */
1113
static void ss5_init(ram_addr_t RAM_size, int vga_ram_size,
1113
static void ss5_init(int RAM_size, int vga_ram_size,
1114 1114
                     const char *boot_device, DisplayState *ds,
1115 1115
                     const char *kernel_filename, const char *kernel_cmdline,
1116 1116
                     const char *initrd_filename, const char *cpu_model)
......
1120 1120
}
1121 1121

  
1122 1122
/* SPARCstation 10 hardware initialisation */
1123
static void ss10_init(ram_addr_t RAM_size, int vga_ram_size,
1123
static void ss10_init(int RAM_size, int vga_ram_size,
1124 1124
                      const char *boot_device, DisplayState *ds,
1125 1125
                      const char *kernel_filename, const char *kernel_cmdline,
1126 1126
                      const char *initrd_filename, const char *cpu_model)
......
1130 1130
}
1131 1131

  
1132 1132
/* SPARCserver 600MP hardware initialisation */
1133
static void ss600mp_init(ram_addr_t RAM_size, int vga_ram_size,
1133
static void ss600mp_init(int RAM_size, int vga_ram_size,
1134 1134
                         const char *boot_device, DisplayState *ds,
1135 1135
                         const char *kernel_filename, const char *kernel_cmdline,
1136 1136
                         const char *initrd_filename, const char *cpu_model)
......
1140 1140
}
1141 1141

  
1142 1142
/* SPARCstation 20 hardware initialisation */
1143
static void ss20_init(ram_addr_t RAM_size, int vga_ram_size,
1143
static void ss20_init(int RAM_size, int vga_ram_size,
1144 1144
                      const char *boot_device, DisplayState *ds,
1145 1145
                      const char *kernel_filename, const char *kernel_cmdline,
1146 1146
                      const char *initrd_filename, const char *cpu_model)
......
1150 1150
}
1151 1151

  
1152 1152
/* SPARCstation 2 hardware initialisation */
1153
static void ss2_init(ram_addr_t RAM_size, int vga_ram_size,
1153
static void ss2_init(int RAM_size, int vga_ram_size,
1154 1154
                     const char *boot_device, DisplayState *ds,
1155 1155
                     const char *kernel_filename, const char *kernel_cmdline,
1156 1156
                     const char *initrd_filename, const char *cpu_model)
......
1480 1480
}
1481 1481

  
1482 1482
/* SPARCserver 1000 hardware initialisation */
1483
static void ss1000_init(ram_addr_t RAM_size, int vga_ram_size,
1483
static void ss1000_init(int RAM_size, int vga_ram_size,
1484 1484
                        const char *boot_device, DisplayState *ds,
1485 1485
                        const char *kernel_filename, const char *kernel_cmdline,
1486 1486
                        const char *initrd_filename, const char *cpu_model)
......
1490 1490
}
1491 1491

  
1492 1492
/* SPARCcenter 2000 hardware initialisation */
1493
static void ss2000_init(ram_addr_t RAM_size, int vga_ram_size,
1493
static void ss2000_init(int RAM_size, int vga_ram_size,
1494 1494
                        const char *boot_device, DisplayState *ds,
1495 1495
                        const char *kernel_filename, const char *kernel_cmdline,
1496 1496
                        const char *initrd_filename, const char *cpu_model)
b/hw/sun4u.c
227 227
static fdctrl_t *floppy_controller;
228 228

  
229 229
/* Sun4u hardware initialisation */
230
static void sun4u_init(ram_addr_t ram_size, int vga_ram_size,
230
static void sun4u_init(int ram_size, int vga_ram_size,
231 231
                       const char *boot_devices, DisplayState *ds,
232 232
                       const char *kernel_filename, const char *kernel_cmdline,
233 233
                       const char *initrd_filename, const char *cpu_model)
b/hw/versatilepb.c
159 159

  
160 160
static struct arm_boot_info versatile_binfo;
161 161

  
162
static void versatile_init(ram_addr_t ram_size, int vga_ram_size,
162
static void versatile_init(int ram_size, int vga_ram_size,
163 163
                     const char *boot_device, DisplayState *ds,
164 164
                     const char *kernel_filename, const char *kernel_cmdline,
165 165
                     const char *initrd_filename, const char *cpu_model,
......
293 293
    arm_load_kernel(env, &versatile_binfo);
294 294
}
295 295

  
296
static void vpb_init(ram_addr_t ram_size, int vga_ram_size,
296
static void vpb_init(int ram_size, int vga_ram_size,
297 297
                     const char *boot_device, DisplayState *ds,
298 298
                     const char *kernel_filename, const char *kernel_cmdline,
299 299
                     const char *initrd_filename, const char *cpu_model)
......
304 304
                   initrd_filename, cpu_model, 0x183);
305 305
}
306 306

  
307
static void vab_init(ram_addr_t ram_size, int vga_ram_size,
307
static void vab_init(int ram_size, int vga_ram_size,
308 308
                     const char *boot_device, DisplayState *ds,
309 309
                     const char *kernel_filename, const char *kernel_cmdline,
310 310
                     const char *initrd_filename, const char *cpu_model)
b/osdep.c
98 98
            int64_t free_space;
99 99
            int ram_mb;
100 100

  
101
            extern int ram_size;
101 102
            free_space = (int64_t)stfs.f_bavail * stfs.f_bsize;
102 103
            if ((ram_size + 8192 * 1024) >= free_space) {
103 104
                ram_mb = (ram_size / (1024 * 1024));
b/qemu-doc.texi
322 322
be needed to boot from old floppy disks.
323 323

  
324 324
@item -m @var{megs}
325
Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB.  Optionally,
326
a suffix of ``M'' or ``G'' can be used to signify a value in megabytes or
327
gigabytes respectively.
325
Set virtual RAM size to @var{megs} megabytes. Default is 128 MiB.
328 326

  
329 327
@item -smp @var{n}
330 328
Simulate an SMP system with @var{n} CPUs. On the PC target, up to 255
b/sysemu.h
73 73
/* SLIRP */
74 74
void do_info_slirp(void);
75 75

  
76
extern int ram_size;
76 77
extern int bios_size;
77 78
extern int cirrus_vga_enabled;
78 79
extern int vmsvga_enabled;
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