Changeset View
Changeset View
Standalone View
Standalone View
sys/compat/linux/linux_mmap.c
Show First 20 Lines • Show All 211 Lines • ▼ Show 20 Lines | mr = (struct mmap_req) { | ||||
.mr_fd = fd, | .mr_fd = fd, | ||||
.mr_pos = pos, | .mr_pos = pos, | ||||
.mr_check_fp_fn = linux_mmap_check_fp, | .mr_check_fp_fn = linux_mmap_check_fp, | ||||
}; | }; | ||||
if (addr != 0 && (bsd_flags & MAP_FIXED) == 0 && | if (addr != 0 && (bsd_flags & MAP_FIXED) == 0 && | ||||
(bsd_flags & MAP_EXCL) == 0) { | (bsd_flags & MAP_EXCL) == 0) { | ||||
mr_fixed = mr; | mr_fixed = mr; | ||||
mr_fixed.mr_flags |= MAP_FIXED | MAP_EXCL; | mr_fixed.mr_flags |= MAP_FIXED | MAP_EXCL; | ||||
error = kern_mmap_req(td, &mr_fixed); | error = kern_mmap(td, &mr_fixed); | ||||
if (error == 0) | if (error == 0) | ||||
goto out; | goto out; | ||||
} | } | ||||
error = kern_mmap_req(td, &mr); | error = kern_mmap(td, &mr); | ||||
out: | out: | ||||
LINUX_CTR2(mmap2, "return: %d (%p)", error, td->td_retval[0]); | LINUX_CTR2(mmap2, "return: %d (%p)", error, td->td_retval[0]); | ||||
return (error); | return (error); | ||||
} | } | ||||
int | int | ||||
linux_mprotect_common(struct thread *td, uintptr_t addr, size_t len, int prot) | linux_mprotect_common(struct thread *td, uintptr_t addr, size_t len, int prot) | ||||
▲ Show 20 Lines • Show All 193 Lines • Show Last 20 Lines |