Index

A number represents a single reference to a topic.
A number with a "+" sign represents a longer discussion of a topic.


Numerals   A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   

Numerals
64-bit architectures, issues with 1+
A
acknowledgePowerChange method 1
acknowledgeSetPowerState method 1
activityTickle method 1
addNotification method 1+
adjustBusy method 1
aggressiveness, in power management 1
alerts, using KUNC (Kernel-User Notification Center) to display 1+
alloc function 1
allocClassWithName function 1
asynchronous data transfer, using user clients 1+
B
backtrace 1 2+
binary compatibility
  and fragile base class problem 1+
  and reserving future data members 1+
  breaking of 1
boot drivers, debugging 1 2
BootX booter 1
build styles for driver deployment 1
bundles
  and device interfaces 1
  and kernel-user notification dialogs 1
  and KEXT localization 1 2 3
  defined 1
C
C++ new operator 1
C++ object scope and construction 1+
callPlatformFunction method 1
causeInterrupt method 1
CFAllocatorGetDefault function 1
CFBundleCreate function 1
CFBundles 1 2
CFCopyLocalizedString macro 1
CFPlugIns 1 2
CFRunLoopAddSource function 1
CFRunLoopRemoveSource function 1
changePowerStateTo method 1
class dictionary, as part of metaclass database 1
class matching 1
clientClose method 1 2
clientDied method 1
clientMemoryForType method 1
configuration testing 1
constructors, defining 1
cross-boundary I/O
  See also data transfer
  kernel aspects that affect 1+
  OS X and Mac OS 9 methods of 1+
  performing with device interfaces 1
  performing with I/O Registry property setting 1+
  performing with POSIX APIs 1
D
DAR (Data Access Register) 1
DART (Device Address Resolution Table) 1+
data access register. See DAR
data transfer
  and memory management 1+
  asynchronous with user clients 1+
  synchronous with user clients 1+
  types of 1
  using task files 1
  using user–space client functions 1+
   1+
debugging
  and examining computer instructions 1+
  and logging 1+
  boot drivers 1+
  general tips for 1
  kernel panics 1+
  matching 1 2
  setting breakpoints for 1+
  system hangs 1+
  tools 1+
  two-machine 1+
   setting up 1+
   using kernel debugging macros 1+
destructors, defining 1
developer resources 1+
device address resolution table. See DART
device interfaces
  See also user-space clients
  custom device interface example 1+
  factors in designing 1 2
Direct Memory Access. See DMA
disableInterrupt method 1
DMA (Direct Memory Access) 1+
DMA (Direct Memory Access)
  data transfer example 1+ 2+
  direction on systems with DART 1
driver configuration
  examples 1+
  with libkern container and collection classes 1+
driver debugging
  and examining computer instructions 1 2
  and kernel panics 1 2
  and logging 1 2
  and system hangs 1 2
  boot drivers 1 2
  general tips for 1
  setting breakpoints for 1 2
  tools 1 2
  using two-machine debugging 1 2
driver dependencies 1
driver matching
  and familyless drivers 1+
  and IOService methods 1+
  and passive-matching keys 1+
  debugging 1+
driver packaging 1+
driver probing
  and IOService methods 1
  debugging 1+
driver resources, localization of 1+
driver state 1
driver testing 1+
dynamic allocation of objects 1
E
enableInterrupt method 1
errnoFromReturn method 1
exclusive device access, enforcing with user clients 1 2
F
familyless devices
  accessing device memory of 1+
  and driver matching 1+
  and handling interrupts 1+
fragile base class problem 1+
G
gdb (GNU debugger) 1
  and .gdbinit file 1
  and kernel debugging macros 1+
  examining computer instructions with 1+
  setting breakpoints with 1+
  setting up for two-machine debugging 1+
  single-stepping with 1
  using to debug kernel panics 1+
  using to debug system hangs 1
get methods 1 2 3
getAsyncTargetAndMethodForIndex method 1
getClient method 1
getClientIterator method 1
getDeviceMemory method 1
getDeviceMemoryCount method 1
getDeviceMemoryWithIndex method 1
getInterruptType method 1
getOpenClientIterator method 1+
getOpenProviderIterator method 1+
getPlatform method 1
getProvider method 1
getProviderIterator method 1
getResources method 1
getState method 1
getTargetAndMethodForIndex method 1 2
getWorkLoop method 1
global constructor. See global initializer
global initializer 1+
GNU debugger. See gdb
H
host computer 1+
I
I/O addresses 1
initWithTask method 1+
installing metapackages 1
installing packages 1+
installNotification method 1
internationalization
  See also localization
  of kernel extensions 1+
  of strings 1+
