freebsd-dev/lib
Mark Johnston 3e9b4532d1 libvmmapi: Provide an interface for limiting rights on the device fd
Currently libvmmapi provides a way to get a list of the allowed ioctls
on the vmm device file, so that bhyve can limit rights on the device
file fd.  The interface is rather strange: it allocates a copy of the
list but returns a const pointer, so the caller has to cast away the
const in order to free it without aggravating the compiler.

As far as I can see, there's no reason to make a copy of the array, but
changing vm_get_ioctls() to not do that would break compatibility.  So
this change just introduces a better interface: move all rights-limiting
logic into libvmmapi.

Any new operations on the fd should be wrapped by libvmmapi, so also
discourage use of vm_get_device_fd().  Currently bhyve uses it only when
limiting rights on the device fd.

No functional change intended.

Reviewed by:	jhb
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D37098
2022-10-24 17:33:13 -04:00
..
atf
clang Revert "Avoid using TARGET_ARCH in llvm.build.mk" 2022-10-13 22:04:47 -05:00
csu Revert "csu: test: explicitly add libm as build parameter" 2022-07-28 11:23:26 -03:00
flua flua: Fix a typo in a source code comment 2022-09-15 10:25:54 +02:00
geom Add information on how to load gmirror on boot to auto activate mirrors 2022-10-05 16:44:31 +00:00
googletest
lib9p
lib80211
libalias
libarchive libarchive: fix zstd compression support 2022-04-08 10:11:25 +02:00
libauditd
libbe bectl: push space-in-name check down into libbe 2022-04-02 21:04:31 -05:00
libbearssl
libbegemot libbegemot: Disable -Wuse-after-free. 2022-10-03 16:10:43 -07:00
libblacklist
libblocksruntime
libbluetooth
libbsddialog contrib/bsddialog: Import version 0.4 2022-09-25 15:09:16 +02:00
libbsdstat
libbsm
libbsnmp
libbz2
libc libc: Make elf_aux_info() return an error if AT_USRSTACK* is undefined 2022-10-18 18:11:26 -04:00
libc_nonshared
libc++ Apply libc++ fix for <ranges> not compiling at all 2022-05-14 13:46:39 +02:00
libc++experimental
libcalendar
libcam
libcapsicum
libcasper cap_netdb: Fix description style 2022-09-29 19:51:42 +02:00
libcbor
libclang_rt libclang_rt: Trim a few more MIPSisms. 2022-06-30 10:02:37 -07:00
libcom_err
libcompat
libcompiler_rt
libcrypt
libcuse cuse(3): Make some clarifications in the manual page. 2022-07-20 10:41:11 +02:00
libcxxrt
libdevctl
libdevdctl
libdevinfo
libdevstat
libdl
libdpv Indicate the port where the referenced man pages come from. 2022-08-16 20:57:30 +02:00
libdwarf
libedit libedit: Disable -Wuse-after-free for chartype.c. 2022-10-03 16:10:43 -07:00
libefivar libefivar: Fix a buffer overread. 2022-10-03 16:10:44 -07:00
libelf
libelftc
libevent1
libexecinfo
libexpat MFV 66082b6c88: libbsdxml (expat) 2.4.9 2022-09-21 00:02:38 -07:00
libfetch libfetch: Use memcpy in place of an odd strncpy. 2022-10-03 16:10:43 -07:00
libfido2
libfigpar
libgcc_eh Merge llvm-project release/14.x llvmorg-14-init-18315-g190be5457c90 2022-05-14 13:45:25 +02:00
libgcc_s Export _Unwind_Complete and _Unwind_VRS_Pop from arm's libgcc_s 2022-04-27 11:04:10 +02:00
libgeom Reference correct section for free(3). 2022-09-17 13:12:44 +02:00
libgpio
libgssapi pkgbase: split kerberos binaries and libs 2022-08-03 11:02:28 +01:00
libiconv_modules libiconv VIQR: Fix a use after free. 2022-10-03 16:10:43 -07:00
libifconfig libifconfig: Correct some typos in source code comments 2022-09-04 12:53:58 +02:00
libipsec ipsec(4): Fix a typo in a source code comment 2022-06-04 12:28:20 +02:00
libipt
libiscsiutil
libjail
libkiconv
libkvm kvm_close(3): Check kd->sparse_map != NULL before munmap 2022-10-16 16:49:16 +00:00
libldns ldns: Disable -Warray-parameter warnings from GCC 12 on sha2.c. 2022-09-28 14:02:30 -07:00
liblua
liblutok
liblzma Install working pkgconfig .pc files for compat libraries 2022-08-11 23:18:34 +01:00
libmagic file: upgrade to 5.43. 2022-09-24 19:16:39 -07:00
libmd src.conf: Introduce WITHOUT_MACHDEP knob. 2022-09-09 09:54:28 +03:00
libmemstat
libmilter
libmixer
libmp
libmt mt(3): Fix a typo in the manual page 2022-04-06 18:41:08 +02:00
libnetbsd libnetbsd: Fix a typo in a source code comment 2022-04-02 14:53:56 +02:00
libnetgraph
libnetmap
libngatm
libnv libnv: bump library version 2022-07-22 00:23:08 +02:00
libomp Merge llvm-project release/14.x llvmorg-14-init-18315-g190be5457c90 2022-05-14 13:45:25 +02:00
libopenbsd
libopencsd
libpam Put OPIE to rest. 2022-10-02 03:37:29 +02:00
libpathconv libpathconv: bump man page dates 2022-08-09 10:05:31 +02:00
libpcap
libpe
libpfctl pf: use time_to for timestamps 2022-10-05 17:52:27 +02:00
libpjdlog
libpmc pmc.sandybridge(3): Fix a few EVENT_ vs Event inconsistencies 2022-10-11 00:50:58 +01:00
libpmcstat
libproc libproc: retire now-unused MIPS support 2022-10-17 14:17:25 -04:00
libprocstat libprocstat: forward declare struct kinfo_proc 2022-08-26 23:20:32 +01:00
libradius
libregex
librpcsec_gss Correct a typo in man page references: rpcset_gss -> rpcsec_gss. 2022-09-16 22:38:42 +02:00
librpcsvc
librss
librt
librtld_db
libsbuf
libsdp
libsecureboot Add -S option to veriexec 2022-07-19 08:59:53 -07:00
libsm
libsmb
libsmdb
libsmutil
libsqlite3
libssp
libssp_nonshared
libstats
libstdbuf
libstdthreads
libsysdecode Put OPIE to rest. 2022-10-02 03:37:29 +02:00
libtacplus
libtelnet
libthr libthr: extract code to get main stack base and size into helpers 2022-09-16 23:24:12 +03:00
libthread_db
libucl
libufs Move the ability to search for alternate UFS superblocks from fsck_ffs(8) 2022-08-13 12:43:40 -07:00
libugidfw
libulog
libunbound unbound: Reapply Vendor import 1.17.0 2022-10-16 14:08:33 -07:00
libusb libusb(3): Implement libusb_interrupt_event_handler() by exposing existing function. 2022-10-02 17:32:59 +02:00
libusbhid usbhid(3): Fix a typo in the manual page 2022-06-04 19:54:25 +02:00
libutil libutil: Fix mandoc warnings 2022-08-07 16:30:24 +02:00
libveriexec
libvgl
libvmmapi libvmmapi: Provide an interface for limiting rights on the device fd 2022-10-24 17:33:13 -04:00
libwrap
libxo
liby
libypclnt
libz Install working pkgconfig .pc files for compat libraries 2022-08-11 23:18:34 +01:00
libzstd
msun msun: correct comment 2022-09-19 21:40:07 +03:00
ncurses Install working pkgconfig .pc files for compat libraries 2022-08-11 23:18:34 +01:00
ofed libirdma: Drop clang-specific -ferror-limit. 2022-10-03 16:10:42 -07:00
tests
Makefile Put OPIE to rest. 2022-10-02 03:37:29 +02:00
Makefile.inc