Home | History | Annotate | Download | only in modules
History log of /src/sys/modules/Makefile
RevisionDateAuthorComments
 1.298  21-Oct-2025  pgoyette Add MODULE glue and build infrasructure.

XXX We won't actually build or install it due to kern/59716 but
XXX it can be manually built and installed if you want.
 1.297  21-Oct-2025  pgoyette Disable a few modules that need serious work to build.

Add if_rge to the list of {bus,attachment}-specific modules
 1.296  11-Mar-2025  brad A driver and userland utility for a couple of families of the
Microchip Technology / SMSC fan controller chips.

The driver and utility supports the:

o EMC2101 and EMC2101-R
o EMC2103-1, EMC2102-2 and EMC2103-4
o EMC2104
o EMC2106
o EMC2301
o EMC2302
o EMC2303
o EMC2305

The EMC210X family supports 1 or 2 fans with tachometer. Depending on
the chip, it may support 2 additional fans without tach and might
support a high side attachment (i.e. a fan, usually 5v, driven
directly from the chip and not PWM or DAC). All versions of EMC210X
support internal temperature measurements, and depending on the chip,
may support up to 5 additional temperature zones. The tachometers and
temperature measurements are provided to the system via the envsys(4)
framework. Some chip types support GPIO pins and support is provided
via the gpio(4) framework.

The EMC230X family supports 1, 2, 3 or 5 fans with the same number of
tachometers. No temperature zone or GPIO support. The tachometers
are provided to the system via the envsys(4) framework. The fan
support can be provided by PWM signaling or DAC.

The two chip families mostly do PWM signaling for the fan speed, but a
number of them support DAC output, a 0 to 3v or so voltage. When the
chip supports external temperature zones, this is done usually by a
bipolar NPN or PNP transister configured as a diode, but some of the
chip varients support thermistors.

The emcfan(4) kernel driver provides a simple read / write / seek
device in /dev/ to the register set in the chip. The heavy lifting is
done in the userland utility emcfanctl(8) which provides the ability
to read and write to any valid register and provides some basic higher
level commands to control fan behavior. The output is simple text
lines, or JSON.

The kernel driver does not reset or other mess with the chip, aside
from reading registers. It is entirely possible that something else
in any particular system is the major manager of the fan controller
and it would not do for the kernel driver to mess too much with the
attached device. All interactions are intentional via the userland
utility.

It is known that a EMC2301 is present on the Raspberry PI 4 Compute IO
module (not to be confused with the Raspberry PI 4 Compute module
itself) and there is a breakout board from Adafruit with a EMC2101 on
it. The chips themselves are pretty inexpensive from Mouser or
Digi-key and can be soldered using the simpler SMD soldering
techniques. A number of the variants are QFN packages, but the pads
are exposed to the side of the chip. No other external components are
required to use these fan controllers.
 1.295  23-Jan-2025  brad A driver for the DS28E17 1-Wire to I2C bridge chip.

This chip acts like a 1-Wire slave device and provides a iic(4) master
at the end of the 1-Wire bus. More or less it is the polar opposite
of the DS2482 [ds2482ow(4)] chip.

This device couples well with ds2482ow(4) and can be used to provide a
I2C bus at very great lengths from the controlling computer.

All features of the chip are supported, except for 1-Wire overdrive
support, which requires more work from the onewire(4) infrastructure.

The chip does not support Read without Stop. Attempts to do this will
get turned into a Read with Stop and one will have to hope for the
best. The chip also does not support zero length I2C reads or zero
length I2C writes. This has the side effect of making the default
mode, a zero length I2C write, for i2scan(8) return false positives.
The alternative mode that i2cscan(8) can use, the single byte read,
should work as expected.

The chip has automatic support for end devices that do I2C clock
stretching.

It was noticed that this chip does not work with the gpioow(4) driver.
That might be an interesting thing to debug if one has a good logic
analyzer on hand. While the presence pulse is detected, the gpioow(4)
driver is not able to complete the initial ROM enumeration. The
DS28E17 works flawlessly when driven by a DS2482 [ds2482ow(4)] driver
chip. Poke me if you want any more details.

The chip is pretty inexpensive and only requires a single cap to get
it hooked up. However, the package it comes in is only a 16-QFN
package, so it could provide to be hard to solider onto a board for
some. There are side tabs, so it was possible with a very small iron
and lots of flux. There is a slightly expensive breakout board sold
by Mikroe that probably works well -> https://www.mikroe.com/1-wire-i2c-click
 1.294  20-Jan-2025  maya Add ncm(4) a driver for USB Network Control Model

Seen on my Google Pixel 8, which implements ncm instead of urndis.
 1.293  04-Nov-2024  brad Add a driver for the Maxim DS2482-100 and DS2482-800 I2C to 1-Wire
bridge.

This chip provides a I2C device that then has 1 or 8 1-Wire busses on
the other side. The 1-Wire buses show up as onewire(4) buses in the
NetBSD.

The chip can be used in situations where:

* You have a I2C bus extended a long distance, say with a LTC4311
active terminator / extender or one of the differential I2C
extenders and you would like to have a 1-Wire device on the far end
and it isn't possible to add wiring to get to the far end.

* You are either out of GPIO pins or the GPIO pins are not reliable
enough to use gpioow(4), but you do have working I2C.

The DS2482 does all of the 1-Wire signals in hardware and provides for
a couple of pullup options for the 1-Wire devices.

All of the functions of the DS2482-100 and -800 are supported except
for overdrive speed support. To do this will likely require some API
changes to onewire(4).

Breakout boards exist for the DS2482 for both variants, but they
appear to be more expensive than expected. The chip itself is quiet
cheap and wasn't all that hard to SMD solder to a board. No other
components are really needed.

There are other members in the same family, the DS2482-101, DS2484 and
DS2485. The DS2482-101 has a sleep pin, but from the datasheet
appears to program the same as the -100 variant. The DS2484 has a
slightly different way to set configuration information and probably
won't quite work with the driver, but isn't far off. The DS2485 is
very different and would require a new driver to function.
 1.292  26-Aug-2024  riastradh acpivmgenid(4): New driver for virtual machine generation ID.

Added to amd64/ALL and i386/ALL kernel configurations, and made
available as a loadable module acpivmgenid.kmod on x86, for now.

TBD: Add to all ACPI-supporting GENERIC kernels.

PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork
 1.291  18-Jul-2024  rin modules: Build `ipl` module only if MKIPFILTER is enabled
 1.290  20-May-2024  pgoyette branches: 1.290.2;
Oooppss remove some local change that was accidentally committed
 1.289  20-May-2024  pgoyette Don't build the compat_110 module yet - there's no release_110 with which
we can be compatable.
 1.288  20-May-2024  riastradh sys/modules: Don't make compat_110.

Eventually we'll need this but it doesn't make sense until 11.0 is
released.
 1.287  19-May-2024  christos version dup3
 1.286  09-May-2024  pho port-arm/58194: Resurrect vmt(4) from bitrot

On this architecture vmt(4) used to search for a node "/hypervisor" in the
FDT and probed the VMware hypervisor call only when the node was
found. However, things appear to have changed and VMware no longer provides
the FDT node.

Since vmt(4) doesn't actually need to read anything from FDT, and the
hypervisor call logically resides in virtual CPUs themselves, it would be
better to attach it directly to cpu, just like how it's probed on x86.
 1.285  02-Apr-2024  riastradh bsd.own.mk: Enable MKLSJIT on aarch64.

Make sure there's only one copy of the conditional, in bsd.own.mk;
just make sys/modules/Makefile conditional on MKSLJIT so we don't
have to keep these in sync.

As a workaround for PR 58106, tweak the conditional definition of
SLJIT_CACHE_FLUSH to use cpu_icache_sync_range only in _HARDKERNEL,
and use __builtin___clear_cache in userland and in rump kernels.

PR 58103: bpfjit.kmod is not built on aarch64
 1.284  21-Mar-2024  riastradh acpihed(4): New driver for PNP0C33 to notify apei(4).

PNP0C33 denotes the ACPI Hardware Error Device, which exists only to
be a vector for event notifications.

PR kern/58046
 1.283  20-Mar-2024  riastradh apei(4): New driver for ACPI Platform Error Interfaces.

For now it is wired up only in x86 ALL kernels, and built as a module
for x86 and Arm. Once it gets a little more testing on machines with
APEI, I would like to flip it on by default.

PR kern/58046
 1.282  09-Mar-2024  mrg skip this subdir for "make includes".

it's excessively slow and does nothing (nor should it.)
 1.281  26-Dec-2023  pgoyette Unhook radeondrm module from the build; it doesn't work, and
it's just tempting someone to try it. Leave the files around
in case someone wants to pursue making this work.

Should address kern/57793

XXX Related modules from the same legacy era should probably be
XXX removed, too, but so far only radeondrm has been reported
XXX as an issue. Kep an eye out for sisdrm, savagedrm, tdfxdrm,
XXX and r128drm.
 1.280  27-Aug-2023  kardel make owtemp a module
 1.279  09-Aug-2023  andvar viadrmums(4): build legacy VIA DRM UMS driver module for amd64.

This driver is not built-in by default, thus loadable module can help (un)lucky
owners of 64-bit capable VIA (Nano/Eden) systems or early AMD/Intel systems
with some VIA chipsets, which include VIA integrated graphics.
I also boldly added product IDs for few later models from VX8xx/VX9xx chipsets
without 3D support (DX9_0) to "expand" the driver support to more systems.
Tested successfully basic functionality on VX800, and partially successfully
on VX900 (on VX900 Xorg failed to initialize due to openchrome related issues,
viadrmums attaches and it is by used the driver).
Didn't test on VX855, I don't have one.

Pull up to netbsd-10 is needed.
 1.278  07-May-2023  skrll RISC-V support that works on QEMU with a single hart.

Thanks for Simon Burge for plic(4).
 1.277  13-Apr-2023  riastradh sys/modules/Makefile: Use MACHINE_CPU, not MACHINE_ARCH, for aarch64.

This way it covers both little-endian and big-endian.
 1.276  11-Apr-2023  riastradh aarch64: Build drm modules.
 1.275  19-Dec-2022  pgoyette Create compat_100 module infrastructure now that we have branched
for NetBSD-10
 1.274  03-Dec-2022  brad branches: 1.274.2;


Split the BMP280 / BME280 driver into common code and create I2C and
SPI attachments.
 1.273  21-Nov-2022  brad A driver for the Bosch BMP280 / BME280 temperature, humidity and
atmospheric pressure sensor. This is an inexpensive to moderately
expensive chip available from a large number of places. The driver
supports all aspects of the two chips, except for the repeating read
mode which would allow for sub-second queries, such as fall detection
or perhaps even as an altimeter. This driver also only supports the
I2C interface and not the SPI interface.

The BME280, the one with humidity, is not fully tested at this point,
awaiting upon a breakout board and may not show proper humidity.
 1.272  17-Nov-2022  brad A driver for the Aosong AHT20 temperature and humidity sensor. While
slow for an I2C sensor it is inexpensive and should work well enough
in most indoor conditions. All features of the chip are supported.
 1.271  07-Sep-2022  martin Move emuxki from i386/amd64 specific modules to attachment specific
modules (effectively disabling it for the build for now, as it needs
setlist fixes and breaks the build).
 1.270  07-Sep-2022  khorben emuxki(4): allow building as a module

Tested on NetBSD/amd64 with a Sound Blaster Live! Value (CT4870)

Note that this required setting outputs.master to the maximum value
allowed (255) to get sound out, and then cranking the volume pretty
high.

Additional sound cards sponsored by the NetBSD Foundation; thanks!
 1.269  28-Jul-2022  riastradh drm: Hook up the drmkms modules to the build.
 1.268  27-Jul-2022  maya Enable amdgpu module & firmware on x86

Make it easier to test this one out, add `load amdgpu` before boot netbsd.

XXX there should probably be a drm block in sys/modules/Makefile which
includes aarch64.
 1.267  17-Jul-2022  riastradh drm: Modularize ttm.
 1.266  04-Jun-2022  pgoyette Combine the midi and sequencer modules into a single midi_seq module
to avoid a circular dependency as noted in kern/56772. Retain minimal
modules of the original names to accomodate auto-loading upon access
to the /dev/xxx nodes.
 1.265  14-Apr-2022  pgoyette Split some common stuff into scsi_subr module. This enables loading
of the iscsi module whether or not there are any scsi things built
into the kernel.

Addresses the iscsi portion of kern/56772
 1.264  01-Apr-2022  pgoyette Create a loaable adiantum module, and make cgd require it.

This enablees use of a loadable cgd module, rather thtan requiring
it to be built-in.

Partially resolves kern/56772
 1.263  01-Apr-2022  pgoyette Split i2c_subr.c into a separate module rather than including it in
