]>
Commit | Line | Data |
---|---|---|
ca20cf32 BS |
1 | #ifndef LOADER_H |
2 | #define LOADER_H | |
84f2d0ea | 3 | #include "qapi/qmp/qdict.h" |
a88b362c | 4 | #include "hw/nvram/fw_cfg.h" |
ca20cf32 BS |
5 | |
6 | /* loader.c */ | |
7 | int get_image_size(const char *filename); | |
8 | int load_image(const char *filename, uint8_t *addr); /* deprecated */ | |
a8170e5e | 9 | int load_image_targphys(const char *filename, hwaddr, |
80a2ba3d | 10 | uint64_t max_sz); |
409dbce5 AJ |
11 | int load_elf(const char *filename, uint64_t (*translate_fn)(void *, uint64_t), |
12 | void *translate_opaque, uint64_t *pentry, uint64_t *lowaddr, | |
13 | uint64_t *highaddr, int big_endian, int elf_machine, | |
14 | int clear_lsb); | |
a8170e5e AK |
15 | int load_aout(const char *filename, hwaddr addr, int max_sz, |
16 | int bswap_needed, hwaddr target_page_size); | |
17 | int load_uimage(const char *filename, hwaddr *ep, | |
18 | hwaddr *loadaddr, int *is_linux); | |
ca20cf32 | 19 | |
84aee0de SB |
20 | /** |
21 | * load_ramdisk: | |
22 | * @filename: Path to the ramdisk image | |
23 | * @addr: Memory address to load the ramdisk to | |
24 | * @max_sz: Maximum allowed ramdisk size (for non-u-boot ramdisks) | |
25 | * | |
26 | * Load a ramdisk image with U-Boot header to the specified memory | |
27 | * address. | |
28 | * | |
29 | * Returns the size of the loaded image on success, -1 otherwise. | |
30 | */ | |
31 | int load_ramdisk(const char *filename, hwaddr addr, uint64_t max_sz); | |
32 | ||
725e14e9 | 33 | ssize_t read_targphys(const char *name, |
a8170e5e | 34 | int fd, hwaddr dst_addr, size_t nbytes); |
3c178e72 | 35 | void pstrcpy_targphys(const char *name, |
a8170e5e | 36 | hwaddr dest, int buf_size, |
ca20cf32 | 37 | const char *source); |
45a50b16 | 38 | |
04920fc0 | 39 | extern bool rom_file_in_ram; |
bdb5ee30 GH |
40 | |
41 | int rom_add_file(const char *file, const char *fw_dir, | |
a8170e5e | 42 | hwaddr addr, int32_t bootindex); |
45a50b16 | 43 | int rom_add_blob(const char *name, const void *blob, size_t len, |
a8170e5e | 44 | hwaddr addr); |
d60fa42e FC |
45 | int rom_add_elf_program(const char *name, void *data, size_t datasize, |
46 | size_t romsize, hwaddr addr); | |
45a50b16 | 47 | int rom_load_all(void); |
a88b362c | 48 | void rom_set_fw(FWCfgState *f); |
a8170e5e AK |
49 | int rom_copy(uint8_t *dest, hwaddr addr, size_t size); |
50 | void *rom_ptr(hwaddr addr); | |
84f2d0ea | 51 | void do_info_roms(Monitor *mon, const QDict *qdict); |
45a50b16 | 52 | |
2e55e842 GN |
53 | #define rom_add_file_fixed(_f, _a, _i) \ |
54 | rom_add_file(_f, NULL, _a, _i) | |
45a50b16 | 55 | #define rom_add_blob_fixed(_f, _b, _l, _a) \ |
632cf034 | 56 | rom_add_blob(_f, _b, _l, _a) |
45a50b16 GH |
57 | |
58 | #define PC_ROM_MIN_VGA 0xc0000 | |
59 | #define PC_ROM_MIN_OPTION 0xc8000 | |
60 | #define PC_ROM_MAX 0xe0000 | |
61 | #define PC_ROM_ALIGN 0x800 | |
62 | #define PC_ROM_SIZE (PC_ROM_MAX - PC_ROM_MIN_VGA) | |
63 | ||
de2aff17 | 64 | int rom_add_vga(const char *file); |
2e55e842 | 65 | int rom_add_option(const char *file, int32_t bootindex); |
45a50b16 | 66 | |
ca20cf32 | 67 | #endif |