preloaded_file
struct preloaded_file *fp;
struct preloaded_file *fp;
struct preloaded_file;
struct preloaded_file *m_fp;
struct preloaded_file *f_next; /* next file */
int (*l_load)(char *, uint64_t, struct preloaded_file **);
int (*l_exec)(struct preloaded_file *);
extern struct preloaded_file *preloaded_files;
struct preloaded_file *file_alloc(void);
struct preloaded_file *file_findfile(const char *name, const char *type);
struct file_metadata *file_findmetadata(struct preloaded_file *fp, int type);
struct preloaded_file *file_loadraw(const char *name, char *type, int argc,
void file_discard(struct preloaded_file *fp);
void file_addmetadata(struct preloaded_file *, int, size_t, void *);
int file_addmodule(struct preloaded_file *, char *, int,
int elf64_loadfile(char *, uint64_t, struct preloaded_file **);
int elf32_loadfile(char *, uint64_t, struct preloaded_file **);
int elf64_obj_loadfile(char *, uint64_t, struct preloaded_file **);
int elf32_obj_loadfile(char *, uint64_t, struct preloaded_file **);
int elf64_loadfile_raw(char *, uint64_t, struct preloaded_file **, int);
int elf32_loadfile_raw(char *, uint64_t, struct preloaded_file **, int);
int elf64_load_modmetadata(struct preloaded_file *, uint64_t);
int elf32_load_modmetadata(struct preloaded_file *, uint64_t);
__elfN(lookup_symbol)(struct preloaded_file *fp __unused, elf_file_t ef,
__elfN(reloc_ptr)(struct preloaded_file *mp __unused, elf_file_t ef,
__elfN(loadfile)(char *filename, uint64_t dest, struct preloaded_file **result)
struct preloaded_file **result, int multiboot)
struct preloaded_file *fp, *kfp;
*result = (struct preloaded_file *)fp;
__elfN(loadimage)(struct preloaded_file *fp, elf_file_t ef, uint64_t off)
static int __elfN(loadimage)(struct preloaded_file *, elf_file_t, uint64_t);
static int __elfN(lookup_symbol)(struct preloaded_file *, elf_file_t,
static int __elfN(reloc_ptr)(struct preloaded_file *, elf_file_t,
static int __elfN(parse_modmetadata)(struct preloaded_file *, elf_file_t,
__elfN(load_modmetadata)(struct preloaded_file *fp, uint64_t dest)
__elfN(parse_modmetadata)(struct preloaded_file *fp, elf_file_t ef,
*result = (struct preloaded_file *)fp;
__elfN(obj_loadimage)(struct preloaded_file *fp, elf_file_t ef, u_int64_t off)
__elfN(obj_parse_modmetadata)(struct preloaded_file *fp, elf_file_t ef)
__elfN(obj_lookup_set)(struct preloaded_file *fp __unused, elf_file_t ef,
__elfN(obj_reloc_ptr)(struct preloaded_file *mp, elf_file_t ef, Elf_Addr p,
static int __elfN(obj_loadimage)(struct preloaded_file *mp, elf_file_t ef,
static int __elfN(obj_lookup_set)(struct preloaded_file *mp, elf_file_t ef,
static int __elfN(obj_reloc_ptr)(struct preloaded_file *mp, elf_file_t ef,
static int __elfN(obj_parse_modmetadata)(struct preloaded_file *mp,
struct preloaded_file **result)
struct preloaded_file *fp, *kfp;
file_addmodule(struct preloaded_file *fp, char *modname, int version,
file_discard(struct preloaded_file *fp)
struct preloaded_file *
return (calloc(1, sizeof (struct preloaded_file)));
file_insert_tail(struct preloaded_file *fp)
struct preloaded_file *cm;
file_remove(struct preloaded_file *fp)
struct preloaded_file *cm;
struct preloaded_file *fp;
struct preloaded_file *fp;
struct preloaded_file *fp;
file_load(char *filename, vm_offset_t dest, struct preloaded_file **result)
struct preloaded_file *fp;
file_load_dependencies(struct preloaded_file *base_file)
struct preloaded_file *fp;
module_hash(struct preloaded_file *fp, void *addr, size_t size)
struct preloaded_file *fp;
struct preloaded_file *fp;
struct preloaded_file *
static int file_load(char *, vm_offset_t, struct preloaded_file **);
struct preloaded_file *fp;
static int file_load_dependencies(struct preloaded_file *);
static struct kernel_module *file_findmodule(struct preloaded_file *, char *,
static void file_insert_tail(struct preloaded_file *);
static void file_remove(struct preloaded_file *);
struct preloaded_file *fp;
struct preloaded_file *
struct preloaded_file *fp;
file_findmodule(struct preloaded_file *fp, char *modname,
struct preloaded_file *preloaded_files = NULL;
file_addmetadata(struct preloaded_file *fp, int type, size_t size, void *p)
file_findmetadata(struct preloaded_file *fp, int type)
struct preloaded_file **result)
struct preloaded_file *fp;
mb_kernel_cmdline(struct preloaded_file *fp, struct devdesc *rootdev,
module_size(struct preloaded_file *fp)
struct preloaded_file *mfp;
static int multiboot2_loadfile(char *, uint64_t, struct preloaded_file **);
static int multiboot2_exec(struct preloaded_file *);
biossmap_size(struct preloaded_file *fp)
mbi_size(struct preloaded_file *fp, char *cmdline)
multiboot2_exec(struct preloaded_file *fp)
struct preloaded_file *mfp;
elf64_obj_exec(struct preloaded_file *fp __attribute((unused)))
static int elf64_exec(struct preloaded_file *amp);
static int elf64_obj_exec(struct preloaded_file *amp);
elf64_exec(struct preloaded_file *fp)
struct preloaded_file **result)
__elfN(arm_exec)(struct preloaded_file *fp)
elf64_obj_exec(struct preloaded_file *fp)
static int elf64_exec(struct preloaded_file *amp);
static int elf64_obj_exec(struct preloaded_file *amp);
elf64_exec(struct preloaded_file *fp)
struct preloaded_file *fp;
bi_load(struct preloaded_file *fp, uint64_t *bi_addr)
struct preloaded_file *xp;
static int elf32_exec(struct preloaded_file *amp);
static int elf32_obj_exec(struct preloaded_file *amp);
elf32_exec(struct preloaded_file *fp)
elf32_obj_exec(struct preloaded_file *fp)
struct preloaded_file *fp;
bi_load_efi_data(struct preloaded_file *kfp)
struct preloaded_file *xp, *kfp;
void efi_addsmapdata(struct preloaded_file *);
efi_addsmapdata(struct preloaded_file *kfp)
bios_addsmapdata(struct preloaded_file *kfp)
struct preloaded_file *fp;
struct preloaded_file *xp, *kfp;
struct preloaded_file *fp;
struct preloaded_file *xp, *kfp;
static int elf32_exec(struct preloaded_file *amp);
static int elf32_obj_exec(struct preloaded_file *amp);
elf32_exec(struct preloaded_file *fp)
elf32_obj_exec(struct preloaded_file *fp __unused)
elf64_obj_exec(struct preloaded_file *fp __unused)
static int elf64_exec(struct preloaded_file *amp);
static int elf64_obj_exec(struct preloaded_file *amp);
elf64_exec(struct preloaded_file *fp)
struct preloaded_file *fp, *mfp;
addr_verify(struct preloaded_file *fp, vm_offset_t addr, size_t size)
struct preloaded_file;
void bios_addsmapdata(struct preloaded_file *);
int mb_kernel_cmdline(struct preloaded_file *, struct devdesc *, char **);
linux_exec(struct preloaded_file *fp)
struct preloaded_file *mfp = fp->f_next;
static int linux_loadkernel(char *, u_int64_t, struct preloaded_file **);
static int linux_loadinitrd(char *, u_int64_t, struct preloaded_file **);
static int linux_exec(struct preloaded_file *);
static int linux_execinitrd(struct preloaded_file *);
struct preloaded_file **result)
struct preloaded_file *mfp;
static int linux_execinitrd(struct preloaded_file *pf __unused)
find_real_addr(struct preloaded_file *fp)
struct preloaded_file **result)
struct preloaded_file *fp;
struct preloaded_file *fp;
multiboot_exec(struct preloaded_file *fp)
struct preloaded_file *mfp;
struct preloaded_file **result)
struct preloaded_file *mfp, *kfp, *rfp;
multiboot_obj_exec(struct preloaded_file *fp __unused)
static int multiboot_loadfile(char *, u_int64_t, struct preloaded_file **);
static int multiboot_exec(struct preloaded_file *);
static int multiboot_obj_loadfile(char *, u_int64_t, struct preloaded_file **);
static int multiboot_obj_exec(struct preloaded_file *fp);
num_modules(struct preloaded_file *kfp)
struct preloaded_file **result)
struct preloaded_file *fp;