the iic module. There are valid configurations where i2c_subr code
can be both built-in and part of a loaded module (eg, piixpm is in
the kernel, but the iic module is loaded later). This causes the
in-kernel linker to detect a duplicate symbol.
 1.262  07-Dec-2021  brad A driver and user land utility for the Sparkfun Serial Controlled Motor
Driver module as illustrated here:

https://www.sparkfun.com/products/13911

A SCMD module is a ARM SOC simular to a Arduino in front of a motor
driver chip. The single SCMD module can control two motors and up to
16 additional modules can be chained together using an internal I2C
bus. One can interface with the SCMD using tty uart commands, SPI or
I2C. The driver in this commit adds a kernel driver for the I2C and
SPI interfaces. The command line utility provides a set of
convenience commands that support most of the functions of the SCMD
and is able to use the tty uart mode, SPI user land or the included
kernel driver in a uniform manor.

The use of the SCMD module is mostly for small robots and the like,
but it can control anything that is controllable by voltage.
 1.261  25-Nov-2021  ryo add support COMPAT_LINUX32 for aarch64
 1.260  06-Nov-2021  brad Driver for the Sensirion SHT30/SHT31/SHT35 temperature and humidity
sensor such as:

https://www.adafruit.com/product/2857

This is a higher priced sensor with a lot of features, including the
ability to do sub-second periodic updates. The driver supports
everything about the sensor except for the alert pin.
 1.259  14-Oct-2021  brad A driver for the Sensirion SGP40 MOx gas sensor. An example of this
chip from Adafruit is:

https://www.adafruit.com/product/4829

This is a moderately priced gas sensor that can detect volatile
organic compounds in the air. The driver uses the 3-clause BSD
licensed VOC algorithm provided by Sensirion to turn the raw sensor
metric into a VOC index which can indicate the quality of the air in a
particular indoor environment. All published functions of the chip
are supported and one unpublished feature.
 1.258  09-Oct-2021  ryo Modularize compat_linux(8) for aarch64.
 1.257  03-Oct-2021  brad A driver for the Sensirion SHT40/SHT41/SHT45 temperature and humidity
sensor. An example of this chip is:

https://www.adafruit.com/product/4885

This is a lower cost chip that provides higher then usual precision
according to the data sheet. This driver supports all of the published
functions that the chip has.
 1.256  25-Sep-2021  maya Disable drmkms module builds.

They haven't been functional (and won't be before fixing genfb abi).
In a new drm update, we haven't prioritized fixing the build either.
 1.255  11-Sep-2021  pgoyette Build and install the if_run module. run(4) is not necessarily included
in all GENERIC kernels (as reported on libera IRC).
 1.254  18-Aug-2021  christos Fix broken name
 1.253  17-Aug-2021  kre s/blake2s/blakes2s/ to match the directory that exists
 1.252  17-Aug-2021  christos modules for blake2s libsodium and if_wg
 1.251  09-Aug-2021  andvar fix various typos in compatibility, mainly in comments.
 1.250  17-May-2021  yamaguchi Add a new link-aggregation pseudo interface named lagg(4)

- FreeBSD's lagg(4) based implementation
- MP-safe and MP-scalable
 1.249  25-Mar-2021  nia branches: 1.249.2; 1.249.4;
don't restrict pad module to i386 and amd64.

- module build tested on amiga, vax, i386, amd64, evbarm.
- build.sh release tested on i386.
- pad module functionality tested on aarch64.
 1.248  01-Nov-2020  pgoyette branches: 1.248.2;
Separate the compat_netbsd32_coredump from the compat_netbsd32 and
coredump modules, into its own module.

Welcome to 7.99.75 !!!
 1.247  14-Oct-2020  ryo branches: 1.247.2;
modularize, and fix build error
 1.246  26-Sep-2020  jmcneill Add HAVE_NVMM and use it to control the build of NVMM related components.
Defined to "yes" on amd64, "no" everywhere else.
 1.245  08-Sep-2020  yamaguchi Added iavf(4) that is based on OpenBSD's iavf(4) implementation

reviewed by msaitoh@n.o and knakahara@n.o
 1.244  04-Apr-2020  jdolecek remove SMBFS and nsmb(4) - kernel part

it's unmaintained and supports only obsolete SMB1
 1.243  12-Mar-2020  pgoyette Split out the quota code from the rest of compat_netbsd32 module. This
allows loading of compat_netbsd32 on kernels that don't have ``options
QUOTA'' enabled.
 1.242  11-Mar-2020  skrll Fixup the evbarm PCI modules
 1.241  29-Feb-2020  skrll Disable hifn again
 1.240  29-Feb-2020  skrll Group some PCI only modules together and only build them on a subset of
platforms. The list is not complete.
 1.239  27-Feb-2020  yamaguchi Make ixl(4) be able to build as a module
 1.238  09-Feb-2020  jmcneill Retire azalia(4).
 1.237  21-Jan-2020  pgoyette Split the compat_50 module into two, separating the QUOTA-related
stuff from the rest of the module. This allows loading of the
(main) compat_50 module on kernels that don't include ``options
QUOTA''.

Welcome to 9.99.40 !

Addresses PR kern/54875
 1.236  19-Jan-2020  riastradh Remove filemon(4).

Discussed on tech-kern:
https://mail-index.NetBSD.org/tech-kern/2020/01/13/msg025938.html

This was never (intentionally) enabled by default, and the design has
some shortcomings. You can get mostly the same results with ktrace,
as in usr.bin/make/filemon/filemon_ktrace.c which is now used instead
of filemon for make's meta mode.

If applications require higher performance than ktrace, or nesting
that ktrace doesn't support, we might consider adding something back
into the vfs system calls themselves, without hijacking the syscall
table. (Might want a more reliable output format too, e.g. one that
can handle newlines in file names.)
 1.235  19-Jan-2020  thorpej Remove the strip(4) - Starmode Radio IP - pseudo-device driver. It is
long since obsolete.
 1.234  01-Jan-2020  ryo branches: 1.234.2;
Add module build for aq(4)
 1.233  23-Dec-2019  maxv Revert the removal of filemon.
 1.232  18-Dec-2019  maxv Retire filemon, discussed on tech-kern@.
 1.231  10-Dec-2019  yamaguchi Ported driver for Intel Ethernet 700 series

reviewed by msaitoh and knakahara
 1.230  28-Oct-2019  pgoyette Continue to build the filemon module, but don't install it. Hopefully
this will help us detect any additional bit-rot that might occur.

XXX It might be a good idea to modify the file permissions on /dev/filemon
XXX to prevent auto-loading of the driver module by non-privileged users.
 1.229  28-Oct-2019  maya Disable filemon.

It isn't suited for general use (that is, it poses security risks),
but the existence of the module means it is auto-loaded when /dev/filemon
is opened, which can be done by any user.

Thanks Ilja van Sprundel for the heads up.
 1.228  28-Oct-2019  ozaki-r Implement a front-end driver of virtio-9p called vio9p

In conjunction with mount_9p, it enables a NetBSD system running as a VM guest
to mount an exported filesystem by the host via virtio-9p. It exports a 9p
end-point of virtio-9p via a character device file for mount_9p.

Reviewed by yamaguchi@
 1.227  22-Sep-2019  christos Add a new member to struct vfsstat and grow the unused members
The new member is caled f_mntfromlabel and it is the dkw_wname
of the corresponding wedge. This is now used by df -W to display
the mountpoint name as NAME=
 1.226  17-Sep-2019  mrg enable building modules for if_aue(4), if_cdce(4), if_cue(4),
if_kue(4), if_upl(4), if_url(4), and if_urndis(4)
 1.225  17-Sep-2019  mrg build exec_elf32 module on arm64.
 1.224  08-Aug-2019  skrll Build an if_udav module (untested)
 1.223  31-Jul-2019  mrg introduce a library of common code / backends to share code between
USB ethernet drivers.

usbnet.h introduces a new set of APIs to provide common solutions
for these driver features:
- USB endpoint pipe handling
- rx and tx chain handling
- generic handlers or support for several struct ifnet callbacks
- MII bus locking
- interrupt handling
- partial autoconf handling: much of attach, and detach/activate
can use common versions directly.

currently, only axen(4) and cdce(4) are converted. the reductions
in these drivers are quite significant: if_cdce.c is reduced from
1000 lines to 320 lines, and if_axen is reduced from 1902 lines
to 1021 lines.

add a "usbnet" module and make the if_axen module depend upon it.
 1.222  20-Jun-2019  pgoyette branches: 1.222.2;
Split the ufs code out of the ffs module and into its own module.

Adapt chfs and ext2fs modules accordingly.
 1.221  26-Mar-2019  pgoyette Now that the if_srt module has a chance of working (ie, it now
actually attaches/detaches the cdevsw!), add the required srt
module to allow module autoload triggered by opening /dev/srtN

XXX As noted in the recent commit to if_srt.c, someone(tm) needs
XXX to create the /dev/srt* device nodes with major 179. :)
 1.220  24-Mar-2019  pgoyette Add a loadable module for tap(4).

The code was already modularized, we simply didn't build the loadable
module.

Note also that since the tap(4) device can be reasonably accessed by
either creating a device instance (using ifconfig(8)) or by opening
/dev/tap, we need to create both if_tap.kmod and tap.kmod (similar to
what is done with tun(4)).
 1.219  06-Feb-2019  rin Add ure(4): RealTek RTL8152/RTL8153 10/100/Gigabit USB Ethernet device.
Ported from OpenBSD. Support for RX/TX checksum offload added by myself.
 1.218  04-Feb-2019  mrg don't assume _LP64 == supports COMPAT_NETBSD32.

this is not true for alpha, ia64 and arm32 ports, and the first two
were not building because of it, and the latter would be missing
the oabi support (likely not a big deal, but still wrong.)

add a makefile fragment that tells you if it is supported and include
it where needed to define COMPAT_NETBSD32 when building the normal
kernel (ie, modules & rump.)


fixes alpha build, probably fixes ia64 build.


XXX: still leaves some netbsd32 code in rf_netbsdkintf.c, that should
be moved into some hooks, but first the configuration setup
needs to be moved into a common function the netbsd32 code can
call into, vs living in the switch case itself.
 1.217  03-Feb-2019  pgoyette Don't include the raidframe compat code in the main raid module, the
compat code lives in their own compat_raid_xx modules, which will now
be autoloaded if needed.

While here, extract the compat_netbsd32_raid code into its own module,
too.

Welcome to 8.99.34
 1.216  27-Jan-2019  pgoyette Merge the [pgoyette-compat] branch
 1.215  21-Jan-2019  alnsn Build bpfjit and sljit modules on aarch64.
 1.214  19-Dec-2018  maxv Remove compat_svr4 and compat_svr4_32, as discussed on tech-kern@ recently,
but also as discussed several times in the past.
 1.213  27-Nov-2018  pgoyette Remove the rest of my local change that somehow snuck in to an
earlier commit.
 1.212  27-Nov-2018  msaitoh Remove obsolete ksem entry to prevent build break.
 1.211  27-Nov-2018  pgoyette Include the compat_netbsd32* modules for sparc64

Their absence was noticed by martin@ when the recent libnv-related
build failure on amd64 did not affect sparc64!
 1.210  07-Nov-2018  maxv Add NVMM - for NetBSD Virtual Machine Monitor -, a kernel driver that
provides support for hardware-accelerated virtualization on NetBSD.

It is made of an MI frontend, to which MD backends can be plugged. One
MD backend is implemented, x86-SVM, for x86 AMD CPUs.

We install

/usr/include/dev/nvmm/nvmm.h
/usr/include/dev/nvmm/nvmm_ioctl.h
/usr/include/dev/nvmm/{arch}/nvmm_{arch}.h

And the kernel module. For now, the only architecture where we do that
is amd64 (arch=x86).

NVMM is not enabled by default in amd64-GENERIC, but is instead easily
modloadable.

Sent to tech-kern@ a month ago. Validated with kASan, and optimized
with tprof.
 1.209  28-Aug-2018  riastradh Rework PCI and AGP conditionalization.

- Push drm_pci_set_unique into driver callback.
- Eliminate drm_pci_set_unique_hook.
- Gather all drm_agp_* functions into struct drm_agp_hooks.
- Replace the nonsensical old atomic garbage by serious locking.
- Make drm_agpsupport.c its own module.
- Eliminate NDRMKMS_PCI.
- Use NAGP from "agp.h" only in drm_module.c for horrible hack.
=> See comment in file for rationale.
- Always define CONFIG_PCI=1 and CONFIG_AGP=1.
- Always go through the drm_agp_* function hooks.
- Ifdef out nouveau agp stuff that doesn't go through drm_agp_*
for reasons that I'm too frustrated to figure out tonight.
- pci_iomap no longer automagically does agp_i810_borrow.
=> Use drm_agp_borrow instead.
 1.208  25-Aug-2018  rin Add mue(4), driver for Microchip LAN75xx/LAN78xx known as internal NIC of
Raspberry Pi 3 B+, from OpenBSD.

Tested on Raspberry Pi 3 B+ (LAN7800) and Z-TEK ZE582 (LAN7500).

