freebsd-nq/lib
D Scott Phillips f8a6ec2d57 bhyve: support relocating fbuf and passthru data BARs
We want to allow the UEFI firmware to enumerate and assign
addresses to PCI devices so we can boot from NVMe[1]. Address
assignment of PCI BARs is properly handled by the PCI emulation
code in general, but a few specific cases need additional support.
fbuf and passthru map additional objects into the guest physical
address space and so need to handle address updates. Here we add a
callback to emulated PCI devices to inform them of a BAR
configuration change. fbuf and passthru then watch for these BAR
changes and relocate the frame buffer memory segment and passthru
device mmio area respectively.

We also add new VM_MUNMAP_MEMSEG and VM_UNMAP_PPTDEV_MMIO ioctls
to vmm(4) to facilitate the unmapping needed for addres updates.

[1]: https://github.com/freebsd/uefi-edk2/pull/9/

Originally by:	scottph
MFC After:	1 week
Sponsored by:	Intel Corporation
Reviewed by:	grehan
Approved by:	philip (mentor)
Differential Revision:	https://reviews.freebsd.org/D24066
2021-03-19 11:04:36 +08:00
..
atf Import atf 0.22 snapshot ca73d08c3fc1ecffc1f1c97458c31ab82c12bb01 2021-02-04 15:03:05 +00:00
clang libllvmminimal: Add missing Support/ABIBreak.cpp 2021-01-27 19:19:00 +00:00
csu Add C startup code tests for PIE binaries. 2020-11-10 19:09:35 +00:00
flua lib/flua/libjail: Allow empty params table 2021-03-02 18:32:22 -05:00
geom Minor grammar nit 2021-03-03 16:20:29 +00:00
googletest Rename NO_WERROR -> MK_WERROR=no 2021-01-07 09:31:03 +00:00
kyua Install expected kyua docs. 2020-03-26 17:34:17 +00:00
lib9p lib9p: fix building on systems without capser 2021-01-04 20:48:48 +01:00
lib80211 lib80211: Start adding 11ac ETSI bits to regdomain.xml 2021-03-18 11:09:10 +00:00
libalias Rename NO_WERROR -> MK_WERROR=no 2021-01-07 09:31:03 +00:00
libarchive Don't include libarchive fuzz tests by default 2021-01-25 15:09:26 +00:00
libauditd libauditd: make it a PRIVATELIB 2020-04-19 02:20:39 +00:00
libbe When be_activate() turns on a new boot environment, it always deactivates 2021-01-08 09:23:16 -08:00
libbearssl Revert that! 2020-07-19 23:56:19 +00:00
libbegemot Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libblacklist Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libblocksruntime Move all sources from the llvm project into contrib/llvm-project. 2019-12-20 19:53:05 +00:00
libbluetooth Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libbsdstat Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libbsm libbsm: fix some MLINKS 2020-04-19 02:18:40 +00:00
libbsnmp Add missing src.opts.mk include 2020-11-13 23:18:04 +00:00
libbz2 Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libc Allow using sanitizers for ssp tests with out-of-tree compiler 2021-03-12 17:15:33 +00:00
libc_nonshared
libc++ Only set WARNS if not defined 2020-09-11 13:28:37 +00:00
libc++experimental Move all sources from the llvm project into contrib/llvm-project. 2019-12-20 19:53:05 +00:00
libcalendar Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libcam libcam(3): make cam_getccb(3) zero the whole ccb, not just the header 2020-12-29 14:26:06 +00:00
libcapsicum Add missing FreeBSD functions to -legacy when building on macOS/Linux 2020-08-25 13:23:31 +00:00
libcasper tests: Skip cap_fileargs if build without capsicum capabilities 2021-01-26 22:19:36 +01:00
libclang_rt Allow using sanitizers for ssp tests with out-of-tree compiler 2021-03-12 17:15:33 +00:00
libcom_err Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libcompat
libcompiler_rt Rename NO_WERROR -> MK_WERROR=no 2021-01-07 09:31:03 +00:00
libcrypt Do a sweep and remove most WARNS=6 settings 2020-10-01 01:10:51 +00:00
libcuse Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libcxxrt Only set WARNS if not defined 2020-09-11 13:28:37 +00:00
libdevctl Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libdevdctl libdevdctl: Force full match of "timestamp" field name 2020-06-23 16:29:59 +00:00
libdevinfo devinfo: add man page links 2020-08-04 21:09:36 +00:00
libdevstat Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libdl
libdpv Bump shared library versions after ncurses bump in 13. 2021-02-01 17:11:49 -08:00
libdwarf Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libedit Bump shared library versions after ncurses bump in 13. 2021-02-01 17:11:49 -08:00
libefivar libefivar: define MDE_CPU_RISCV64 2020-07-06 17:47:29 +00:00
libelf libelf: add compression header support 2020-10-23 16:35:23 +00:00
libelftc Update ELF Tool Chain to upstream r3769 2019-12-05 13:20:15 +00:00
libevent1 rename in-tree libevent v1 to libevent1 2020-05-28 22:05:50 +00:00
libexecinfo Move all sources from the llvm project into contrib/llvm-project. 2019-12-20 19:53:05 +00:00
libexpat Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libfetch Remove support for SSLv3 from fetch(3). 2020-11-24 22:10:33 +00:00
libfigpar Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libgcc_eh After r364423, which ensures the callbacks that dl_iterate_phdr(3) 2020-08-25 20:07:11 +00:00
libgcc_s Rename NO_WERROR -> MK_WERROR=no 2021-01-07 09:31:03 +00:00
libgeom Modernize geom_stats_snapshot_get 2021-03-04 07:45:48 -07:00
libgpio Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libgssapi Remove __NO_TLS. 2021-02-23 20:08:10 +02:00
libiconv_modules Do a sweep and remove most WARNS=6 settings 2020-10-01 01:10:51 +00:00
libifconfig libifconfig: Overhaul ifconfig_media_* interfaces 2021-03-05 04:15:55 -05:00
libipsec Fix some common typos in comments 2021-03-13 18:26:15 +01:00
libipt Update Intel Processor Trace decoder library. 2019-10-10 12:46:34 +00:00
libjail libjail: Handle an error from reallocarray() when trimming the buffer. 2020-01-07 21:44:27 +00:00
libkiconv pkgbase: Put a lot of binaries and lib in FreeBSD-runtime 2019-09-05 14:13:08 +00:00
libkvm libkvm: Refine the previous commit (645eaa2cca) 2021-03-03 18:50:45 -05:00
libldns Update Makefile.depend files 2019-12-11 17:37:53 +00:00
liblua contrib/lua: update to 5.4.2 2021-01-13 23:56:18 -06:00
liblutok Add liblutok a lightweight C++ API for lua. 2020-03-23 18:26:23 +00:00
liblzma Convert libs with pc files to use PCFILES 2021-03-16 07:13:07 +01:00
libmagic Convert libs with pc files to use PCFILES 2021-03-16 07:13:07 +01:00
libmd Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
libmemstat malloc: move malloc_type_internal into malloc_type 2020-11-06 21:33:59 +00:00
libmilter Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libmp Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libmt Add the LTO-9 density code to libmt and the mt(1) man page. 2020-12-10 21:06:06 +00:00
libnetbsd
libnetgraph Fix SYNPOSIS section to point to the proper include directive. 2020-05-15 12:04:39 +00:00
libnetmap [libnetmap] Fix 32 bit compilation under gcc-6.4 2020-11-02 15:01:37 +00:00
libngatm Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libnv Fix libnv build post rename 2020-06-27 02:17:04 +00:00
libomp Update build glue for libomp. 2020-01-27 18:04:28 +00:00
libopenbsd Only set WARNS if not defined 2020-09-11 13:28:37 +00:00
libopencsd Update opencsd to 0.14.2 2020-06-17 10:42:20 +00:00
libopie Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libpam pam_login_access: Fix negative entry matching logic 2021-02-23 19:14:05 -05:00
libpathconv Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
libpcap MFV r353141 (by phillip): 2019-12-21 21:01:03 +00:00
libpe
libpjdlog pkgbase: Create a FreeBSD-utilities package and make it the default one 2019-09-05 14:15:47 +00:00
libpmc libpmc: fix linking with C programs 2021-02-15 15:54:18 -07:00
libpmcstat pmcstat: fix PPC kernel symbol resolution 2020-11-05 16:47:23 +00:00
libproc Remove the MK_LIBCPLUSPLUS option 2021-02-01 09:32:07 +00:00
libprocstat Fix makefs bootstrap after d485c77f20 2021-02-22 17:55:45 +00:00
libradius Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
libregex libregex: re-enable make check 2021-01-08 13:58:35 -06:00
librpcsec_gss Fix a few mandoc issues 2020-10-09 19:12:44 +00:00
librpcsvc Update Makefile.depend files 2019-12-11 17:37:53 +00:00
librss Update Makefile.depend files 2019-12-11 17:37:53 +00:00
librt pkgbase: Create a FreeBSD-utilities package and make it the default one 2019-09-05 14:15:47 +00:00
librtld_db librtld_db: Handle anonymous mappings below the first file mapping. 2020-06-05 18:44:14 +00:00
libsbuf Do a sweep and remove most WARNS=6 settings 2020-10-01 01:10:51 +00:00
libsdp Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libsecureboot veloader: insist on verifying .4th .lua etc 2020-08-21 00:27:06 +00:00
libsm Merge sendmail 8.16.1 to HEAD: See contrib/sendmail/RELEASE_NOTES for details 2020-07-15 18:28:54 +00:00
libsmb
libsmdb Merge sendmail 8.16.1 to HEAD: See contrib/sendmail/RELEASE_NOTES for details 2020-07-15 18:28:54 +00:00
libsmutil
libsqlite3 [PowerPC64LE] Pass our byte order to the sqlite3 build. 2020-09-23 02:17:44 +00:00
libssp libssp: don't compile with -fstack-protector* 2020-03-14 15:15:27 +00:00
libssp_nonshared Provide libssp based on libc 2020-01-04 20:19:25 +00:00
libstats Make use of the stats(3) framework in the TCP stack. 2019-12-02 20:58:04 +00:00
libstdbuf
libstdthreads Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libsysdecode libsysdecode: fix decoding of TCP_NOPUSH and TCP_MD5SIG 2021-02-09 23:42:27 +01:00
libtacplus libtacplus: Remove bogus srandomdev+random 2019-12-13 05:11:34 +00:00
libtelnet
libthr libthr malloc: support recursion on thr_malloc_umtx. 2021-01-12 12:45:44 +02:00
libthread_db Remove libthr, csu, libthread_db and testfloat sparc64 specific directories. 2020-02-27 04:44:58 +00:00
libucl Only set WARNS if not defined 2020-09-11 13:28:37 +00:00
libufs Remove #define _KERNEL hacks from libprocstat 2021-02-21 11:38:21 +02:00
libugidfw Deduplicate fsid comparisons 2020-05-21 01:55:35 +00:00
libulog Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libunbound MFV r361322: 2020-05-21 21:00:46 +00:00
libusb Convert libs with pc files to use PCFILES 2021-03-16 07:13:07 +01:00
libusbhid USB HID descriptors may push/pop the current state to allow 2020-06-05 07:57:16 +00:00
libutil Change getlocalbase() to not allocate any heap memory 2020-12-12 11:23:52 +00:00
libveriexec Do not claim libbearssl et al are INTERNALLIB 2020-04-01 05:45:12 +00:00
libvgl Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libvmmapi bhyve: support relocating fbuf and passthru data BARs 2021-03-19 11:04:36 +08:00
libwrap Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libxo pkgbase: Install libxo test files in the tests package 2021-01-04 16:20:26 +01:00
liby
libypclnt Update Makefile.depend files 2019-12-11 17:37:53 +00:00
libz Convert libs with pc files to use PCFILES 2021-03-16 07:13:07 +01:00
libzstd libprivatezstd: Restrict symbol visibility similar to upstream 2021-01-03 11:26:46 -08:00
msun lib/msun: Fix x86 GCC6 build after 221622ec0c 2021-03-12 18:44:44 +00:00
ncurses terminfo: add more path to lookup for the database 2021-03-18 10:29:43 +01:00
ofed Fix ibnd_* manpages sources 2021-02-18 15:59:34 +01:00
tests
Makefile Always build the sanitizer runtimes when compiling with clang 2021-02-10 15:25:14 +00:00
Makefile.inc build: provide a default WARNS for all in-tree builds 2020-09-18 17:17:46 +00:00