Lines Matching defs:vmo

6 #include <launchpad/vmo.h>
362 zx_status_t launchpad_elf_load_basic(launchpad_t* lp, zx_handle_t vmo) {
363 if (vmo == ZX_HANDLE_INVALID)
364 return lp_error(lp, ZX_ERR_INVALID_ARGS, "elf_load: invalid vmo");
370 if ((status = elf_load_start(vmo, NULL, 0, &elf)))
373 if ((status = elf_load_finish(lp_vmar(lp), elf, vmo,
386 zx_handle_close(vmo);
390 zx_status_t launchpad_elf_load_extra(launchpad_t* lp, zx_handle_t vmo,
394 if (vmo == ZX_HANDLE_INVALID)
395 return lp_error(lp, ZX_ERR_INVALID_ARGS, "elf_load_extra: invalid vmo");
399 if ((status = elf_load_start(vmo, NULL, 0, &elf)))
401 if ((status = elf_load_finish(lp_vmar(lp), elf, vmo, NULL, base, entry)))
516 // Consumes 'vmo' on success, not on failure.
517 static zx_status_t handle_interp(launchpad_t* lp, zx_handle_t vmo,
552 lp->special_handles[HND_EXEC_VMO] = vmo;
563 size_t buf_sz, zx_handle_t vmo) {
569 if ((status = elf_load_start(vmo, hdr_buf, buf_sz, &elf)) != ZX_OK) {
574 status = elf_load_get_interp(elf, vmo, &interp, &interp_len);
580 status = elf_load_finish(lp_vmar(lp), elf, vmo, &segments_vmar,
595 if ((status = handle_interp(lp, vmo, interp, interp_len))) {
598 // handle_interp() takes ownership of vmo on success
599 vmo = ZX_HANDLE_INVALID;
607 if (vmo)
608 zx_handle_close(vmo);
651 zx_status_t launchpad_file_load(launchpad_t* lp, zx_handle_t vmo) {
652 if (vmo == ZX_HANDLE_INVALID)
653 return lp_error(lp, ZX_ERR_INVALID_ARGS, "file_load: invalid vmo");
667 zx_status_t status = zx_vmo_get_size(vmo, &vmo_size);
677 status = zx_vmo_read(vmo, first_line, 0, to_read);
684 zx_handle_close(vmo);
749 interp_start, interp_len, &vmo);
755 status = launchpad_elf_load_body(lp, first_line, to_read, vmo);
763 zx_status_t launchpad_elf_load(launchpad_t* lp, zx_handle_t vmo) {
764 if (vmo == ZX_HANDLE_INVALID)
765 return lp_error(lp, ZX_ERR_INVALID_ARGS, "elf_load: invalid vmo");
767 return launchpad_elf_load_body(lp, NULL, 0, vmo);
811 zx_status_t launchpad_load_vdso(launchpad_t* lp, zx_handle_t vmo) {
812 if (vmo != ZX_HANDLE_INVALID)
813 return launchpad_elf_load_extra(lp, vmo, &lp->vdso_base, NULL);
815 vmo = vdso_get_vmo();
816 zx_status_t status = launchpad_elf_load_extra(lp, vmo,
1118 lp_error(lp, status, "cannot create stack vmo");
1145 lp_error(lp, status, "cannot map stack vmo");
1286 static zx_status_t launchpad_file_load_with_vdso(launchpad_t* lp, zx_handle_t vmo) {
1287 launchpad_file_load(lp, vmo);
1293 zx_handle_t vmo;
1294 zx_status_t status = launchpad_vmo_from_file(path, &vmo);
1296 return launchpad_file_load_with_vdso(lp, vmo);
1303 zx_handle_t vmo;
1304 zx_status_t status = fdio_get_vmo_clone(fd, &vmo);
1306 return launchpad_file_load_with_vdso(lp, vmo);
1312 zx_status_t launchpad_load_from_vmo(launchpad_t* lp, zx_handle_t vmo) {
1313 return launchpad_file_load_with_vdso(lp, vmo);