* BUGS/TODO

- If the media type is set to something other than 1000baseT-FDX, data
transmission becomes quite unstable. Also, ukphy(4) recognize 1000baseT as
a supported media type, but it is not in fact.

- Catch up with changes made to usmsc(4) in nick-nhusb branch, i.e.,
make the driver MP-safe.

- Support RX/VLAN/TX chekcsum offloading.
 1.207  24-Jul-2018  maxv Merge the tprof_pmi and tprof_amdpmi modules into a single tprof_x86
module.
 1.206  10-Jul-2018  maya Remove viadrm(4), superseded by viadrmums.

Aside from viadrm using older drm code, it's also dysfunctional right now.
See PR port-i386/53364.
 1.205  06-Jun-2018  jakllsch branches: 1.205.2;
add virtio_pci to list of not-yet-enabled modules
 1.204  20-May-2018  thorpej Add a 1PPS-over-GPIO driver, originally by Brad Spencer, with changes by
me to adapt to the new GPIO interrupt interface and support a wider variety
of GPIO pin configuations.

PR kern/51676
 1.203  19-May-2018  thorpej Add an example "gpioirq" driver that demonstrates interrupts on GPIO
pins. Will be enhanced in the future to support sending events to
user space on edge-triggered interrupt events.

Based on initial work by Brad Spencer.
PR kern/51676
 1.202  26-Feb-2018  pgoyette branches: 1.202.2;
Descend into subdirectory to create the module for ichsmb(4) driver.
 1.201  25-Feb-2018  kamil Remove ksem module reference

This does not exist in HEAD.

It looks like accidentally committed in:

Add new modules (for i386 and amd64 only) for the imcsmb SMBus driver.
src/sys/modules/Makefile r1.200
 1.200  25-Feb-2018  pgoyette Add new modules (for i386 and amd64 only) for the imcsmb SMBus driver.
 1.199  25-Jan-2018  pgoyette Create amdsmn(4) amd amdzentemp(4) modules for X86
 1.198  09-Jan-2018  christos Merge autofs support from: Tomohiro Kusumi
XXX: Does not work yet
 1.197  29-Dec-2017  christos PR/52848: Brad Spencer: Add module glue for AM2315 and SI70xx drivers
 1.196  09-Dec-2017  pgoyette Split ip_ecn code into its own module, so it can be shared between
gif(4), stf(4), and ipsec(4). Without this, loading the if_gif
module can result in redefined global symbols if either ipsec(4) or
stf(4) but not gif(4) is built into the kernel.

Fixes PR kern/52795 (as reported by martin@ via irc).

XXX pullup to netbsd-8
 1.195  11-Aug-2017  maxv Don't build the ibcs2 module on i386.
 1.194  01-Aug-2017  maxv Don't build the svr4 module on i386.
 1.193  12-Jun-2017  pgoyette Descend into SUBDIR to actually build the wsbell module.

Missed in previous commit - thanks kre@
 1.192  01-Jun-2017  pgoyette branches: 1.192.2;
Add the modules for audio, midi, and sequencer
 1.191  19-Apr-2017  riastradh Modularize ualea(4).

Unclear why we have a separate xyz.ioconf for module and XYZ.ioconf
for rump component, but at least xyz_modcmd obviates the need for
xyz_component.c (though evidently the latter could have been replaced
anyway by RUMP_COMPONENT=ioconf in the rump component Makefile).
 1.190  25-Mar-2017  jdolecek add vioscsi to the list (disabled)
 1.189  16-Feb-2017  knakahara add l2tp(4) L2TPv3 interface.

originally implemented by IIJ SEIL team.
 1.188  15-Dec-2016  pgoyette branches: 1.188.2;
Create a single combined module for spkr_pcppi and spkr_audio, and
build it for all architectures.

By doing this, we can handle pcppi, audio, or both attachments with
non-built-in modules.

XXX Still to do: the module currently cannot be unloaded, and the
XXX spkr device(s) currently cannot be detached. (Really, two
XXX sides of the same problem.)
 1.187  15-Dec-2016  christos delete spkr_synth module
 1.186  10-Dec-2016  pgoyette Create a new module for the synthesized speaker(4).

XXX Device module autoload (invoked when the /dev/speaker is opened, and
XXX no driver exists) will not find this module. On i386 and amd64, the
XXX autoload will find the spkr module (spkr0 at pcppi0) and that module
XXX will be autoloaded. For other architectures, either include the
XXX "spkr0 at audio0" in your config file, or manually load this new
XXX spkr_synth module using modload(8).
 1.185  08-Dec-2016  nat Revert to previous. Add PCPPISPEAKER flag to fix build.
 1.184  08-Dec-2016  nat Fix building of the spkr module. The module now is the synthesized speaker.
Reported by joerg@
 1.183  16-Nov-2016  pgoyette Build the newly-created bufq_* modules
 1.182  02-Nov-2016  pgoyette * Split sys/kern/sys_process.c into three parts:
1 - ptrace(2) syscall for native emulation
2 - common ptrace(2) syscall code (shared with compat_netbsd32)
3 - support routines that are shared with PROCFS and/or KTRACE

* Add module glue for #1 and #2. Both modules will be built-in to the
kernel if "options PTRACE" is included in the config file (this is
the default, defined in sys/conf/std).

* Mark the ptrace(2) syscall as modular in syscalls.master (generated
files will be committed shortly).

* Conditionalize all remaining portions of PTRACE code on a new kernel
option PTRACE_HOOKS.

XXX Instead of PROCFS depending on 'options PTRACE', we should probably
just add a procfs attribute to the sys/kern/sys_process.c file's
entry in files.kern, and add PROCFS to the "#if defineds" for
process_domem(). It's really confusing to have two different ways
of requiring this file.
 1.181  19-Oct-2016  skrll PR kern/51514: ptrace(2) fails for 32-bit process on 64-bit kernel

Updated from the original patch in the PR by me.
 1.180  15-Oct-2016  skrll Sort entries within conditional blocks
 1.179  27-Sep-2016  pgoyette For now, disable all the newly-created ld(4) related modules. We need
to come up with a better way to handle attachment-specific modules, and
possibly a better directory structure for modules in general, as the
current mechanism doesn't scale.
 1.178  27-Sep-2016  pgoyette Add module build infrastructure for ld and its attachments
 1.177  16-Sep-2016  jdolecek make it possible to load nvme(4) as module to ease testing; currently somewhat
non-optimal, since it includes the ld(4) code also and hence requires the
kernel config to have 'no ld'
 1.176  10-Sep-2016  pgoyette Add a dummy "tun" module, whose only job is to trigger an autoload of
required module "if_tun". This allows access to /dev/tunN to autload
the require interface module.

XXX There's might be a better place/name for net/tun.c
 1.175  07-Aug-2016  christos add new modules
 1.174  06-Aug-2016  pgoyette Modularize the pppoe driver
 1.173  06-Aug-2016  pgoyette Modularize the sppp_subr stuff so it can be shared by pppoe and lmc
drivers as they get modularized.
 1.172  06-Aug-2016  christos Add modules for strip and slip
 1.171  06-Aug-2016  christos rename the ppp module so that it autoloads.
 1.170  06-Aug-2016  pgoyette Modularize the ppp driver, and adjust dependencies of the compressor
modules.

For now, this is still included as a built-in module in GENERIC kernels.
 1.169  05-Aug-2016  scole PR port-ia64/51261

Use exec_elf64 modules for ia64
 1.168  04-Aug-2016  pgoyette Add and enable a new module, slcompress

This is a prerequisite to modularizing the ppp pseudo-device
 1.167  09-Jun-2016  pgoyette branches: 1.167.2;
New module for ipl (aka ipfilter).
 1.166  07-Jun-2016  pgoyette Create separate modules for i2c_bitbang and bpf_filter so these files
can be included in kernels which need them without also duplicating
them in other modules. Removes the duplicate symbols I found which
prevented loading i2c and bpf modules after having fixed PR 45125.
 1.165  26-Dec-2015  pgoyette Descend into new raid module, and update sets lists.
 1.164  07-Dec-2015  pgoyette Modularize drvctl(4)
 1.163  07-Dec-2015  pgoyette Modularize the clockctl pseudo-device and link to the build.
 1.162  03-Dec-2015  pgoyette Split out the SYSV IPC stuff into its own compat_netbsd32_sysvipc
module. Adjust dependencies as needed.
 1.161  03-Dec-2015  pgoyette Merge the compat_sysv module into the sysv_ipc module - it should
never have been a separate module in the first place (my bad).

Adjust dependencies as appropriate.
 1.160  02-Dec-2015  pgoyette Ooops, remove a local change that wasn't supposed to be committed.
 1.159  01-Dec-2015  pgoyette Create new compat_netbsd32_mqueue module, and descend into subdir to
build it.
 1.158  01-Dec-2015  pgoyette Descend into new compat_netbsd32_nfssrv directory for new module, and
remove netbsd32_nfssvc.c from the original compat_netbsd32 module.
 1.157  15-Nov-2015  pgoyette Actually create the wapbl module, since it works.
 1.156  09-Jul-2015  matt Don't build compat_netbsd32 if mips64 && building mips-n32
 1.155  17-May-2015  pgoyette Add the spkr module to the build.
 1.154  14-May-2015  pgoyette Descend into the examples to build them all the time. (They will not
be installed, but we still want to make sure they build to avoid any
bit-rot).
 1.153  13-May-2015  pgoyette Descend into subdir to actually build the new sysv_ipc module
 1.152  10-May-2015  pgoyette Split the SYSV* compat code out into a separate compat_sysv module.

For monolithic kernels, both modules will be compiled as "built-ins",
while modular environments will be able to load the SYSVSEM, SYSVSHM,
and SYSVMSG code independant from the rest of compat.

This is a necessary precursor step to making the "STD" SYSV* code
into a separate module.

Tested in both monolithic and modular environments with no errors
seen.
 1.151  09-May-2015  matt Build compat_netbsd32.kmod for arm and mips64
 1.150  03-May-2015  pgoyette Build the tco watchdog module
 1.149  29-Apr-2015  riastradh Enable build of viadrmums module, i386-only.
 1.148  29-Apr-2015  riastradh Hold off on building viadrmums module until it works.
 1.147  29-Apr-2015  riastradh Module for viadrmums.
 1.146  23-Apr-2015  pgoyette Build modules for sysmon and its subcomponents
 1.145  18-Apr-2015  pgoyette Add modularized swwdog driver.
 1.144  28-Mar-2015  jmcneill Split hdaudio and PCI attach glue. Even though the driver was written with
this separation in mind, all of the code lived in sys/dev/pci/hdaudio. Move
common parts to sys/dev/hdaudio and PCI attach glue to sys/dev/pci.
 1.143  07-Mar-2015  jmcneill i2c devices don't actually have a dependency on "iic" (the bus driver)
but on "i2cexec". Create an i2cexec module (i2c_exec.c) to mirror the
dependencies in files.i2c and switch device drivers to depend on "i2cexec"
module instead.

A kernel with a USB stack and no I2C controller / bus attachment would spit
out a bunch of "WARNING: module error: can't find builtin dependency `iic'"
messages at boot. This change solves that problem.
 1.142  10-Nov-2014  christos branches: 1.142.2;
dedup and add the drmkms modules
 1.141  19-Sep-2014  christos new module
 1.140  10-Aug-2014  bad branches: 1.140.2;
Revert most of rev 1.137. Build ubsec module only for i386 and amd64 and
punt on the other arches.
 1.139  10-Aug-2014  matt Changes to existing files to enable building AARCH64 userland.
evbarm64-el
This is clang only. While gcc4.8 supports aarch64, no netbsd support has
been written for aarch64 with gcc4.8.
 1.138  09-Aug-2014  riz empty() wants a variable name, not a value. This should un-break
the arm an mips arch builds which were broken by the previous
commit.
 1.137  09-Aug-2014  bad Build ubsec(4) as a module on all arches where it was obivous how to do so.
That excludes powerpc because evppc OEA is missing definitions for
PPC_INTR_IMPL and PPC_PCI_MACHDEP_IMPL.
Adjust set lists.

Compile tested for most arches only.
 1.136  18-May-2014  kardel add HYT-221/271/939 humidity/temperature I2C sensor
extend envsys(4) framework by %rH (relative humidity)
 1.135  03-Jan-2014  pgoyette branches: 1.135.2;
Add hifn(4) and ubsec(4) to the NOTYET section, and note that they can
be successfully built only on architectures that have PCI.
 1.134  01-Jan-2014  pgoyette Modularize the opencrypto components and link to the build
 1.133  01-Jan-2014  pgoyette Create modules for software crypto components.
 1.132  29-Dec-2013  pgoyette Re-sort in alphabetic sequence.
 1.131  29-Dec-2013  pgoyette Modularize net/zlib so it can be used by the vnd module (and, eventually,
by an opencrypto module).
 1.130  28-Dec-2013  pgoyette Descend into ccd
 1.129  28-Dec-2013  pgoyette Make dksubr.c into a module, and make the cgd and dm modules depend on
