The following changes since commit da1034094d375afe9e3d8ec8980550ea0f06f7e0:
Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging (2023-10-03 07:43:44 -0400)
are available in the Git repository at:
git@gitlab.com:bsdimp/qemu.git tags/bsd-user-mmap-pull-request
for you to fetch changes up to dfa1d915756b2d9d22946cbd7d2587f30cdcb7a3:
bsd-user: Add stubs for vadvise(), sbrk() and sstk() (2023-10-03 17:14:07 -0600)
----------------------------------------------------------------
bsd-user mmap and exec branches from gsoc
This pull request represents the mmap and exec changes from Karim Taha
for his GSoC project.
They represent all the mmap and exec related system calls and get bsd-user to
the point that a dynamic hello-world works (at least for armv7).
There are a couple of patch check errors, but they are the lessor evil: I made
purposely bad style choices to ensure all the commits compiled (and i undid the
style choices in subsequent commits).
I pushed an earlier version to gitlab, and all but the riscv64 pipelines were
green. Since bsd-user doesn't change anything related to ricsv64 (there's no
support in qemu-project repo, though we do have it in the bsd-user fork: coming
soon).
I think this is good to go.
https://gitlab.com/bsdimp/qemu.git
Warner
-----BEGIN PGP SIGNATURE-----
Comment: GPGTools - https://gpgtools.org
iQIzBAABCgAdFiEEIDX4lLAKo898zeG3bBzRKH2wEQAFAmUcpC4ACgkQbBzRKH2w
EQDD9xAA3Rg0AnfnFrd+AoWRb/1/gOuO0v+dEGXj50qnGY8OmHeYtg3XecYPArBq
EicZzL/OG7UZKMl5OfrmGP9tbr32yfeRUTe3AGGHfmnSb11q0yeSaEFZI7felLHj
9nlq4H/2EDRrY+7EnG1TWqtnuqDJAJf/7M0giiVxIk77XGX+USUNPOSG4NP/yc8E
D5p2GN23pUsvnI0jBZkyP3gyeXVNCNG5+KobwqJM3r6OjEiTRmLEVBw98YzG12bh
OY9ekMtVUKHi4Cvsf+2TtkDGRya0wX4uqm4UB1TtV1VUDoCWhYgEKBHp3ozCoVjB
J+ygbx7/jNfY53cpgEpKUBFH7rnOq1yQQ+ad5Ap5hbp4j6WSvPwdp1N3RCnkZzd/
L50VIaySd+P6enAgPO5Mbt3kMMVd/eDGhQDWdzNToIjyhXBb5hUNfumg9AgdEwTh
rW/kKT39YLYWLO123hIJCy2CKU9nvoea9588ExkKb22v0ltrtDcAlWfCbZvZYxNN
wRzh+MFBt7Cd/bqk7HaJ0J/YyPToqImoUjNuBnBSDPqZQP2H4U8v/FoICQ0mm5kR
jZCmGLMEP1PiDlusjUjaW0iamHvXiSP8KEzaAbIxx5UUiTWTTkQm4CKY/xPxC9VQ
0ygJqJVrKHlNrAY9u6ggJAXtorVwmC55z4ZqIVQH6cbzUYFMuJU=
=WpL4
-----END PGP SIGNATURE-----
----------------------------------------------------------------
Karim Taha (6):
bsd-user: define TARGET_RFSPAWN for rfork to use vfork(2) semantics,
and fix RLIM_INFINITY
bsd-user: Implement get_filename_from_fd.
bsd-user: Implement execve(2) and fexecve(2) system calls.
bsd-user: Implement shm_open2(2) system call
bsd-user: Add bsd-mem.c to meson.build
bsd-user: Implment madvise(2) to match the linux-user implementation.
Kyle Evans (2):
bsd-user: Get number of cpus.
bsd-user: Implement shm_rename(2) system call
Stacey Son (42):
bsd-user: Define procctl(2) related structs
bsd-user: Implement host_to_target_siginfo.
bsd-user: Add freebsd_exec_common and do_freebsd_procctl to qemu.h.
bsd-user: add extern declarations for bsd-proc.c conversion functions
bsd-user: Implement target_to_host_resource conversion function
bsd-user: Implement target_to_host_rlim and host_to_target_rlim
conversion.
bsd-user: Implement host_to_target_rusage and host_to_target_wrusage.
bsd-user: Implement host_to_target_waitstatus conversion.
bsd-user: Implement getgroups(2) and setgroups(2) system calls.
bsd-user: Implement umask(2), setlogin(2) and getlogin(2)
bsd-user: Implement getrusage(2).
bsd-user: Implement getrlimit(2) and setrlimit(2)
bsd-user: Implement several get/set system calls:
bsd-user: Implement get/set[resuid/resgid/sid] and issetugid.
bsd-user: Add stubs for profil(2), ktrace(2), utrace(2) and ptrace(2).
bsd-user: Implement getpriority(2) and setpriority(2).
bsd-user: Implement freebsd_exec_common, used in implementing
execve/fexecve.
bsd-user: Implement procctl(2) along with necessary conversion
functions.
bsd-user: Implement wait4(2) and wait6(2) system calls.
bsd-user: Implement setloginclass(2) and getloginclass(2) system
calls.
bsd-user: Implement pdgetpid(2) and the undocumented setugid.
bsd-user: Implement fork(2) and vfork(2) system calls.
bsd-user: Implement rfork(2) system call.
bsd-user: Implement pdfork(2) system call.
bsd-user: Implement struct target_ipc_perm
bsd-user: Implement struct target_shmid_ds
bsd-user: Declarations for ipc_perm and shmid_ds conversion functions
bsd-user: Introduce freebsd/os-misc.h to the source tree
bsd-user: Implement target_set_brk function in bsd-mem.c instead of
os-syscall.c
bsd-user: Implement ipc_perm conversion between host and target.
bsd-user: Implement shmid_ds conversion between host and target.
bsd-user: Introduce bsd-mem.h to the source tree
bsd-user: Implement mmap(2) and munmap(2)
bsd-user: Implement mprotect(2)
bsd-user: Implement msync(2)
bsd-user: Implement mlock(2), munlock(2), mlockall(2), munlockall(2),
minherit(2)
bsd-user: Implement mincore(2)
bsd-user: Implement do_obreak function
bsd-user: Implement shm_open(2)
bsd-user: Implement shm_unlink(2) and shmget(2)
bsd-user: Implement shmctl(2)
bsd-user: Implement shmat(2) and shmdt(2)
Warner Losh (1):
bsd-user: Add stubs for vadvise(), sbrk() and sstk()
bsd-user/bsd-mem.c | 104 ++++++++
bsd-user/bsd-mem.h | 452 ++++++++++++++++++++++++++++++++
bsd-user/bsd-proc.c | 145 ++++++++++
bsd-user/bsd-proc.h | 379 +++++++++++++++++++++++++++
bsd-user/freebsd/meson.build | 1 +
bsd-user/freebsd/os-misc.h | 98 +++++++
bsd-user/freebsd/os-proc.c | 480 ++++++++++++++++++++++++++++++++++
bsd-user/freebsd/os-proc.h | 293 +++++++++++++++++++++
bsd-user/freebsd/os-syscall.c | 313 +++++++++++++++++++++-
bsd-user/main.c | 2 +-
bsd-user/meson.build | 7 +
bsd-user/mmap.c | 2 +-
bsd-user/qemu-bsd.h | 58 ++++
bsd-user/qemu.h | 8 +
bsd-user/signal-common.h | 1 +
bsd-user/signal.c | 6 +
bsd-user/syscall_defs.h | 89 ++++++-
17 files changed, 2428 insertions(+), 10 deletions(-)
create mode 100644 bsd-user/bsd-mem.c
create mode 100644 bsd-user/bsd-mem.h
create mode 100644 bsd-user/bsd-proc.c
create mode 100644 bsd-user/freebsd/os-misc.h
create mode 100644 bsd-user/freebsd/os-proc.c
create mode 100644 bsd-user/freebsd/os-proc.h
create mode 100644 bsd-user/qemu-bsd.h
--
2.41.0