John Baldwin
John has been a FreeBSD committer for over 20 years with experience in various parts of the kernel. John is also fond of using debugging tools and is a global maintainer for GDB as well as the maintainer of the FreeBSD kgdb fork of GDB.
Session
FreeBSD's device driver subsystem supports a hierarchy of device objects. Devices for interior nodes in the tree are buses. Drivers for bus devices have unique requirements beyond those of leaf nodes. One of these requirements is managing shared resources such as MMIO regions and interrupt pins required by child devices.
The kernel provides several APIs bus drivers can use to manage shared resources. This talk will cover these including the rman(9) resource manager, resource lists, and various sets of generic helper routines that can be used to implement device methods.