it.

Now that cgd is completely modularized, descend into modules/cgd to
actually create the module.
 1.128  16-Dec-2013  lneto renamed luacore to luasystm
 1.127  18-Nov-2013  bad ubsec is not a MI buildable module. disable it for now.
 1.126  17-Nov-2013  alnsn Build and install sljit.kmod and bpfjit.kmod iff ${MKSLJIT} != "no".
 1.125  17-Nov-2013  bad Make ubsec(4) loadable as kmod.
 1.124  16-Nov-2013  skrll Build a module for usmsc(4).
 1.123  28-Oct-2013  mbalmer linke pmf(9l) to the build
 1.122  28-Oct-2013  mbalmer link core(9l) (docs pending) to the build
 1.121  28-Oct-2013  mbalmer link the lua(4) module to the build
 1.120  26-Oct-2013  nonaka Add driver for ASIX AX88178a and AX88179 Ethernet interface.
Ported from OpenBSD.
 1.119  12-Mar-2013  christos branches: 1.119.6;
normali{s,z}e
 1.118  10-Mar-2013  christos new npflog driver split out of npf_ext_log.
 1.117  10-Dec-2012  rmind Add NPF "rndblock" extension to randomly drop packets (using a random function
with a percentage or modulo operation). This is a demo module, although it can
be used for packet loss simulation. Example of a procedure in npf.conf:

procedure "somedrop" {
# Drop 1.9% of the traffic
rndblock: percentage 1.9
}
 1.116  02-Dec-2012  chs adapt the cyclic module and profile dtrace provider to netbsd.
for now, just hook the cyclic callback into hardclock().
 1.115  06-Nov-2012  alnsn Enable bpfjit on sparc.
 1.114  28-Oct-2012  alnsn Build bpfjit on i386.
 1.113  27-Oct-2012  alnsn Add bpfjit and enable it for amd64.
 1.112  13-Oct-2012  alnsn Enable sljit in amd64 kernel and modules.
 1.111  16-Sep-2012  rmind Implement dynamic NPF extensions interface. An extension consists of
dynamically loaded module (.so) supplementing npfctl(8) and a kernel
module. Move normalisation and logging functionality into their own
extensions. More improvements to come.
 1.110  06-Aug-2012  martin branches: 1.110.2;
Move hdaudio and hdafg modules into x86 only section for now, untill
somebody creates a "all archs with PCI" ifdef.
 1.109  05-Aug-2012  riastradh Build hdaudio and hdafg modules.
 1.108  04-Aug-2012  riastradh Add a module for uatp(4).
 1.107  30-Jun-2012  reinoud Move i386 and amd64 usermode configurations to their respective directories
and make the usermode kernels buildalbe under build.sh.

The resulting kernels are build and packaged correctly as are the associated
modules.
 1.106  26-Apr-2012  christos split the coda module in a device one, and a vfs one so that it works.
 1.105  25-Apr-2012  pgoyette Actually create the if_axe module - driver was modularized a while ago.
 1.104  25-Apr-2012  pgoyette Actually create the dbcool(4) module. Driver was modularized a while ago.
 1.103  25-Apr-2012  pgoyette Create the module for sdtemp (driver itself was modularized some time ago)
 1.102  11-Mar-2012  joerg Also kill the module build system for ksem.
 1.101  17-Jan-2012  jakllsch branches: 1.101.2;
Add lm, lm_isa_common, lm_isa, lm_wbsio and wbsio modules to the x86 build.
 1.100  04-Dec-2011  jym Hook secmodel_extensions(9) to modules build.
 1.99  24-Nov-2011  ahoka branches: 1.99.2;
Add module glue for CHFS.
 1.98  15-Nov-2011  riz Build and install new in-kernel iscsi initiator kernel module and associated
binaries (iscsid, iscsictl) if MKISCSI != no. Initiator can also be built
into a kernel by adding 'pseudo-device iscsi' in kernel configuration.
 1.97  06-Nov-2011  tron Add "npf_alg_icmp" kernel module.
 1.96  06-Nov-2011  tron Build "npf" module.
 1.95  18-Oct-2011  jmcneill branches: 1.95.2;
add & enable vmt module
 1.94  02-Oct-2011  mbalmer Build iic(4) and gpioiic(4) as modules.
 1.93  29-Sep-2011  sjg Add filemon to the modules we build.
 1.92  31-Aug-2011  mbalmer Link the gpioow(4) and onewire(4) modules to the build and add them to the
lists.
 1.91  29-Aug-2011  jruoho Add Zarlink ZL10353 DVB demodulator (or as it is now know, Intel CE623x).
 1.90  28-Aug-2011  jmcneill add mach64drm, mgadrm, r128drm, savagedrm, sisdrm, and tdfxdrm modules
 1.89  12-Aug-2011  mbalmer gpio(4) and gpiosim(4) can now be built and used as modules. While here,
make some functions static.
 1.88  11-Aug-2011  mbalmer pwdog is not for all platforms, build only on i386, x86_64, and sparc64
 1.87  11-Aug-2011  mbalmer pwdog(4) is a device driver for QUANCOM Electronic PWDOG1 PCI
attached watchdog timers.
 1.86  09-Aug-2011  jruoho Build acpiwdrt(4) as a module on x86.
 1.85  09-Aug-2011  jruoho Two placeholder comments.
 1.84  09-Aug-2011  jmcneill include cx24227, lg3303, mt2131, nxt2k, tvpll, xc3028, coram, cxdtv, and emdtv
modules in x86 build
 1.83  09-Aug-2011  jruoho As wmieeepc(4) was added to amd64 GENERIC, build it also as a amd64 module.
 1.82  09-Aug-2011  jmcneill modify the dtv device api so hardware drivers can be loaded independently
of the dtv module
 1.81  01-Aug-2011  pgoyette Add build glue for modular spdmem(4) driver, and enable it
 1.80  31-Jul-2011  jmcneill build and install finsio module on i386 and amd64
 1.79  29-Jul-2011  jmcneill build and install itesio module on i386 and amd64
 1.78  19-Jul-2011  enami Build v7fs module on all architecture rather than only on i386.
 1.77  19-Jul-2011  tron Build 7th Edition(V7) File System as a kernel module.
 1.76  15-Jul-2011  jmcneill add nsclpcsio module to i386 build
 1.75  13-Jul-2011  jruoho A driver for HP 3D DriverGuard; a LIS3LV02DL-based accelerometer. Tested on
HP NC4400. Like aps(4), this is commented out in the GENERIC kernels.
 1.74  09-Jul-2011  jmcneill build dtv module
 1.73  15-Jun-2011  mrg build evbppc modules in 3 different flavours:

- oea (default)
- ibm4xx
- booke

this, together with earlier machine_module[] work, should allow evbppc
platforms to use modules.
 1.72  15-Jun-2011  jruoho Modularize hpet(4). Works nicely with the multiple bus locations.
 1.71  15-Jun-2011  jruoho Modularize amdtemp(4).
 1.70  14-Apr-2011  yamt branches: 1.70.2;
re-enable tprof_amdpmi
 1.69  04-Mar-2011  jruoho Add module build glue for odcm(4).
 1.68  26-Feb-2011  ahoka Import the Flash and NAND subsytem code contributed by the University
of Szeged, Hungary.

The commit includes:
- Flash layer, which gives a common API to access flash devices
- NAND controller subsystem for the flash layer
- An example OMAP driver which is used on BeagleBoard or alike ARM boards
 1.67  24-Feb-2011  jruoho Build glue for viac7temp(4).
 1.66  24-Feb-2011  jruoho Add build glue for powernow(4).
 1.65  23-Feb-2011  jruoho Build glue for est(4).
 1.64  20-Feb-2011  jruoho Add build glue for coretemp(4).
 1.63  20-Feb-2011  jruoho Build fujbp(4), fujhk(4), and wmieeepc(4) as modules.
 1.62  19-Feb-2011  jmcneill build padlock module on i386
 1.61  05-Feb-2011  christos fix build!
 1.60  05-Feb-2011  yamt build tprof_amdpmi
 1.59  16-Jan-2011  jmcneill branches: 1.59.2; 1.59.4;
build and install aps module on i386 and amd64
 1.58  09-Jan-2011  jruoho Add a dummy-driver for ACPI fans.
 1.57  05-Jan-2011  jruoho Add build files for acpipmtr(4) module.
 1.56  29-Dec-2010  jmcneill some platforms don't have bus_dma, so only build these modules on x86
 1.55  27-Dec-2010  jmcneill hook xc5k, au8522, and auvitek into build
 1.54  26-Oct-2010  jruoho Add asus(x) and hpqlb(4).
 1.53  25-Oct-2010  jruoho Build acpidalb(4), acpitz(4), acpivga(4), and aibs(4) as modules on x86.
More to come later.
 1.52  25-Oct-2010  jruoho Build acpiacad(4), acpibat(4), acpibut(4), acpicpu(4), acpilid(4), and
thinkpad(4) as modules on x86. More to come later.
 1.51  24-Oct-2010  jmcneill build acpiwmi as a module on x86
 1.50  24-Oct-2010  jmcneill build wmi drivers as modules on x86
 1.49  20-Oct-2010  tsutsui Also build and install compat_aoutm68k.kmod and exec_aout.kmod on m68000
to make things easier. ${MACHINE_ARCH} == ${MACHINE_CPU} on m68k
so we can't use ad.m68k for a set list to exclude m68000.
 1.48  19-Oct-2010  pgoyette Build the new swsensor(4) device and add to set lists
 1.47  15-Oct-2010  tsutsui Build and install compat_aoutm68k.kmod and exec_aout.kmod on m68k machines.
 1.46  31-May-2010  pgoyette Extract ACPIVERBOSE into a kernel module. The module can be builtin
by defining 'options ACPIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

ACPIVERBOSE also includes code to dump acpi/wmi data.
 1.45  30-May-2010  pgoyette Extract MIIVERBOSE into a kernel module. The module can be builtin
by defining 'options MIIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.
 1.44  30-May-2010  pgoyette Extract SCSIVERBOSE into a kernel module. The module can be builtin
by defining 'options SCSIVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not SCSI or
atapi support exists.
 1.43  29-May-2010  pgoyette Extract USBVERBOSE into a kernel module. The module can be builtin
by defining 'options USBVERBOSE' in the kernel config file (no change
from current behavior), or it can be loaded at boot time on those
architectures that support the boot loader's "load" command.

The module is built for all architectures, whether or not USB support
exists.
 1.42  24-May-2010  pgoyette Extract the vendor/product tables and related access routines into a
separate kernel module. Update pci bus attach routine to load the
module (if available) when we're about to start scanning the bus, and
unload the module after the scan is finished.

On architectures which support loading of modules by the boot loader,
the 'pciverbose' module can be loaded and executed without needing to
rebuild the kernel. On all architectures, using 'options PCIVERBOSE'
in the kernel configuration file will create a 'builtin' module which
is functionally equivalent to previous behavior.

XXX Although not nearly as large as the vendor and product tables,
XXX the PCI class and subclass tables might also be offloaded into
XXX the module at a future time.

XXX Cardbus (and possibly other) drivers should also be modified to
XXX load the module before scanning/attaching devices.
 1.41  12-Apr-2010  ahoka Connect the pf module to the build.
 1.40  09-Apr-2010  ahoka Connect the pad(4) kernel module to the build on i386 and amd64.
 1.39  21-Feb-2010  darran branches: 1.39.2;
DTrace: add the dtrace module to the build.
 1.38  25-Jan-2010  pooka branches: 1.38.2;
add bpf kmod
 1.37  05-Jan-2010  dyoung Fix MKBINUTILS=no builds by leaving out xldscripts.
 1.36  05-Dec-2009  pooka Remove the portalfs kernel file system driver. Replace mount_portal(8)
with a version based on puffs. User functionality remains the same.
 1.35  10-Nov-2009  skrll Move the kmodule linker script source into sys/modules/xldscripts. It is
not part of binutils and definitely not GPL v3.

Discussed with mrg.
 1.34  05-Oct-2009  haad Add zfs sets and needed veriables to hook zfs into the build. ZFS on i386
need still one fix othervise it should be ready for testing.
 1.33  02-Oct-2009  elad First part of secmodel cleanup and other misc. changes:

- Separate the suser part of the bsd44 secmodel into its own secmodel
and directory, pending even more cleanups. For revision history
purposes, the original location of the files was

src/sys/secmodel/bsd44/secmodel_bsd44_suser.c
src/sys/secmodel/bsd44/suser.h

- Add a man-page for secmodel_suser(9) and update the one for
secmodel_bsd44(9).

- Add a "secmodel" module class and use it. Userland program and
documentation updated.

- Manage secmodel count (nsecmodels) through the module framework.
This eliminates the need for secmodel_{,de}register() calls in
secmodel code.

