| /openbmc/qemu/bsd-user/ |
| H A D | bsdload.c | 48 static int prepare_binprm(struct bsd_binprm *bprm) in prepare_binprm() argument 54 if (fstat(bprm->fd, &st) < 0) { in prepare_binprm() 66 bprm->e_uid = geteuid(); in prepare_binprm() 67 bprm->e_gid = getegid(); in prepare_binprm() 71 bprm->e_uid = st.st_uid; in prepare_binprm() 81 bprm->e_gid = st.st_gid; in prepare_binprm() 84 memset(bprm->buf, 0, sizeof(bprm->buf)); in prepare_binprm() 85 retval = lseek(bprm->fd, 0L, SEEK_SET); in prepare_binprm() 87 retval = read(bprm->fd, bprm->buf, 128); in prepare_binprm() 149 struct bsd_binprm *bprm) in loader_exec() argument [all …]
|
| H A D | elfload.c | 183 static void setup_arg_pages(struct bsd_binprm *bprm, struct image_info *info, in setup_arg_pages() argument 207 if (setup_initial_stack(bprm, stackp, stringp) != 0) { in setup_arg_pages() 600 int load_elf_binary(struct bsd_binprm *bprm, struct target_pt_regs *regs, in load_elf_binary() argument 617 elf_ex = *((struct elfhdr *) bprm->buf); /* exec-header */ in load_elf_binary() 626 bprm->p = copy_elf_strings(1, &bprm->filename, bprm->page, bprm->p); in load_elf_binary() 627 bprm->p = copy_elf_strings(bprm->envc, bprm->envp, bprm->page, bprm->p); in load_elf_binary() 628 bprm->p = copy_elf_strings(bprm->argc, bprm->argv, bprm->page, bprm->p); in load_elf_binary() 629 if (!bprm->p) { in load_elf_binary() 639 retval = lseek(bprm->fd, elf_ex.e_phoff, SEEK_SET); in load_elf_binary() 641 retval = read(bprm->fd, (char *)elf_phdata, in load_elf_binary() [all …]
|
| H A D | main.c | 270 struct bsd_binprm bprm; in main() local 454 memset(&bprm, 0, sizeof(bprm)); in main() 594 &bprm) != 0) { in main() 633 ts->bprm = &bprm; in main()
|
| H A D | qemu.h | 88 struct bsd_binprm *bprm; member 165 struct bsd_binprm *bprm); 167 int load_elf_binary(struct bsd_binprm *bprm, struct target_pt_regs *regs, 169 int load_flt_binary(struct bsd_binprm *bprm, struct target_pt_regs *regs,
|
| H A D | signal.c | 381 if (core_dump_signal(target_sig) && (ts->bprm->core_dump != NULL)) { in dump_core_and_abort() 384 ((*ts->bprm->core_dump)(target_sig, env) == 0); in dump_core_and_abort()
|
| H A D | bsd-file.h | 645 strncpy(p2, ts->bprm->fullpath, arg3); in do_bsd_readlink() 646 ret = MIN((abi_long)strlen(ts->bprm->fullpath), arg3); in do_bsd_readlink()
|
| /openbmc/qemu/linux-user/ |
| H A D | linuxload.c | 36 static int prepare_binprm(struct linux_binprm *bprm) in prepare_binprm() argument 42 if (fstat(bprm->src.fd, &st) < 0) { in prepare_binprm() 54 bprm->e_uid = geteuid(); in prepare_binprm() 55 bprm->e_gid = getegid(); in prepare_binprm() 59 bprm->e_uid = st.st_uid; in prepare_binprm() 69 bprm->e_gid = st.st_gid; in prepare_binprm() 72 retval = read(bprm->src.fd, bprm->buf, BPRM_BUF_SIZE); in prepare_binprm() 79 memset(bprm->buf + retval, 0, BPRM_BUF_SIZE - retval); in prepare_binprm() 82 bprm->src.cache = bprm->buf; in prepare_binprm() 83 bprm->src.cache_size = retval; in prepare_binprm() [all …]
|
| H A D | flatload.c | 194 static int load_flat_file(struct linux_binprm * bprm, in load_flat_file() argument 209 hdr = ((struct flat_hdr *) bprm->buf); /* exec-header */ in load_flat_file() 223 DBG_FLT("BINFMT_FLAT: Loading file: %s\n", bprm->filename); in load_flat_file() 264 probe_guest_base(bprm->filename, 0, in load_flat_file() 280 MAP_PRIVATE, bprm->src.fd, 0); in load_flat_file() 300 result = target_pread(bprm->src.fd, datapos, in load_flat_file() 324 result = target_pread(bprm->src.fd, textpos, in load_flat_file() 327 result = target_pread(bprm->src.fd, datapos, in load_flat_file() 345 id ? "Lib" : "Load", bprm->filename, in load_flat_file() 461 int load_flt_binary(struct linux_binprm *bprm, struct image_info *info) in load_flt_binary() argument [all …]
|
| H A D | loader.h | 93 int load_elf_binary(struct linux_binprm *bprm, struct image_info *info); 94 int load_flt_binary(struct linux_binprm *bprm, struct image_info *info);
|
| H A D | elfload.c | 2413 static abi_ulong setup_arg_pages(struct linux_binprm *bprm, in setup_arg_pages() argument 3877 int load_elf_binary(struct linux_binprm *bprm, struct image_info *info) in load_elf_binary() argument 3895 load_elf_image(bprm->filename, &bprm->src, info, &ehdr, &elf_interpreter); in load_elf_binary() 3899 bprm->p = setup_arg_pages(bprm, info); in load_elf_binary() 3903 bprm->p = copy_elf_strings(1, &bprm->filename, scratch, in load_elf_binary() 3904 bprm->p, info->stack_limit); in load_elf_binary() 3905 info->file_string = bprm->p; in load_elf_binary() 3906 bprm->p = copy_elf_strings(bprm->envc, bprm->envp, scratch, in load_elf_binary() 3907 bprm->p, info->stack_limit); in load_elf_binary() 3908 info->env_strings = bprm->p; in load_elf_binary() [all …]
|
| H A D | main.c | 702 struct linux_binprm bprm; in main() local 772 memset(&bprm, 0, sizeof (bprm)); in main() 986 ts->bprm = &bprm; in main() 993 info, &bprm); in main()
|
| H A D | qemu.h | 133 struct linux_binprm *bprm; member
|
| H A D | signal.c | 828 if (core_dump_signal(target_sig) && (ts->bprm->core_dump != NULL)) { in dump_core_and_abort() 831 ((*ts->bprm->core_dump)(target_sig, env) == 0); in dump_core_and_abort()
|
| H A D | syscall.c | 6649 ts->bprm = parent_ts->bprm; in do_fork() 8023 struct linux_binprm *bprm = get_task_state(cpu)->bprm; in open_self_cmdline() local 8026 for (i = 0; i < bprm->argc; i++) { in open_self_cmdline() 8027 size_t len = strlen(bprm->argv[i]) + 1; in open_self_cmdline() 8029 if (write(fd, bprm->argv[i], len) != len) { in open_self_cmdline() 8235 gchar *bin = g_strrstr(ts->bprm->argv[0], "/"); in open_self_stat() 8236 bin = bin ? bin + 1 : ts->bprm->argv[0]; in open_self_stat()
|
| /openbmc/qemu/bsd-user/freebsd/ |
| H A D | target_os_stack.h | 48 static inline int setup_initial_stack(struct bsd_binprm *bprm, in setup_initial_stack() argument 70 if (bprm->fullpath) { in setup_initial_stack() 71 execpath_len = strlen(bprm->fullpath) + 1; in setup_initial_stack() 73 if (memcpy_to_target(p, bprm->fullpath, execpath_len)) { in setup_initial_stack() 102 for (i = 0; i < bprm->argc; ++i) { in setup_initial_stack() 103 stringspace += strlen(bprm->argv[i]) + 1; in setup_initial_stack() 105 for (i = 0; i < bprm->envc; ++i) { in setup_initial_stack() 106 stringspace += strlen(bprm->envp[i]) + 1; in setup_initial_stack() 114 p = argvp = destp - (bprm->argc + bprm->envc + 2) * sizeof(abi_ulong); in setup_initial_stack() 125 ps_strs.ps_nargvstr = tswap32(bprm->argc); in setup_initial_stack() [all …]
|
| /openbmc/qemu/bsd-user/netbsd/ |
| H A D | target_os_stack.h | 25 static inline int setup_initial_stack(struct bsd_binprm *bprm, abi_ulong *p, in setup_initial_stack() argument 41 if (bprm->page[i]) { in setup_initial_stack() 43 if (!memcpy_to_target(stack_base, bprm->page[i], in setup_initial_stack() 48 g_free(bprm->page[i]); in setup_initial_stack()
|
| /openbmc/qemu/bsd-user/openbsd/ |
| H A D | target_os_stack.h | 25 static inline int setup_initial_stack(struct bsd_binprm *bprm, abi_ulong *p, in setup_initial_stack() argument 41 if (bprm->page[i]) { in setup_initial_stack() 43 if (!memcpy_to_target(stack_base, bprm->page[i], in setup_initial_stack() 48 g_free(bprm->page[i]); in setup_initial_stack()
|
| /openbmc/qemu/gdbstub/ |
| H A D | user-target.c | 402 if (!ts || !ts->bprm || !ts->bprm->filename) { in gdb_handle_query_xfer_exec_file() 407 size_t total_length = strlen(ts->bprm->filename); in gdb_handle_query_xfer_exec_file() 417 ts->bprm->filename + offset); in gdb_handle_query_xfer_exec_file()
|
| /openbmc/qemu/common-user/ |
| H A D | plugin-api.c.inc | 25 return g_strdup(ts->bprm->filename);
|