(linenum→info "unix/slp.c:2238")

qemu/0.9.1/hw/dummy_m68k.c

    1: /*
    2:  * Dummy board with just RAM and CPU for use as an ISS.
    3:  *
    4:  * Copyright (c) 2007 CodeSourcery.
    5:  *
    6:  * This code is licenced under the GPL
    7:  */
    8: 
    9: #include "hw.h"
   10: #include "sysemu.h"
   11: #include "boards.h"
   12: 
   13: #define KERNEL_LOAD_ADDR 0x10000
   14: 
   15: /* Board init.  */
   16: 
   17: static void dummy_m68k_init(int ram_size, int vga_ram_size,
   18:                      const char *boot_device, DisplayState *ds,
   19:                      const char *kernel_filename, const char *kernel_cmdline,
   20:                      const char *initrd_filename, const char *cpu_model)
   21: {
   22:     CPUState *env;
   23:     int kernel_size;
   24:     uint64_t elf_entry;
   25:     target_ulong entry;
   26: 
   27:     if (!cpu_model)
   28:         cpu_model = "cfv4e";
   29:     env = cpu_init(cpu_model);
   30:     if (!env) {
   31:         fprintf(stderr, "Unable to find m68k CPU definition\n");
   32:         exit(1);
   33:     }
   34: 
   35:     /* Initialize CPU registers.  */
   36:     env->vbr = 0;
   37: 
   38:     /* RAM at address zero */
   39:     cpu_register_physical_memory(0, ram_size,
   40:         qemu_ram_alloc(ram_size) | IO_MEM_RAM);
   41: 
   42:     /* Load kernel.  */
   43:     if (kernel_filename) {
   44:         kernel_size = load_elf(kernel_filename, 0, &elf_entry, NULL, NULL);
   45:         entry = elf_entry;
   46:         if (kernel_size < 0) {
   47:             kernel_size = load_uboot(kernel_filename, &entry, NULL);
   48:         }
   49:         if (kernel_size < 0) {
   50:             kernel_size = load_image(kernel_filename,
   51:                                      phys_ram_base + KERNEL_LOAD_ADDR);
   52:             entry = KERNEL_LOAD_ADDR;
   53:         }
   54:         if (kernel_size < 0) {
   55:             fprintf(stderr, "qemu: could not load kernel '%s'\n",
   56:                     kernel_filename);
   57:             exit(1);
   58:         }
   59:     } else {
   60:         entry = 0;
   61:     }
   62:     env->pc = entry;
   63: }
   64: 
   65: QEMUMachine dummy_m68k_machine = {
   66:     "dummy",
   67:     "Dummy board",
   68:     dummy_m68k_init,
   69: };
Syntax (Markdown)