Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
C H A P T E R 17 Advanced Kernel Programming This chapter covers miscellaneous topics that are of interest to more advanced kernel programmers. We'll discuss how Streaming SIMD Extensions (SSE) and floating point can be used in the kernel. (SIMD is short for Single Input Multiple Data.) We will also examine strategies for dealing with drivers for multi- function devices, and discuss the implementation of I/O Kit families. We'll cover the kernel control KPI that can be used for user space communication with KEXTs such as Network Kernel Extensions (NKE) that does not use the I/O Kit. We also show how to work with and manipulate processes from the kernel, such as getting the process identifier (PID) of a process and sending signals to the process. Some drivers may need additional resources loaded from the file system, such as firmware images. This chapter provides a discussion of how these resources can be loaded using the OSKextRequestResource() function.