loader.h 2.0 KB
Newer Older
B
Blue Swirl 已提交
1 2
#ifndef LOADER_H
#define LOADER_H
3
#include "qapi/qmp/qdict.h"
L
Laszlo Ersek 已提交
4
#include "hw/nvram/fw_cfg.h"
B
Blue Swirl 已提交
5 6 7 8

/* loader.c */
int get_image_size(const char *filename);
int load_image(const char *filename, uint8_t *addr); /* deprecated */
A
Avi Kivity 已提交
9
int load_image_targphys(const char *filename, hwaddr,
10
                        uint64_t max_sz);
11 12 13 14
int load_elf(const char *filename, uint64_t (*translate_fn)(void *, uint64_t),
             void *translate_opaque, uint64_t *pentry, uint64_t *lowaddr,
             uint64_t *highaddr, int big_endian, int elf_machine,
             int clear_lsb);
A
Avi Kivity 已提交
15 16 17 18
int load_aout(const char *filename, hwaddr addr, int max_sz,
              int bswap_needed, hwaddr target_page_size);
int load_uimage(const char *filename, hwaddr *ep,
                hwaddr *loadaddr, int *is_linux);
B
Blue Swirl 已提交
19

20
ssize_t read_targphys(const char *name,
A
Avi Kivity 已提交
21
                      int fd, hwaddr dst_addr, size_t nbytes);
22
void pstrcpy_targphys(const char *name,
A
Avi Kivity 已提交
23
                      hwaddr dest, int buf_size,
B
Blue Swirl 已提交
24
                      const char *source);
25

G
Gerd Hoffmann 已提交
26 27

int rom_add_file(const char *file, const char *fw_dir,
A
Avi Kivity 已提交
28
                 hwaddr addr, int32_t bootindex);
29
int rom_add_blob(const char *name, const void *blob, size_t len,
A
Avi Kivity 已提交
30
                 hwaddr addr);
31 32
int rom_add_elf_program(const char *name, void *data, size_t datasize,
                        size_t romsize, hwaddr addr);
33
int rom_load_all(void);
L
Laszlo Ersek 已提交
34
void rom_set_fw(FWCfgState *f);
A
Avi Kivity 已提交
35 36
int rom_copy(uint8_t *dest, hwaddr addr, size_t size);
void *rom_ptr(hwaddr addr);
37
void do_info_roms(Monitor *mon, const QDict *qdict);
38

G
Gleb Natapov 已提交
39 40
#define rom_add_file_fixed(_f, _a, _i)          \
    rom_add_file(_f, NULL, _a, _i)
41
#define rom_add_blob_fixed(_f, _b, _l, _a)      \
42
    rom_add_blob(_f, _b, _l, _a)
43 44 45 46 47 48 49

#define PC_ROM_MIN_VGA     0xc0000
#define PC_ROM_MIN_OPTION  0xc8000
#define PC_ROM_MAX         0xe0000
#define PC_ROM_ALIGN       0x800
#define PC_ROM_SIZE        (PC_ROM_MAX - PC_ROM_MIN_VGA)

50
int rom_add_vga(const char *file);
G
Gleb Natapov 已提交
51
int rom_add_option(const char *file, int32_t bootindex);
52

B
Blue Swirl 已提交
53
#endif