interp_params
struct elf_fdpic_params *interp_params,
interp_params->load_addr = ELF_ET_DYN_BASE;
struct elf_fdpic_params exec_params, interp_params;
memset(&interp_params, 0, sizeof(interp_params));
interp_params.hdr = *((struct elfhdr *) bprm->buf);
if (!is_elf(&interp_params.hdr, interpreter))
interp_params.flags = ELF_FDPIC_FLAG_PRESENT;
retval = elf_fdpic_fetch_phdrs(&interp_params, interpreter);
if (stack_size == 0 && interp_params.flags & ELF_FDPIC_FLAG_PRESENT) {
stack_size = interp_params.stack_size;
if (interp_params.flags & ELF_FDPIC_FLAG_EXEC_STACK)
else if (interp_params.flags & ELF_FDPIC_FLAG_NOEXEC_STACK)
if (is_constdisp(&interp_params.hdr))
interp_params.flags |= ELF_FDPIC_FLAG_CONSTDISP;
&interp_params,
retval = elf_fdpic_map_file(&interp_params, interpreter,
&interp_params);
dynaddr = interp_params.dynamic_addr ?: exec_params.dynamic_addr;
ELF_FDPIC_PLAT_INIT(regs, exec_params.map_addr, interp_params.map_addr,
entryaddr = interp_params.entry_addr ?: exec_params.entry_addr;
kfree(interp_params.phdrs);
kfree(interp_params.loadmap);
struct elf_fdpic_params *interp_params)
if (interp_params->loadmap) {
interp_params->loadmap->nsegs;
interp_params->map_addr = sp;
if (copy_to_user((void __user *) sp, interp_params->loadmap,
NEW_AUX_ENT(AT_BASE, interp_params->elfhdr_addr);
struct elf_fdpic_params *interp_params,
struct interp_params *interp = easrc_priv->interp;
easrc_priv->interp = (struct interp_params *)(data + offset);
inum * sizeof(struct interp_params);
struct interp_params *interp = easrc_priv->interp;
struct interp_params *selected_interp = NULL;
struct interp_params *interp;