- Prepare for secmodel modularization by adding relevant module bits.
The secmodels don't allow auto unload. The bsd44 secmodel depends
on the suser and securelevel secmodels. The overlay secmodel depends
on the bsd44 secmodel. As the module class is only cosmetic, and to
prevent ambiguity, the bsd44 and overlay secmodels are prefixed with
"secmodel_".

- Adapt the overlay secmodel to recent changes (mainly vnode scope).

- Stop using link-sets for the sysctl node(s) creation.

- Keep sysctl variables under nodes of their relevant secmodels. In
other words, don't create duplicates for the suser/securelevel
secmodels under the bsd44 secmodel, as the latter is merely used
for "grouping".

- For the suser and securelevel secmodels, "advertise presence" in
relevant sysctl nodes (sysctl.security.models.{suser,securelevel}).

- Get rid of the LKM preprocessor stuff.

- As secmodels are now modules, there's no need for an explicit call
to secmodel_start(); it's handled by the module framework. That
said, the module framework was adjusted to properly load secmodels
early during system startup.

- Adapt rump to changes: Instead of using empty stubs for securelevel,
simply use the suser secmodel. Also replace secmodel_start() with a
call to secmodel_suser_start().

- 5.99.20.

Testing was done on i386 ("release" build). Spearated module_init()
changes were tested on sparc and sparc64 as well by martin@ (thanks!).

Mailing list reference:

http://mail-index.netbsd.org/tech-kern/2009/09/25/msg006135.html
 1.32  27-Sep-2009  jmcneill enable viadrm kmod for i386
 1.31  19-Jul-2009  rmind Make POSIX message queues a kernel module.
 1.30  18-Jul-2009  reinoud Import read-only part of the NiLFS (v2) implementation for NetBSD. It has been
tested with a DEBUG+DIAGNOSTIC+LOCKDEBUG kernel. To summerise NiLFS, i'll
repeat my posting to tech-kern here:

NiLFS stands for New implementation of Logging File System; LFS done
right they claim :) It is at version 2 now and is being developed by NTT, the
Japanese telecom company and recently put into the linux source tree. See
http://www.nilfs.org. The on-disc format is not completely frozen and i expect
at least one minor revision to come in time.

The benefits of NiLFS are build-in fine-grained checkpointing, persistent
snapshots, multiple mounts and very large file and media support. Every
checkpoint can be transformed into a snapshot and v.v. It is said to perform
very well on flash media since it is not overwriting pieces apart from a
incidental update of the superblock, but that might change. It is accompanied
by a cleaner to clean up the segments and recover lost space.

My work is not a port of the linux code; its a new implementation. Porting the
code would be more work since its very linux oriented and never written to be
ported outside linux. The goal is to be fully interchangable. The code is non
intrusive to other parts of the kernel. It is also very light-weight.

The current state of the code is read-only access to both clean and dirty
NiLFS partitions. On mounting a dirty partition it rolls forward the log to
the last checkpoint. Full read-write support is however planned!

