qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PULL 00/51] Bsd user mmap patches
@ 2023-10-03 23:31 Warner Losh
  2023-10-03 23:31 ` [PULL 01/51] bsd-user: define TARGET_RFSPAWN for rfork to use vfork(2) semantics, and fix RLIM_INFINITY Warner Losh
                   ` (51 more replies)
  0 siblings, 52 replies; 53+ messages in thread
From: Warner Losh @ 2023-10-03 23:31 UTC (permalink / raw)
  To: qemu-devel
  Cc: Thomas Huth, Laurent Vivier, Philippe Mathieu-Daudé,
	Alex Bennée, Wainer dos Santos Moschetta, Beraldo Leal,
	Warner Losh, Kyle Evans

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



^ permalink raw reply	[flat|nested] 53+ messages in thread

end of thread, other threads:[~2023-10-05 12:54 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-03 23:31 [PULL 00/51] Bsd user mmap patches Warner Losh
2023-10-03 23:31 ` [PULL 01/51] bsd-user: define TARGET_RFSPAWN for rfork to use vfork(2) semantics, and fix RLIM_INFINITY Warner Losh
2023-10-03 23:31 ` [PULL 02/51] bsd-user: Define procctl(2) related structs Warner Losh
2023-10-03 23:31 ` [PULL 03/51] bsd-user: Implement host_to_target_siginfo Warner Losh
2023-10-03 23:31 ` [PULL 04/51] bsd-user: Add freebsd_exec_common and do_freebsd_procctl to qemu.h Warner Losh
2023-10-03 23:31 ` [PULL 05/51] bsd-user: add extern declarations for bsd-proc.c conversion functions Warner Losh
2023-10-03 23:31 ` [PULL 06/51] bsd-user: Implement target_to_host_resource conversion function Warner Losh
2023-10-03 23:31 ` [PULL 07/51] bsd-user: Implement target_to_host_rlim and host_to_target_rlim conversion Warner Losh
2023-10-03 23:31 ` [PULL 08/51] bsd-user: Implement host_to_target_rusage and host_to_target_wrusage Warner Losh
2023-10-03 23:31 ` [PULL 09/51] bsd-user: Implement host_to_target_waitstatus conversion Warner Losh
2023-10-03 23:31 ` [PULL 10/51] bsd-user: Get number of cpus Warner Losh
2023-10-03 23:31 ` [PULL 11/51] bsd-user: Implement getgroups(2) and setgroups(2) system calls Warner Losh
2023-10-03 23:31 ` [PULL 12/51] bsd-user: Implement umask(2), setlogin(2) and getlogin(2) Warner Losh
2023-10-03 23:31 ` [PULL 13/51] bsd-user: Implement getrusage(2) Warner Losh
2023-10-03 23:31 ` [PULL 14/51] bsd-user: Implement getrlimit(2) and setrlimit(2) Warner Losh
2023-10-03 23:31 ` [PULL 15/51] bsd-user: Implement several get/set system calls: Warner Losh
2023-10-03 23:31 ` [PULL 16/51] bsd-user: Implement get/set[resuid/resgid/sid] and issetugid Warner Losh
2023-10-03 23:31 ` [PULL 17/51] bsd-user: Add stubs for profil(2), ktrace(2), utrace(2) and ptrace(2) Warner Losh
2023-10-03 23:31 ` [PULL 18/51] bsd-user: Implement getpriority(2) and setpriority(2) Warner Losh
2023-10-03 23:31 ` [PULL 19/51] bsd-user: Implement get_filename_from_fd Warner Losh
2023-10-03 23:31 ` [PULL 20/51] bsd-user: Implement freebsd_exec_common, used in implementing execve/fexecve Warner Losh
2023-10-03 23:31 ` [PULL 21/51] bsd-user: Implement procctl(2) along with necessary conversion functions Warner Losh
2023-10-03 23:31 ` [PULL 22/51] bsd-user: Implement execve(2) and fexecve(2) system calls Warner Losh
2023-10-03 23:31 ` [PULL 23/51] bsd-user: Implement wait4(2) and wait6(2) " Warner Losh
2023-10-03 23:31 ` [PULL 24/51] bsd-user: Implement setloginclass(2) and getloginclass(2) " Warner Losh
2023-10-03 23:31 ` [PULL 25/51] bsd-user: Implement pdgetpid(2) and the undocumented setugid Warner Losh
2023-10-03 23:31 ` [PULL 26/51] bsd-user: Implement fork(2) and vfork(2) system calls Warner Losh
2023-10-03 23:31 ` [PULL 27/51] bsd-user: Implement rfork(2) system call Warner Losh
2023-10-03 23:31 ` [PULL 28/51] bsd-user: Implement pdfork(2) " Warner Losh
2023-10-03 23:31 ` [PULL 29/51] bsd-user: Implement struct target_ipc_perm Warner Losh
2023-10-03 23:31 ` [PULL 30/51] bsd-user: Implement struct target_shmid_ds Warner Losh
2023-10-03 23:31 ` [PULL 31/51] bsd-user: Declarations for ipc_perm and shmid_ds conversion functions Warner Losh
2023-10-03 23:31 ` [PULL 32/51] bsd-user: Introduce freebsd/os-misc.h to the source tree Warner Losh
2023-10-03 23:31 ` [PULL 33/51] bsd-user: Implement shm_open2(2) system call Warner Losh
2023-10-03 23:31 ` [PULL 34/51] bsd-user: Implement shm_rename(2) " Warner Losh
2023-10-03 23:31 ` [PULL 35/51] bsd-user: Add bsd-mem.c to meson.build Warner Losh
2023-10-03 23:32 ` [PULL 36/51] bsd-user: Implement target_set_brk function in bsd-mem.c instead of os-syscall.c Warner Losh
2023-10-03 23:32 ` [PULL 37/51] bsd-user: Implement ipc_perm conversion between host and target Warner Losh
2023-10-03 23:32 ` [PULL 38/51] bsd-user: Implement shmid_ds " Warner Losh
2023-10-03 23:32 ` [PULL 39/51] bsd-user: Introduce bsd-mem.h to the source tree Warner Losh
2023-10-03 23:32 ` [PULL 40/51] bsd-user: Implement mmap(2) and munmap(2) Warner Losh
2023-10-03 23:32 ` [PULL 41/51] bsd-user: Implement mprotect(2) Warner Losh
2023-10-03 23:32 ` [PULL 42/51] bsd-user: Implement msync(2) Warner Losh
2023-10-03 23:32 ` [PULL 43/51] bsd-user: Implement mlock(2), munlock(2), mlockall(2), munlockall(2), minherit(2) Warner Losh
2023-10-03 23:32 ` [PULL 44/51] bsd-user: Implment madvise(2) to match the linux-user implementation Warner Losh
2023-10-03 23:32 ` [PULL 45/51] bsd-user: Implement mincore(2) Warner Losh
2023-10-03 23:32 ` [PULL 46/51] bsd-user: Implement do_obreak function Warner Losh
2023-10-03 23:32 ` [PULL 47/51] bsd-user: Implement shm_open(2) Warner Losh
2023-10-03 23:32 ` [PULL 48/51] bsd-user: Implement shm_unlink(2) and shmget(2) Warner Losh
2023-10-03 23:32 ` [PULL 49/51] bsd-user: Implement shmctl(2) Warner Losh
2023-10-03 23:32 ` [PULL 50/51] bsd-user: Implement shmat(2) and shmdt(2) Warner Losh
2023-10-03 23:32 ` [PULL 51/51] bsd-user: Add stubs for vadvise(), sbrk() and sstk() Warner Losh
2023-10-04 18:33 ` [PULL 00/51] Bsd user mmap patches Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).