IOAsyncCallback function prototype 1
ioclasscount 1
ioclasscount tool 1
IOConnectMapMemory method 1 2 3
IOConnectMethod functions 1+ 2 3 4
IOConnectMethodScalarIScalarO function 1 2+
IOConnectMethodScalarIStructureI function 1
IOConnectMethodScalarIStructureO function 1
IOConnectMethodStructureIStructureO function 1
IOConnectSetNotificationPort function 1 2
IODeviceMemory class objects 1+ 2 3
IOExternalMethod array 1 2 3 4 5 6 7
IOExternalMethod structure 1+ 2
IOKitDebug property 1
IOLog function 1+
IOMasterPort function 1
IOMatchCategory 1
IOMemoryDescriptor class 1
IOMemoryDescriptor class objects 1 2 3
IOMethod types 1+
IONameMatch key 1+
IONameMatched property 1+
IONotificationPortCreate function 1
IONotificationPortDestroy function 1
IONotificationPortGetMachPort function 1
IONotificationPortGetRunLoopSource function 1
IOParentMatch key 1
IOPathMatch key 1
IOPMPowerState structure 1
IOPropertyMatch key 1
IOProviderClass key 1 2
IOResourceMatch key 1
IOResources 1 2+ 3
IOService class
  accessor methods of 1+
  driver state methods of 1
  interrupt-handling methods of 1+
  matching methods of 1+
  memory-mapping methods of 1+
  messaging methods of 1+
  notification methods of 1+
  probing methods of 1
  resource-handling method of 1
  user-client method of 1
IOServiceClose function 1 2
IOServiceGetMatchingServices function 1
IOServiceMatching function 1
IOServiceOpen function 1
IOUserClientClass property 1
IPC (Mach Inter-Process Communication) 1
isInactive method 1
isOpen method 1
J
joinPMTree method 1
K
kernel debugging macros 1+
kernel exceptions, types of 1
kernel extensions (KEXTs)
  and localized resources 1+
  as bundles 1+
  internationalization of 1 2
  ownership and permissions 1 2+
  version numbers of 1
kernel panics, debugging 1 2
kernel symbols. See symboled kernel
kernel-user communication, using KUNC (Kernel-User Notification Center) 1+
Kernel-User Notification Center. See KUNC
kextload tool 1 2+
  and two-machine debugging 1 2
  checks performed by 1+
  using to debug kernel panics 1
  using to debug MODULE_START 1+
  using to debug start and probe 1+
  verifying kernel extensions with 1+
KextManagerCreateURLForBundleIdentifier function 1
KEXTs. See kernel extensions
kextstat tool 1 2
kextunload tool 1 2
KUNC (Kernel-User Notification Center)
  notification dialog properties 1+
  using to display alert dialogs 1+
  using to display bundled dialogs 1+
  using to display notice dialogs 1+
  using to launch applications 1+
KUNCExecute method 1
KUNCNotificationDisplayAlert function 1+
KUNCNotificationDisplayNotice function 1+
KUNCUserNotificationDisplayAlert function
  prototype 1
KUNCUserNotificationDisplayFromBundle function 1 2+
KUNCUserNotificationDisplayNotice function 1+
L
libkern collection classes
  and corresponding XML tags 1
  defined 1
  object creation and initialization 1+
  object introspection and access 1
libkern container classes
  and corresponding XML tags 1
  defined 1+
  object creation and initialization 1+
  object introspection and access 1
Link Register. See LR
localization
  of bundle information 1 2
  of driver resources 1+
  of notification dialogs 1+
  of packages 1+
  of strings 1+
lockForArbitration method 1
logging
  using custom event logging 1+
  using IOLog 1+
.lproj directories
  and localized notification dialogs 1+
  and localizing kernel extensions 1+
LR (Link Register) 1
M
Mac OS 9 user-space hardware access 1+
Mach Inter-Process Communication. See IPC
Mach messaging 1
Mach Remote Process Communication. See RPC
mach_port_deallocate function 1
mapDeviceMemoryWithIndex method 1
matching
  and IOService methods 1 2
  class 1
  debugging 1+
  passive 1 2
matchPropertyTable example implementation 1
matchPropertyTable method 1
memory management 1+
message method 1+
messageClient method 1
messageClients method 1
metaclass registration 1
metapackages
  contents of 1+
  steps in installing 1
  validating with Package Maker 1
module dictionary, as part of metaclass database 1
N
newUserClient method 1
notices, using KUNC (Kernel-User Notification Center) to display 1+
notifications
  and asynchronous data-passing 1 2+
  and IOService methods 1+ 2+
  and IOServiceAddMatchingNotification method 1
  CFRunLoop alternative to 1+
  handling 1+
  sending to user space via KUNC APIs 1
  using KUNC (Kernel-User Notification Center) to display 1+ 2+
NSLocalizedString macro 1
O
object allocation 1
object construction 1
object introspection 1
OSDeclareDefaultStructors macro 1
OSDefineMetaClassAndAbstractStructors method 1
OSDefineMetaClassAndStructors macro 1
OSMetaClass class 1 2
  macros in 1 2
  member functions in 1 2+
  object creation and destruction 1+
  runtime type declaration of macros 1
OSMetaClassBase class 1
  member functions in 1+
OSSerialize class objects 1
OSTypeAlloc function 1
P
packages
  contents of 1+
  steps in installing 1+
  validating with Package Maker 1+
panic.log file 1+
panics. See kernel panics
passive-matching keys 1+
PC (Program Counter register) 1
personality dictionary 1
  and OSDictionary representation of 1+
PIO (Programmed Input/Output) hardware access 1
  and mapping device registers 1+
pmap layer functions 1
PMinit method 1
PMstop method 1
policy makers
  and determining idleness 1+
  introduced 1
POSIX APIs, using for user-space hardware access 1
power controllers
  and changing driver power state 1
  introduced 1
power domains 1
power management, and IOService methods 1+
power-management testing 1+
probe method 1
Program Counter register. See PC
Programmed Input/Output. See PIO
publishResource method 1
Q
quality-control testing 1+
R
reference-counting, in libkern container and collection classes 1
registerInterrupt method 1
registerNotificationPort method 1
registerPowerDriver method 1
release method 1 2
resources for developers 1 2
resources, I/O Kit 1 2
retain-release behavior
  and unloading kernel extensions 1+
  of libkern container and collection classes 1
RPC (Mach Remote Process Communication) 1
runtime type information (RTTI), as disallowed feature of C++ 1
runtime typing facility 1
runtime typing system 1
S
scalar parameter types 1+
sendAsyncResult method 1
serialization 1
serialize method 1
set methods 1
setAggressiveness method 1+
setAsyncReference method 1
setIdleTimerPeriod method 1
setPowerState method 1 2
setProperties method 1
showallkmods macro 1
  example output 1
showallstacks macro 1
  example output 1+
  using to debug system hangs 1
showkmodaddr macro 1
state variable 1
stringFromReturn method 1
strings, internationalization of 1 2
strip tool 1
structure parameter types 1+
switchtoact macro 1
  example output 1+
switchtoctx macro 1
symbol files, and two-machine debugging 1
symboled kernel 1
synchronous data transfer, using user clients 1+
syscall API 1
sysctl API 1
system hangs
  debugging 1 2
  symptoms of 1
T
target computer 1+
testing
  and security considerations 1
  configuration 1
  power-management 1 2
  quality-control 1 2
thread-safety, and libkern container and collection classes 1
two-machine debugging. See debugging, two-machine
U
universal binary, developing 1+
unlockForArbitration method 1
unregisterInterrupt method 1
user clients
  and application design 1
  and cross-boundary transport mechanisms 1
  and hardware capabilities 1+
  and IOService methods 1
  and range of accessibility 1
  and task files 1
  and validating data 1
  architecture of 1+
  as a subclass of IOUserClient 1
  constructing IOExternalMethod array for 1+
  creating custom 1+
  custom user-client sample 1+
  defining common data types for 1
  enforcing exclusive device access with 1+
  factors in designing 1+ 2+
  initializing instances of 1+
  mapping device registers with 1+
  passing untyped data asynchronously with 1 2+
  passing untyped data synchronously with 1+
  synchronous and asynchronous data transfer 1+
user-kernel communication. See kernel-user communication
user-space clients 1+
  See also device interfaces
  and closing the user-client connection 1
  and connecting to the driver instance 1
  and finding the driver instance 1+
  and getting the Mach port 1
  and opening the user client 1+
  defining common data types for 1 2
  passing untyped data asynchronously with 1+
  sending and receiving data with 1+
  using run loops with 1+
  using to display localized information 1+
V
version numbers, of kernel extensions 1
virtual tables 1
  padding of 1+
W
waitForService method 1
waitQuiet method 1
work loops, using getWorkLoop method 1
X
XML
  and libkern objects 1
  and localization 1
  property list representation in 1+