Just as the linux code, mount_nilfs allows for the `head' to be mounted
read/write and allows multiple read-only snapshots/checkpoint mounts next to
it.

By allowing the RW mount at a different snapshot for read-write it should be
possible eventually to revert back to a previous state; i.e. try to upgrade a
system and being able to revert to the exact state prior to the upgrade.

Compared to other FS's its pretty light-weight, suitable for embedded use and
on flash media. The read-only code is currently 17kb object code on
NetBSD/i386. I doubt the read-write code will surpass the 50 or 60. Compared
this to FFS being 156kb, UDF being 84 kb and NFS being 130kb. Run-time memory
usage is most likely not very different from other uses though maybe a bit
higher than FFS.
 1.29  10-Mar-2009  yamt enable tprof modules.
 1.28  05-Mar-2009  yamt whitespace
 1.27  14-Feb-2009  abs Convert more MACHINE tests to MACHINE_ARCH
 1.26  05-Feb-2009  haad branches: 1.26.2;
Revert previously changes. There is no cgd and ccd directory until I properly
test ccd.kmod and cgd.kmod.
 1.25  05-Feb-2009  haad Add support for the MODULAR framework to the vnd driver. Enable building of
vnd.kmod by default.
 1.24  05-Jan-2009  pooka sysvbfs module
 1.23  31-Dec-2008  agc Might as well install the dm devmapper module when we install the
other parts of the LVM tools - use the same MKLVM switch, though.
 1.22  05-Dec-2008  ad PR kern/40110: null, overlay and umap modules loading -> panic (layerfs symbols not there)

Add a layerfs module.
 1.21  29-Nov-2008  tsutsui - don't build compat_linux on alpha until sys/modules/compat_linux/Makefile
handles required MD files under sys/compat/linux/arch/alpha
- build exec_elf64 for all 64 bit arch
- use MACHINE_ARCH!="alpha" instead of MACHINE!="alpha" for exec_elf32 check

XXX we have many histrical inconsistent use of amd64 vs x86_64.
 1.20  28-Nov-2008  he Build compat_linux and exec_elf64 for alpha.
 1.19  25-Nov-2008  cube Descend into the new modules during the build.
 1.18  24-Nov-2008  ad Rename some modules to match their vfs name.
 1.17  23-Nov-2008  martin exec_elf32 makes no sense on alpha
 1.16  20-Nov-2008  ad Rename the accept filter modules to make module name match filter name.
 1.15  19-Nov-2008  ad Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
 1.14  14-Nov-2008  ad Make POSIX AIO loadable as a module.
 1.13  13-Nov-2008  ad +compat_ossaudio
 1.12  12-Nov-2008  ad Allow the POSIX semaphore code to be loaded as a module.
 1.11  12-Nov-2008  ad Remove LKMs and switch to the module framework, pass 1.

Proposed on tech-kern@.
 1.10  23-Sep-2008  hannken branches: 1.10.2;
Build modular fss driver.

Reviewed by: Quentin Garnier <cube@netbsd.org>
 1.9  30-Aug-2008  reinoud Back out dirhash kernel module for now.
 1.8  29-Aug-2008  reinoud Add dirhash kernel module for sharing dirhashing support with other FS
other than UDF. Its FS agnostic and could be used for any FS

Note to self: manpage needs to follow.
 1.7  28-Jun-2008  rumble branches: 1.7.2;
Add of bunch of file system modules.
 1.6  26-Jun-2008  kent build and install azalia.kmod for amd64 and i386.
 1.5  20-May-2008  ad branches: 1.5.2; 1.5.4;
Enable cd9660 module.
 1.4  19-May-2008  jmcneill Enable putter and puffs modules in build.
 1.3  18-May-2008  jmcneill Build radeondrm kmod on i386.
 1.2  18-May-2008  jmcneill Build drm and i915drm modules for i386 and amd64.
 1.1  02-May-2008  ad branches: 1.1.2; 1.1.4; 1.1.6;
Build and install modules into /kernel/modules. Each module gets a
directory for properties, blobs, etc. It's not fixed in stone and
can easily be changed if there are issues with the location/layout.
 1.1.6.3  04-Jun-2008  yamt sync with head
 1.1.6.2  18-May-2008  yamt sync with head.
 1.1.6.1  02-May-2008  yamt file Makefile was added on branch yamt-pf42 on 2008-05-18 12:35:26 +0000
 1.1.4.6  11-Aug-2010  yamt sync with head.
 1.1.4.5  11-Mar-2010  yamt sync with head
 1.1.4.4  19-Aug-2009  yamt sync with head.
 1.1.4.3  04-May-2009  yamt sync with head.
 1.1.4.2  16-May-2008  yamt sync with head.
 1.1.4.1  02-May-2008  yamt file Makefile was added on branch yamt-nfs-mp on 2008-05-16 02:25:40 +0000
 1.1.2.3  10-Oct-2008  skrll Sync with HEAD.
 1.1.2.2  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.1.2.1  23-Jun-2008  wrstuden Sync w/ -current. 34 merge conflicts to follow.
 1.5.4.2  03-Jul-2008  simonb Sync with head.
 1.5.4.1  27-Jun-2008  simonb Sync with head.
 1.5.2.5  17-Jan-2009  mjf Sync with HEAD.
 1.5.2.4  28-Sep-2008  mjf Sync with HEAD.
 1.5.2.3  29-Jun-2008  mjf Sync with HEAD.
 1.5.2.2  02-Jun-2008  mjf Sync with HEAD.
 1.5.2.1  20-May-2008  mjf file Makefile was added on branch mjf-devfs2 on 2008-06-02 13:24:21 +0000
 1.7.2.2  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.7.2.1  19-Oct-2008  haad Sync with HEAD.
 1.10.2.3  28-Apr-2009  skrll Sync with HEAD.
 1.10.2.2  03-Mar-2009  skrll Sync with HEAD.
 1.10.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.26.2.2  23-Jul-2009  jym Sync with HEAD.
 1.26.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.38.2.4  06-Nov-2010  uebayasi Sync with HEAD.
 1.38.2.3  22-Oct-2010  uebayasi Sync with HEAD (-D20101022).
 1.38.2.2  17-Aug-2010  uebayasi Sync with HEAD.
 1.38.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.39.2.4  21-Apr-2011  rmind sync with head
 1.39.2.3  05-Mar-2011  rmind sync with head
 1.39.2.2  03-Jul-2010  rmind sync with head
 1.39.2.1  30-May-2010  rmind sync with head
 1.59.4.2  05-Mar-2011  bouyer Sync with HEAD
 1.59.4.1  08-Feb-2011  bouyer Sync with HEAD
 1.59.2.1  06-Jun-2011  jruoho Sync with HEAD.
 1.70.2.1  23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.95.2.6  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.95.2.5  16-Jan-2013  yamt sync with (a bit old) head
 1.95.2.4  30-Oct-2012  yamt sync with head
 1.95.2.3  23-May-2012  yamt sync with head.
 1.95.2.2  17-Apr-2012  yamt sync with head
 1.95.2.1  10-Nov-2011  yamt sync with head
 1.99.2.3  29-Apr-2012  mrg sync to latest -current.
 1.99.2.2  05-Apr-2012  mrg sync to latest -current.
 1.99.2.1  18-Feb-2012  mrg merge to -current.
 1.101.2.2  15-Dec-2012  riz Pull up following revision(s) (requested by rmind in ticket #745):
distrib/sets/lists/comp/shl.mi: revision 1.241
distrib/sets/lists/modules/mi: revision 1.49
distrib/sets/lists/base/md.sparc64: revision 1.171
lib/npf/ext_rndblock/npfext_rndblock.c: revision 1.1
distrib/sets/lists/base/ad.mips64eb: revision 1.106
distrib/sets/lists/modules/md.evbppc: revision 1.29
sys/net/npf/npf_ext_rndblock.c: revision 1.1
lib/npf/Makefile: revision 1.2
sys/modules/npf_ext_rndblock/Makefile: revision 1.1
lib/npf/ext_rndblock/Makefile: revision 1.1
distrib/sets/lists/base/ad.mips64el: revision 1.106
lib/npf/ext_rndblock/shlib_version: revision 1.1
distrib/sets/lists/base/md.amd64: revision 1.182
distrib/sets/lists/base/shl.mi: revision 1.643
sys/net/npf/files.npf: revision 1.9
sys/modules/Makefile: revision 1.117
Add NPF &quot;rndblock&quot; extension to randomly drop packets (using a random function
with a percentage or modulo operation). This is a demo module, although it can
be used for packet loss simulation. Example of a procedure in npf.conf:
procedure &quot;somedrop&quot; {
# Drop 1.9% of the traffic
rndblock: percentage 1.9
}
 1.101.2.1  18-Nov-2012  riz Pull up following revision(s) (requested by rmind in ticket #693):
lib/npf/ext_normalise/shlib_version: revision 1.1
lib/libnpf/npf.c: revision 1.13
distrib/sets/lists/modules/mi: revision 1.48
sys/net/npf/npf_rproc.c: revision 1.3
sys/net/npf/npf_rproc.c: revision 1.4
sys/modules/npf/Makefile: revision 1.11
usr.sbin/npf/npfctl/npfctl.h: revision 1.20
lib/npf/ext_log/npfext_log.c: revision 1.1
lib/libnpf/npf.h: revision 1.11
sys/net/npf/npf_inet.c: revision 1.17
sys/net/npf/npf_log.c: file removal
sys/net/npf/npf_handler.c: revision 1.22
distrib/sets/lists/base/shl.mi: revision 1.636
sys/net/npf/npf_impl.h: revision 1.23
usr.sbin/npf/npfctl/Makefile: revision 1.8
lib/npf/Makefile: revision 1.1
lib/npf/ext_log/shlib_version: revision 1.1
lib/Makefile: revision 1.189
distrib/sets/lists/comp/shl.mi: revision 1.236
usr.sbin/npf/npfctl/npf_build.c: revision 1.14
distrib/sets/lists/base/mi: revision 1.1007
usr.sbin/npf/npfctl/npf_scan.l: revision 1.6
distrib/sets/lists/base/mi: revision 1.1009
sys/net/npf/npf.h: revision 1.21
lib/npf/ext_normalise/npfext_normalise.c: revision 1.1
etc/mtree/NetBSD.dist.base: revision 1.105
lib/libnpf/Makefile: revision 1.3
etc/mtree/NetBSD.dist.base: revision 1.106
usr.sbin/npf/npfctl/npf_extmod.c: revision 1.1
sys/net/npf/npf_ctl.c: revision 1.18
lib/npf/ext_log/Makefile: revision 1.1
distrib/sets/lists/comp/mi: revision 1.1781
usr.sbin/npf/npfctl/npf_var.h: revision 1.4
sys/net/npf/npf.c: revision 1.13
sys/modules/Makefile: revision 1.111
sys/net/npf/npf_ext_log.c: revision 1.1
lib/npf/Makefile.inc: revision 1.1
sys/net/npf/npf_ext_normalise.c: revision 1.1
sys/net/npf/files.npf: revision 1.8
sys/rump/net/lib/libnpf/Makefile: revision 1.2
sys/modules/npf_ext_log/Makefile: revision 1.1
lib/npf/ext_normalise/Makefile: revision 1.1
usr.sbin/npf/npfctl/npfctl.c: revision 1.20
usr.sbin/npf/npfctl/npf_parse.y: revision 1.13
sys/modules/npf_ext_normalise/Makefile: revision 1.1
Implement dynamic NPF extensions interface. An extension consists of
dynamically loaded module (.so) supplementing npfctl(8) and a kernel
module. Move normalisation and logging functionality into their own
extensions. More improvements to come.
Add /usr/lib/npf.
Add ./usr/libdata/debug/usr/lib/npf for rmind
Fix MKDEBUG set lists
ext_ops does not change during the life cycle and can be fetched without
the mutex held. This avoids confusion in the compiler about an uninitialized
variable ext_ops.
ok rmind@
 1.110.2.5  03-Dec-2017  jdolecek update from HEAD
 1.110.2.4  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.110.2.3  23-Jun-2013  tls resync from head
 1.110.2.2  25-Feb-2013  tls resync with head
 1.110.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.119.6.1  18-May-2014  rmind sync with head
 1.135.2.1  10-Aug-2014  tls Rebase.
 1.140.2.2  21-Mar-2015  snj Pull up following revision(s) (requested by jmcneill in ticket #634):
distrib/sets/lists/modules/md.amd64: revision 1.51
distrib/sets/lists/modules/md.evbppc.powerpc: revision 1.5
distrib/sets/lists/modules/md.i386: revision 1.55
distrib/sets/lists/modules/mi: revision 1.71
sys/dev/i2c/au8522.c: revision 1.7
sys/dev/i2c/cx24227.c: revision 1.7
sys/dev/i2c/dbcool.c: revision 1.42
sys/dev/i2c/hytp14.c: revision 1.3
sys/dev/i2c/i2c_exec.c: revision 1.10
sys/dev/i2c/lg3303.c: revision 1.9
sys/dev/i2c/mt2131.c: revision 1.5
sys/dev/i2c/nxt2k.c: revision 1.4
sys/dev/i2c/sdtemp.c: revision 1.24
sys/dev/i2c/spdmem_i2c.c: revision 1.10
sys/dev/i2c/tvpll.c: revision 1.6
sys/dev/i2c/xc3028.c: revision 1.7
sys/dev/i2c/xc5k.c: revision 1.6
sys/dev/i2c/zl10353.c: revision 1.4
sys/modules/Makefile: revision 1.143
sys/modules/i2cexec/Makefile: revision 1.1
i2c devices don't actually have a dependency on "iic" (the bus driver)
but on "i2cexec". Create an i2cexec module (i2c_exec.c) to mirror the
dependencies in files.i2c and switch device drivers to depend on "i2cexec"
module instead.
A kernel with a USB stack and no I2C controller / bus attachment would spit
out a bunch of "WARNING: module error: can't find builtin dependency `iic'"
messages at boot. This change solves that problem.
 1.140.2.1  11-Jan-2015  snj Pull up following revision(s) (requested by chs in ticket #401):
distrib/sets/lists/modules/md.amd64: revisions 1.46, 1.47 via patch
distrib/sets/lists/modules/md.i386: revisions 1.49, 1.50
sys/dev/ic/pcdisplayvar.h: revision 1.20
sys/dev/ic/vgavar.h: revision 1.32
sys/external/bsd/drm/dist/bsd-core/drm_drv.c: revision 1.26
sys/external/bsd/drm2/dist/drm/drm_agpsupport.c: revisions 1.5, 1.6
sys/external/bsd/drm2/dist/drm/drm_pci.c: revisions 1.4, 1.5
sys/external/bsd/drm2/dist/drm/drm_stub.c: revisions 1.6-1.8
sys/external/bsd/drm2/dist/drm/i915/i915_drv.h: revision 1.11
sys/external/bsd/drm2/dist/drm/radeon/cik.c: revision 1.3
sys/external/bsd/drm2/dist/drm/radeon/ni.c: revision 1.3
sys/external/bsd/drm2/dist/drm/radeon/si.c: revision 1.3
sys/external/bsd/drm2/dist/include/drm/drmP.h: revisions 1.8, 1.9
sys/external/bsd/drm2/dist/include/drm/drm_agpsupport.h: revisions 1.3, 1.4
sys/external/bsd/drm2/drm/drm_drv.c: revision 1.11
sys/external/bsd/drm2/drm/drm_module.c: revision 1.9
sys/external/bsd/drm2/drm/drm_sysctl.c: revisions 1.1-1.4
sys/external/bsd/drm2/drm/drm_vm.c: revision 1.7
sys/external/bsd/drm2/drm/files.drmkms: revisions 1.8, 1.9
sys/external/bsd/drm2/i915drm/files.i915drmkms: revision 1.9
sys/external/bsd/drm2/i915drm/i915_module.c: revisions 1.4, 1.5
sys/external/bsd/drm2/include/drm/drm_sysctl.h: revisions 1.1, 1.2
sys/external/bsd/drm2/include/linux/hdmi.h: revisions 1.3-1.5
sys/external/bsd/drm2/include/linux/module.h: revision 1.5
sys/external/bsd/drm2/include/linux/moduleparam.h: revisions 1.3, 1.4
sys/external/bsd/drm2/include/linux/pci.h: revision 1.11
sys/external/bsd/drm2/linux/linux_module.c: revision 1.5
sys/external/bsd/drm2/nouveau/files.nouveau: revision 1.4
sys/external/bsd/drm2/nouveau/nouveau_module.c: revision 1.3
sys/external/bsd/drm2/pci/drm_pci.c: revision 1.8
sys/external/bsd/drm2/pci/drm_pci_module.c: revision 1.3
sys/external/bsd/drm2/radeon/radeon_module.c: revision 1.3
sys/external/bsd/drm2/ttm/files.ttm: revision 1.1
sys/modules/drm2pci/Makefile: file removal
sys/modules/drmkms/Makefile: revisions 1.4-1.7
sys/modules/drmkms_linux/Makefile: revision 1.5
sys/modules/drmkms_pci/Makefile: revisions 1.3, 1.4
sys/modules/i915drmkms/Makefile: revisions 1.5-1.7
Split drm ttm config into a separate file.
--
Fix module build of drmkms_linux.
--
Remove vestigial drm2pci module, replaced by drmkms_pci.
--
fix the module class.
--
add the drmkms modules
--
make a drm_agp_destroy() function to resolve the circular dependency between
drmkms and drmkms_pci
--
finalize the idr code.
--
add drm_agp_destroy
--
fix drmkms module path for xen.
--
fix build failure.
/tmp/bracket/build/2014.11.10.22.43.46-i386/src/sys/external/bsd/drm2/include/linux/pci.h:36:20: fatal error: acpica.h: No such file or directory
--
make this work: add agpsupport and sysctl code
--
move agpsupport to drmkms to avoid circular dependencies.
--
turn on dynamic ldscript creation to handle link set symbol definitions
used in the automatic sysctl creation.
--
Add __link_set based code to automatically convert the linux module parameters
into sysctls.
--
this module needs MKLDSCRIPT too now
--
more _KERNEL_OPT
--
prettify and add to all the modules that have it.
--
fix description setting.
--
Adjust flags to allow building with clang.
--
Fix build with clang.
--
Drop casts in favour of expressions that actually give the right
pointer.
--
Move all PCI/AGP code back to drmkms_pci module where it belongs.
--
Use correct length for hdmi_infoframe_header_pack in <linux/hdmi.h>.
Fixes PR kern/49411.
--
Back out previous, fix PR kern/49411 correctly.
frame->header.length is not initialized in the vendor packet case.
Instead, make hdmi_infoframe_header_pack take the packet length and
subtract the size of the header when packing the header.
(Could make it take the payload length instead, but for callers it is
more convenient to have a name for the whole packet length.)
--
Fix bounds checking in hdmi_infoframe_header_pack (PR kern/49411).
--
Trivial build fix for no options SYSCTL_INCLUDE_DESCR case, to
avoid -Werror.
OK christos@ and riastradh@
--
fix debugging compilation (ALL kernel)
--
nouveau_nv50_fence.c needs -Wno-shadow.
--
fix a confusion between dev_t and devmajor_t, and include the primary
minor when calling makedev().
 1.142.2.9  28-Aug-2017  skrll Sync with HEAD
 1.142.2.8  05-Feb-2017  skrll Sync with HEAD
 1.142.2.7  05-Dec-2016  skrll Sync with HEAD
 1.142.2.6  05-Oct-2016  skrll Sync with HEAD
 1.142.2.5  09-Jul-2016  skrll Sync with HEAD
 1.142.2.4  27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.142.2.3  22-Sep-2015  skrll Sync with HEAD
 1.142.2.2  06-Jun-2015  skrll Sync with HEAD
 1.142.2.1  06-Apr-2015  skrll Sync with HEAD
 1.167.2.5  26-Apr-2017  pgoyette Sync with HEAD
 1.167.2.4  20-Mar-2017  pgoyette Sync with HEAD
 1.167.2.3  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.167.2.2  04-Nov-2016  pgoyette Sync with HEAD
 1.167.2.1  06-Aug-2016  pgoyette Sync with HEAD
 1.188.2.1  21-Apr-2017  bouyer Sync with HEAD
 1.192.2.2  06-Feb-2018  snj Pull up following revision(s) (requested by pgoyette in ticket #524):
sys/modules/Makefile: revision 1.199
sys/modules/amdsmn/Makefile: revision 1.1
sys/modules/amdsmn/amdsmn.ioconf: revision 1.1
sys/modules/amdzentemp/Makefile: revision 1.1
Create amdsmn(4) amd amdzentemp(4) modules for X86
 1.192.2.1  21-Dec-2017  snj Pull up following revision(s) (requested by pgoyette in ticket #436):
distrib/sets/lists/modules/mi: revision 1.112
sys/modules/Makefile: revision 1.196
sys/modules/ip_ecn/Makefile: revision 1.1
sys/modules/if_gif/Makefile: revision 1.3
sys/net/if_gif.c: revision 1.136
sys/netinet/ip_ecn.c: revision 1.17
Split ip_ecn code into its own module, so it can be shared between
gif(4), stf(4), and ipsec(4). Without this, loading the if_gif
module can result in redefined global symbols if either ipsec(4) or
stf(4) but not gif(4) is built into the kernel.
Fixes PR kern/52795 (as reported by martin@ via irc).
 1.202.2.44  26-Jan-2019  pgoyette Sync with HEAD
 1.202.2.43  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.202.2.42  26-Nov-2018  pgoyette Build the compat_netbsd32* modules for sparc64, too

XXX Sets lists will be updated later.
 1.202.2.41  26-Nov-2018  pgoyette Keep only a single copy of the list of compat_netbsd32* modules.
 1.202.2.40  26-Nov-2018  pgoyette Sync with HEAD, resolve a couple of conflicts
 1.202.2.39  23-Sep-2018  pgoyette Restore compat_netbsd32 for amd64, too.
 1.202.2.38  23-Sep-2018  pgoyette Reenable the compat_netbsd32 module. It is _NOT_ an all-version monolithic
module (as was compat_netbsd).
 1.202.2.37  23-Sep-2018  pgoyette No need to declare the crypto_50 init/fini routines. The compat_50
module no longer needs them, and they're declared static in the
ocryptodev.c code
 1.202.2.36  23-Sep-2018  pgoyette Split the compat_crypto_50 from the rest of the crypto module

Cleanup some stuff left over from similar changes to raid modules.
 1.202.2.35  22-Sep-2018  pgoyette Split the raidframe compatability code out into separate modules, since
the driver is already a module. This avoids having to pass a bunch of
function pointers as arguments to raidframe's compat_ioctl().
 1.202.2.34  22-Sep-2018  pgoyette Don't build the "monolithic" compat_netbsd32 module, it is replaced by
the new version-specific modules.
 1.202.2.33  12-Sep-2018  pgoyette Complete removal of the "monolithic" all-version compat_sysvipc module
 1.202.2.32  12-Sep-2018  pgoyette Split compat_netbsd32_sysvipc into version-specific modules
 1.202.2.31  12-Sep-2018  pgoyette Add a compat_netbsd32_16 to handle the sigcode stuff.
 1.202.2.30  12-Sep-2018  pgoyette Add a netbsd32_compat40 module, move the 4.0 mount stuff there.
 1.202.2.29  11-Sep-2018  pgoyette Get ready for compat_netbsd32_43 module
 1.202.2.28  11-Sep-2018  pgoyette Add -DCOMPAT_NETBSD32 for all the version-specific modules
 1.202.2.27  10-Sep-2018  pgoyette More compat_netbsd32_xx modules
 1.202.2.26  10-Sep-2018  pgoyette Don't descend into the build directories for monolithic compat and
compat_sysv modules.

Add sub-dirs for the soon-to-arrive version-specific compat_netbsd32_xx
modules.
 1.202.2.25  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)
 1.202.2.24  28-Jul-2018  pgoyette Sync with HEAD
 1.202.2.23  25-Jun-2018  pgoyette Sync with HEAD
 1.202.2.22  21-May-2018  pgoyette Sync with HEAD
 1.202.2.21  17-Apr-2018  pgoyette Split the compat_sysv module into several version-specific modules,
similar to the compat module.
 1.202.2.20  17-Apr-2018  pgoyette Actually create the new compat_sysctl_09_43 module
 1.202.2.19  17-Apr-2018  pgoyette First pass at compat modules for 4.3BSD, NetBSD-0.9, and NetBSD-1.0

XXX Still need to deal with the sysctl stuff and other code shared
XXX between 09 and 43
 1.202.2.18  31-Mar-2018  pgoyette create the compat_12 module
 1.202.2.17  30-Mar-2018  pgoyette Create the compat_util module for use by version-specific compat code.
(It's automatically included in the monolithic compat module, as well
as in kernels with built-in compat code.)
 1.202.2.16  30-Mar-2018  pgoyette Add compat_13 module
 1.202.2.15  30-Mar-2018  pgoyette Extract compat_14 stuff into its own module
 1.202.2.14  30-Mar-2018  pgoyette Create and build a compat_16 module
 1.202.2.13  30-Mar-2018  pgoyette Create and build the compat_20 module
 1.202.2.12  28-Mar-2018  pgoyette Initial pass at a compat_30 module.

Still needs some work for dev/vnd and various dev/usb/*
 1.202.2.11  27-Mar-2018  pgoyette Create a compat_40 module
 1.202.2.10  24-Mar-2018  pgoyette Separate the compat_50 and compat_80 dispatching code from the main
body of raidframe, and place into the appropriate compat modules.

Enable building of the compat_80 module.
 1.202.2.9  19-Mar-2018  pgoyette Initial pass at a COMPAT_50 module. More to come.
 1.202.2.8  18-Mar-2018  pgoyette Move closer to a complete compat_60 module. All that remains is some
tty stuff and some ccd ioctl()s.
 1.202.2.7  16-Mar-2018  pgoyette Formatting only - no functional change
 1.202.2.6  16-Mar-2018  pgoyette Ooops - don't use SUBDIR= after the SUBDIR+= lines!
 1.202.2.5  16-Mar-2018  pgoyette For now, disable the compat_60 module
 1.202.2.4  15-Mar-2018  pgoyette Initial set-up for compat_60 module
 1.202.2.3  15-Mar-2018  pgoyette Create a separate module for COMPAT_70 code only, and untangle the
70 compat code from the current.
 1.202.2.2  09-Mar-2018  pgoyette Rename the new compat_sysv_ipc module to just compat_sysv
 1.202.2.1  09-Mar-2018  pgoyette Split the sysv_ipc module into two pieces: one for contemporary
SYSV* functionality, and one for compatability with previous NetBSD
versions. No need to pull in all of compat just to have a sysv_ipc
module.
 1.205.2.3  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.205.2.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.205.2.1  10-Jun-2019  christos Sync with HEAD
 1.222.2.2  18-Apr-2024  martin Pull up following revision(s) (requested by riastradh in ticket #655):

sys/modules/Makefile: revision 1.285
share/mk/bsd.own.mk: revision 1.1365
share/mk/bsd.own.mk: revision 1.1366
sys/arch/aarch64/include/sljit_machdep.h: revision 1.4
sys/external/bsd/sljit/dist/sljit_src/sljitNativeARM_64.c: revision 1.5
(all via patch)

sljit: Pacify -Wsign-compare.

If these sizes are negative, we're probably in trouble anyway, so
assert nonnegative here.
Needed to resolve PR 58103.

bsd.own.mk: Enable MKLSJIT on aarch64.

Make sure there's only one copy of the conditional, in bsd.own.mk;
just make sys/modules/Makefile conditional on MKSLJIT so we don't
have to keep these in sync.

As a workaround for PR 58106, tweak the conditional definition of
SLJIT_CACHE_FLUSH to use cpu_icache_sync_range only in _HARDKERNEL,
and use __builtin___clear_cache in userland and in rump kernels.

PR 58103: bpfjit.kmod is not built on aarch64
bsd.own.mk: No need for MKSLJIT to be set differently from others.
- Use ?=, not =, so mk.conf setting wins.
- Write out per-architecture tabular settings, not a conditional.
- Add comments for the architectures that look like they should have
sljit but don't. (XXX Missing comments about powerpc and mips --
not sure why, is this because modules don't yet work on those
architectures, or what?)

Tidying for PR 58103: bpfjit.kmod is not built on aarch64.
 1.222.2.1  01-Sep-2019  martin Pull up following revision(s) (requested by mrg in ticket #135):

distrib/sets/lists/comp/mi 1.2279
distrib/sets/lists/modules/mi 1.123
share/man/man9/Makefile 1.438
share/man/man9/usbnet.9 1.1-1.9
sys/dev/ic/rndisreg.h 1.3
sys/dev/usb/TODO 1.47-1.52
sys/dev/usb/TODO.usbmp 1.15,1.16
sys/dev/usb/files.usb 1.157-1.167
sys/dev/usb/if_aue.c 1.155-1.161
sys/dev/usb/if_auereg.h 1.30-1.32
sys/dev/usb/if_axe.c 1.103-1.119
sys/dev/usb/if_axen.c 1.51-1.53,1.55-1.67
sys/dev/usb/if_axenreg.h 1.15
sys/dev/usb/if_cdce.c 1.54-1.67
sys/dev/usb/if_cue.c 1.85,1.86
sys/dev/usb/if_cuereg.h 1.23
sys/dev/usb/if_kue.c 1.97-1.100
sys/dev/usb/if_kuereg.h 1.23,1.24
sys/dev/usb/if_mue.c 1.51-1.55
sys/dev/usb/if_muereg.h 1.6
sys/dev/usb/if_muevar.h 1.9
sys/dev/usb/if_smsc.c 1.46-1.61
sys/dev/usb/if_smscreg.h 1.6
sys/dev/usb/if_smscvar.h delete
sys/dev/usb/if_udav.c 1.60-1.71
sys/dev/usb/if_udavreg.h 1.14,1.15
sys/dev/usb/if_upl.c 1.65,1.66
sys/dev/usb/if_ure.c 1.15-1.31
sys/dev/usb/if_urevar.h 1.4,1.5
sys/dev/usb/if_url.c 1.67-1.70
sys/dev/usb/if_urlreg.h 1.14
sys/dev/usb/if_urndis.c 1.22-1.33
sys/dev/usb/if_urtwn.c 1.72
sys/dev/usb/ohci.c 1.290
sys/dev/usb/uhub.c 1.143
sys/dev/usb/usb.c 1.180
sys/dev/usb/usb.h 1.118
sys/dev/usb/usb_mem.c 1.71
sys/dev/usb/usb_subr.c 1.238,1.239
sys/dev/usb/usbdevs 1.772
sys/dev/usb/usbdi.c 1.183,1.186
sys/dev/usb/usbdi.h 1.97
sys/dev/usb/usbdi_util.c 1.75
sys/dev/usb/usbhist.h 1.5,1.6
sys/dev/usb/usbnet.c 1.1-1.24
sys/dev/usb/usbnet.h 1.1-1.14
sys/dev/usb/usbroothub.c 1.9
sys/dev/usb/xhci.c 1.109,1.110
sys/modules/Makefile 1.223
sys/modules/usbnet/Makefile 1.1

usbnet(9): Add common framework for USB network devices.
This bring various safety fixes to all updated drivers,
and includes locking clean up, detach safety when being
used or not, separate rx/tx locks to improve performance,
porting to NET_MPSAFE, many edge/error case bugs in
drivers fixed, as well as resovling PRs 54303 and 54308.
These drivers are converted: axe(4), axen(4), aue(4),
cdce(4), cue(4), kue(4), mue(4), smsc(4), udav(4),
upl(4), ure(4), url(4), and urndis(4).
 1.234.2.2  29-Feb-2020  ad Sync with head.
 1.234.2.1  25-Jan-2020  ad Sync with head.
 1.247.2.2  03-Apr-2021  thorpej Sync with HEAD.
 1.247.2.1  14-Dec-2020  thorpej Sync w/ HEAD.
 1.248.2.1  03-Apr-2021  thorpej Sync with HEAD.
 1.249.4.1  31-May-2021  cjep sync with head
 1.249.2.1  17-Jun-2021  thorpej Sync w/ HEAD.
 1.274.2.7  09-Oct-2024  martin Pull up following revision(s) (requested by riastradh in ticket #939):

distrib/sets/lists/debug/module.md.amd64: revision 1.18
sys/modules/Makefile: revision 1.292
lib/libc/gen/arc4random.c: revision 1.34
lib/libc/gen/arc4random.c: revision 1.35
lib/libc/gen/arc4random.c: revision 1.36
lib/libc/gen/arc4random.c: revision 1.37
sys/kern/kern_entropy.c: revision 1.70
lib/libc/gen/arc4random.c: revision 1.38
sys/kern/kern_entropy.c: revision 1.71
lib/libc/gen/getentropy.3: revision 1.8
distrib/sets/lists/modules/md.amd64: revision 1.103
share/man/man4/rnd.4: revision 1.42
share/man/man4/rnd.4: revision 1.44
lib/libc/include/arc4random.h: revision 1.1
distrib/sets/lists/man/mi: revision 1.1786
sys/arch/i386/conf/GENERIC: revision 1.1258
sys/modules/acpivmgenid/acpivmgenid.ioconf: revision 1.1
sys/arch/amd64/conf/ALL: revision 1.190
distrib/sets/lists/debug/mi: revision 1.446
sys/arch/i386/conf/ALL: revision 1.521
lib/libc/gen/Makefile.inc: revision 1.219
distrib/sets/lists/debug/module.md.i386: revision 1.12
sys/dev/acpi/acpi_vmgenid.c: revision 1.1
sys/dev/acpi/acpi_vmgenid.c: revision 1.2
lib/libc/include/reentrant.h: revision 1.22
sys/arch/evbarm/conf/GENERIC64: revision 1.219
share/man/man4/Makefile: revision 1.735
distrib/sets/lists/modules/md.i386: revision 1.100
distrib/sets/lists/tests/mi: revision 1.1334
lib/libc/gen/arc4random.3: revision 1.22
sys/dev/acpi/files.acpi: revision 1.133
lib/libc/gen/arc4random.3: revision 1.23
tests/lib/libc/gen/t_arc4random.c: revision 1.1
sys/sys/entropy.h: revision 1.6
sys/arch/amd64/conf/GENERIC: revision 1.614
sys/modules/acpivmgenid/Makefile: revision 1.1
share/man/man4/acpivmgenid.4: revision 1.1
lib/libc/gen/Makefile.inc: revision 1.220
tests/lib/libc/gen/Makefile: revision 1.56
share/man/man4/acpivmgenid.4: revision 1.2
share/man/man4/acpivmgenid.4: revision 1.3

(all via patch)

Catch up with all the lint warnings since exit on warning was disabled.

Disable 'missing header declaration' and 'nested extern' warnings for now.
acpivmgenid(4): New driver for virtual machine generation ID.

Added to amd64/ALL and i386/ALL kernel configurations, and made
available as a loadable module acpivmgenid.kmod on x86, for now.
TBD: Add to all ACPI-supporting GENERIC kernels.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

entropy(9): Factor out subroutines to reset and gather entropy.
`Reset' means we keep the data in the pool, but assume it had zero
entropy. `Gather' means we request samples from all on-demand
sources and wait for the synchronous ones to complete.

No functional change intended, other than to expose new symbols --
just preparation to expose these to acpivmgenid(4), so it can use
these when the VM host notifies us that we, the guest, have been
cloned.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

acpivmgenid(4): Reset and gather entropy on VM clone notification.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

arc4random(3): Reseed if system entropy epoch changes.
This can happen, for example, if the system is a VM instance, and the
VM is cloned.

This incurs the cost of a system call on every arc4random call, which
is unfortunate, but
1. we don't currently have a (machine-independent) mechanism for
exposing a read-only page to userland shared by the kernel to
enable a cheaper access path to the entropy epoch; and
2. the algorithm here -- a simple application of ChaCha -- is likely
also a bottleneck and could be much cheaper by
(a) using sys/crypto/chacha for machine-dependent vectorized
ChaCha code, and
(b) filling a buffer (somewhere between a cipher block and a page)
in a batch at a time, instead of running ChaCha to generate
only 32 bytes at a time.
So although this might be a performance hit, the security benefit is
worthwhile and we have a clear path to do better than reversing the
performance hit later.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

acpivmgenid(4): Nix BUGS that have been squashed.
Reference kern.entropy.epoch for the remaining bug (which is a
performance issue, not a security issue).
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

entropy(9): Allow unprivileged reads of sysctl kern.entropy.epoch.

Applications need this in order to know when to reseed. (We should
also expose it through a page shared read-only with userland for
cheaper access, but until we do, let's let applications get at it
through sysctl.)
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

arc4random.c: Fix test program.

This isn't wired up anywhere, but let's reduce the bitrot. It was
helpful in reminding me that kern.entropy.epoch was, for reasons I
can't remember, restricted to privileged access.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

amd64, evbarm, i386: Add acpivmgenid(4) to GENERIC.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

rnd(4): Document kern.entropy.epoch is unprivileged and elaborate.
Cross-reference acpivmgenid(4).
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

arc4random(3): Note that arc4random respects kern.entropy.epoch.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork
Add debug info for new acpivmgenid module

arc4random(3): Add automatic tests.

This verifies that:
- arc4random zeroes its state and reseeds itself on fork
- arc4random reseeds itself on entropy consolidation (e.g., VM clone)
- arc4random falls back to global state if it can't allocate local
state because address space limits cause mmap to fail

NOTE: This adds a new libc symbol __arc4random_global, but it's in
the reserved namespace and only used by t_arc4random, so no libc
minor bump.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

getentropy(3): Note intent to reseed on VM clone, and caveats.

Tidy markup and pacify some mandoc -Tlint complaints while here.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

Bump dates on man pages recently updated to mention VM clones.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

arc4random(3): Pacify some of lint's complaints.
PR kern/58632: getentropy(2) and arc4random(3) do not reseed on VM
fork

arc4random: suppress another lint warning
 1.274.2.6  09-Oct-2024  martin Pull up following revision(s) (requested by riastradh in ticket #936):

sys/dev/acpi/apei_einjvar.h: revision 1.1
sys/dev/acpi/apei_cper.h: revision 1.2
distrib/sets/lists/debug/module.md.i386: revision 1.9
sys/dev/acpi/apei_hest.c: revision 1.1
sys/modules/apei/Makefile: revision 1.1
sys/dev/acpi/apei_hest.c: revision 1.2
distrib/sets/lists/modules/md.amd64: revision 1.101
sys/dev/acpi/apei_hest.c: revision 1.3
distrib/sets/lists/modules/md.amd64: revision 1.102
sys/modules/apei/apei.ioconf: revision 1.1
sys/dev/acpi/apei_bert.c: revision 1.1
distrib/sets/lists/man/mi: revision 1.1785
sys/dev/acpi/apei_bertvar.h: revision 1.1
sys/dev/acpi/apei.c: revision 1.1
sys/dev/acpi/apei.c: revision 1.2
sys/dev/acpi/apei.c: revision 1.3
sys/modules/Makefile: revision 1.283
sys/modules/Makefile: revision 1.284
sys/dev/acpi/apei_reg.c: revision 1.1
sys/dev/acpi/apei_hestvar.h: revision 1.1
distrib/sets/lists/debug/module.md.i386: revision 1.10
sys/dev/acpi/apei_reg.c: revision 1.2
sys/dev/acpi/apei_reg.c: revision 1.3
sys/dev/acpi/apei_reg.h: revision 1.1
sys/dev/acpi/apei_reg.h: revision 1.2
sys/dev/acpi/apei_reg.h: revision 1.3
sys/dev/acpi/acpi_hed.c: revision 1.1
sys/dev/acpi/apei_einj.c: revision 1.1
sys/dev/acpi/apeivar.h: revision 1.1
sys/dev/acpi/apei_einj.c: revision 1.2
sys/dev/acpi/apei_einj.c: revision 1.3
sys/dev/acpi/apei_einj.c: revision 1.4
sys/dev/acpi/apei_einj.c: revision 1.5
share/man/man4/Makefile: revision 1.734
sys/dev/acpi/apei_einj.c: revision 1.6
sys/dev/acpi/apei_einj.c: revision 1.7
sys/dev/acpi/files.acpi: revision 1.131
sys/dev/acpi/files.acpi: revision 1.132
sys/dev/acpi/apei_interp.c: revision 1.1
sys/dev/acpi/apei_interp.c: revision 1.2
share/man/man4/acpihed.4: revision 1.1
sys/dev/acpi/apei_mapreg.c: revision 1.1
sys/dev/acpi/apei_interp.c: revision 1.3
share/man/man4/acpihed.4: revision 1.2
distrib/sets/lists/modules/md.i386: revision 1.98
sys/dev/acpi/apei_mapreg.c: revision 1.2
sys/dev/acpi/apei_interp.h: revision 1.1
sys/dev/acpi/apei_interp.c: revision 1.4
distrib/sets/lists/modules/md.i386: revision 1.99
sys/modules/acpihed/Makefile: revision 1.1
sys/dev/acpi/apei_mapreg.c: revision 1.3
sys/dev/acpi/apei_interp.h: revision 1.2
sys/arch/amd64/conf/ALL: revision 1.185
sys/dev/acpi/apei_mapreg.h: revision 1.1
sys/dev/acpi/apei_mapreg.c: revision 1.4
sys/arch/amd64/conf/ALL: revision 1.186
sys/dev/acpi/apei_erstvar.h: revision 1.1
sys/dev/acpi/apei_erst.c: revision 1.1
sys/dev/acpi/apei_erst.c: revision 1.2
sys/dev/acpi/apei_erst.c: revision 1.3
sys/arch/i386/conf/ALL: revision 1.516
share/man/man4/apei.4: revision 1.1
sys/arch/i386/conf/ALL: revision 1.517
share/man/man4/apei.4: revision 1.2
distrib/sets/lists/debug/module.md.amd64: revision 1.15
sys/modules/acpihed/acpihed.ioconf: revision 1.1
sys/dev/acpi/apei_hed.h: revision 1.1
distrib/sets/lists/debug/module.md.amd64: revision 1.16
sys/dev/acpi/apei_cper.h: revision 1.1

(all via patch)

apei(4): New driver for ACPI Platform Error Interfaces.

For now it is wired up only in x86 ALL kernels, and built as a module
for x86 and Arm. Once it gets a little more testing on machines with
APEI, I would like to flip it on by default.
PR kern/58046

apei(4): Pacify -Wsign-compare.
Assert that the parsing made forward progress too while here.
PR kern/58046

apei(4): Tweak some comments about the APEI interpreter language.
No functional change intended.
PR kern/58046

apei(4): Fix parsing checks for TRIGGER_ERROR action table.
The TableSize is size of the header plus the body, not just the body.
PR kern/58046
apei(4): Note some TODOs for EINJ and HEST.
No functional change intended, comments only.
PR kern/58046

acpihed(4): New driver for PNP0C33 to notify apei(4).
PNP0C33 denotes the ACPI Hardware Error Device, which exists only to
be a vector for event notifications.
PR kern/58046

acpihed(4): fix name in Dt, use Ql
apei(4): Plug memory leak on teardown of instruction interpreter.
PR kern/58046
apei(4): Fix indexing of multi-unit register access.
PR kern/58046

apei(4): Fix register chunk counting.
Now it will actually read and write the registers!
Have been updating and reloading the wrong module to test this, oops.
PR kern/58046

apei(4): Allow pre-mapping I/O registers too.
PR kern/58046

apei(4): Pre-map registers when compiling interpreter.
This way we don't have to worry about mapping them in nasty contexts
where access to uvm_km_alloc may not be allowed. Paves the way to
use ERST for saving dmesg on crash.
Exception: ACPI_ERST_MOVE_DATA still needs to do AcpiOsMapMemory.
We'll need to reserve a couple pages to avoid that.
PR kern/58046

apei(4): Simplify EINJ/ERST register access now that it's pre-mapped.
PR kern/58046
apei(4): Make sure to initialize *fatalp in apei_gesb_report.
PR kern/58046

apei: fix typos in comments

apei: fix typos in comments and snprintb bitfmt

apei(4): Fix uninitialized stack access in error branch.
PR kern/58046

apei(4), acpihed(4): Wire up man pages to build.
PR kern/58046: Missing APEI (ACPI Platform Error Interface) support
 1.274.2.5  12-Sep-2024  martin Pull up following revision(s) (requested by rin in ticket #840):

sys/modules/Makefile: revision 1.282

skip this subdir for "make includes".
it's excessively slow and does nothing (nor should it.)
 1.274.2.4  20-Jul-2024  martin Pull up following revision(s) (requested by rin in ticket #765):

sys/modules/Makefile: revision 1.291
distrib/sets/lists/modules/mi: revision 1.160
distrib/sets/lists/debug/module.mi: revision 1.27

modules: Build `ipl` module only if MKIPFILTER is enabled
 1.274.2.3  18-Apr-2024  martin Pull up following revision(s) (requested by riastradh in ticket #655):

sys/modules/Makefile: revision 1.285
share/mk/bsd.own.mk: revision 1.1365
share/mk/bsd.own.mk: revision 1.1366
sys/arch/aarch64/include/sljit_machdep.h: revision 1.4
sys/external/bsd/sljit/dist/sljit_src/sljitNativeARM_64.c: revision 1.5

sljit: Pacify -Wsign-compare.

If these sizes are negative, we're probably in trouble anyway, so
assert nonnegative here.
Needed to resolve PR 58103.

bsd.own.mk: Enable MKLSJIT on aarch64.

Make sure there's only one copy of the conditional, in bsd.own.mk;
just make sys/modules/Makefile conditional on MKSLJIT so we don't
have to keep these in sync.

As a workaround for PR 58106, tweak the conditional definition of
SLJIT_CACHE_FLUSH to use cpu_icache_sync_range only in _HARDKERNEL,
and use __builtin___clear_cache in userland and in rump kernels.

PR 58103: bpfjit.kmod is not built on aarch64
bsd.own.mk: No need for MKSLJIT to be set differently from others.
- Use ?=, not =, so mk.conf setting wins.
- Write out per-architecture tabular settings, not a conditional.
- Add comments for the architectures that look like they should have
sljit but don't. (XXX Missing comments about powerpc and mips --
not sure why, is this because modules don't yet work on those
architectures, or what?)

Tidying for PR 58103: bpfjit.kmod is not built on aarch64.
 1.274.2.2  30-Dec-2023  martin Pull up following revision(s) (requested by pgoyette in ticket #521):

distrib/sets/lists/debug/module.md.i386: revision 1.8
sys/modules/Makefile: revision 1.281
distrib/sets/lists/modules/md.i386: revision 1.97

Unhook radeondrm module from the build; it doesn't work, and
it's just tempting someone to try it. Leave the files around
in case someone wants to pursue making this work.

Should address kern/57793

XXX Related modules from the same legacy era should probably be
XXX removed, too, but so far only radeondrm has been reported
XXX as an issue. Kep an eye out for sisdrm, savagedrm, tdfxdrm,
XXX and r128drm.
 1.274.2.1  17-Aug-2023  martin Pull up following revision(s) (requested by andvar in ticket #329):

distrib/sets/lists/modules/md.amd64: revision 1.100
sys/external/bsd/drm2/dist/include/drm/drm_pciids.h: revision 1.5
sys/arch/amd64/conf/GENERIC: revision 1.605
sys/modules/Makefile: revision 1.279
distrib/sets/lists/debug/module.md.amd64: revision 1.14

viadrmums(4): build legacy VIA DRM UMS driver module for amd64.

This driver is not built-in by default, thus loadable module can help (un)lucky
owners of 64-bit capable VIA (Nano/Eden) systems or early AMD/Intel systems
with some VIA chipsets, which include VIA integrated graphics.

I also boldly added product IDs for few later models from VX8xx/VX9xx chipsets
without 3D support (DX9_0) to "expand" the driver support to more systems.

Tested successfully basic functionality on VX800, and partially successfully
on VX900 (on VX900 Xorg failed to initialize due to openchrome related issues,
viadrmums attaches and it is by used the driver).

Didn't test on VX855, I don't have one.
 1.290.2.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed