Jump To:
Leopard Reference Library
Apple provides information hardware developers can use to create products that are compatible with Macintosh computers and programming interfaces software developers can use to create software that drives or accesses devices.

A guided learning path for hardware and driver developers new to Mac OS X.   Essential information for developing drivers and device-access software.   API references organized by framework.
Document Descriptions
On Off
Display

Sort by
Title
Sorted by
Topic
Sort by
Resource Type
Sort by
Date
Allocating and sharing memory with user space from an I/O Kit driver (HTML) (日本語 HTML)
QA1197: Describes the preferred technique for allocating and sharing buffers in an I/O Kit kernel driver.
PCI and PC Card Technical Q&As 2008-10-13
Are the Name Registry device tree nodes unique? (HTML)
Deprecated - HW64: Discusses whether Name Registry nodes copied from the Open Firmware device tree are unique.
PCI and PC Card Technical Q&As 1999-10-11
Avoiding Kernel Event Conflicts (HTML)
QA1063: Documents the namespace for the vendor_code field of the kern_event_msg structure.
PCI and PC Card Technical Q&As 2001-09-14
Building Universal I/O Kit Drivers (HTML)
TN2163: How to build a universal I/O Kit kernel driver while avoiding common pitfalls.
PCI and PC Card Technical Notes 2008-08-18
Can you explain the words "begin" and "again"? (HTML)
HW70: Explains the Forth looping words "begin" and "again" and how to escape such a loop.
PCI and PC Card Technical Q&As 1999-10-11
The "chosen" node in the device tree (HTML)
HW88: Describes how to find the "chosen" node in the Open firmware device tree.
PCI and PC Card Technical Q&As 2000-09-05
Dealing with PCI Expansion Chassis Problems (HTML) (日本語 HTML)
TN1135: Discusses solutions for compatibility issues between PCI cards and attached expansion chassis.
PCI and PC Card Technical Notes 1998-08-01
Determining Open Firmware version (HTML)
HW100: Demonstrates how to find out the version of Open Firmware on your Macintosh.
PCI and PC Card Technical Q&As 2000-10-06
Difference between an Open Firmware word and method (HTML) (日本語 HTML)
HW46: Describes the differences between an Open Firmware word and an Open Firmware method.
PCI and PC Card Technical Q&As 1999-02-15
Difference between using Restart or Shut Down in the Finder's Special menu in Open Firmware (HTML) (日本語 HTML)
HW47: Explains the differences between using Restart or Shut Down on Open Firmware
PCI and PC Card Technical Q&As 1999-02-15
Displaying PCI Configuration Registers contents in Open Firmware (HTML)
QA1036: Demonstrates how to display PCI Configuration Resister contents in Open Firmware.
PCI and PC Card Technical Q&As 2001-05-18
Do PowerBooks have a PCI bus? (HTML) (日本語 HTML)
HW43: Explains that a Powerbook has a PCI bus.
PCI and PC Card Technical Q&As 1999-02-15
The dreaded "incompatible flag -framework" error (HTML)
QA1096: Explains how to eliminate the incompatible flag -framework error in Project Builder.
PCI and PC Card Technical Q&As 2001-12-05
Energy Star PCI Device (HTML) (日本語 HTML)
QA1108: Provides useful information for developers of Energy Star-compliant PCI devices.
PCI and PC Card Technical Q&As 2002-01-15
ExpressCard Prevents System Sleep (HTML)
QA1517: Describes how some ExpressCard cards can prevent system sleep and how to fix the problem.
PCI and PC Card Technical Q&As 2007-02-28
Fundamentals of Open Firmware, Part I: The User Interface (HTML)
TN1061: Describes the Open Firmware User Interface, Forth and the Open Firmware language used in Apple products.
PCI and PC Card Technical Notes 1996-07-01
Generating a Non-Maskable Interrupt (NMI) (HTML) (日本語 HTML)
QA1264: Explains how to generate a non-maskable interrupt (NMI) on modern Macintosh systems.
PCI and PC Card Technical Q&As 2008-10-13
The "green" PCI bus (HTML)
HW93: Explains why the PCI bus is considered "green".
PCI and PC Card Technical Q&As 2000-09-05
How can I tell if a PCI device has on board I/O space? (HTML)
QA1287: Demonstrates "how to" tell if a PCI device has on board I/O space.
PCI and PC Card Technical Q&As 2003-09-24
How many PCI header types exist today? (HTML)
HW92: Briefly describes the three PCI header types defined in the PCI 2.2 specification.
PCI and PC Card Technical Q&As 2000-09-05
I/O Kit Framework Reference (HTML)
Describes the I/O Kit classes that support non-kernel access to I/O Kit objects through the device-interface mechanism.
PCI and PC Card Reference 2009-03-04
I/O Kit Power Controller (HTML) (日本語 HTML)
TN2076: Describes code to include in a KEXT in order to register for power management events.
PCI and PC Card Technical Notes 2003-06-20
Installing an I/O Kit KEXT Without Rebooting (HTML)
QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart.
PCI and PC Card Technical Q&As 2003-10-28
IODeviceTree and the I/O Registry (HTML) (日本語 HTML)
QA1120: Describes the IODeviceTree plane in the Mac OS X I/O Registry.
PCI and PC Card Technical Q&As 2008-09-18
IOKit Framework Headers (HTML) (日本語 HTML)
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
PCI and PC Card Technical Q&As 2002-01-15
IOLog and Interrupt Context (HTML) (日本語 HTML)
QA1100: Describes when IOKit runs at primary (hardware) interrupt context.
PCI and PC Card Technical Q&As 2002-02-13
Issues with boot time KEXT loading (HTML) (日本語 HTML)
QA1087: Explains how to solve problems with loading KEXTs at boot time.
PCI and PC Card Technical Q&As 2004-01-15
Kernel Framework Reference (HTML)
Describes the APIs and classes (including I/O Kit families) that support kernel-resident device drivers.
PCI and PC Card Reference 2009-01-06
Legacy Devices (HTML)
HW84: Discusses why legacy devices with hard-wired I/O addresses may not work properly with Open Firmware.
PCI and PC Card Technical Q&As 2000-03-20
Locating the 1275-1994 Standard Document (HTML)
HW85: Alerts that the Open Firmware (IEEE 1275-1994) document can't be found at the IEEE Standards Association site.
PCI and PC Card Technical Q&As 2000-07-17
Making sense of IOKit error codes (HTML) (日本語 HTML)
QA1075: Explains how to interpret I/O Kit error codes.
PCI and PC Card Technical Q&As 2002-02-07
New Sound Input Driver Features (HTML) (日本語 HTML)
Deprecated - TN1124: Describes the visible features and changes, in Mac OS 8.1, for PCI sound input drivers.
PCI and PC Card Technical Notes 1998-04-01
Open Firmware device tree nodes (HTML)
HW86: Explains the usage of the "@n" notation in Open Firmware device tree nodes.
PCI and PC Card Technical Q&As 2000-09-05
Open Firmware Memory bus speed (HTML)
HW97: Describes a method to display memory bus speed for G3 or G4 Macintosh in Open Firmware.
PCI and PC Card Technical Q&As 2000-09-22
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
PCI and PC Card Technical Q&As 2006-02-22
PCI address/data stepping (HTML)
HW94: Explains that Apple does not support PCI address/data stepping.
PCI and PC Card Technical Q&As 2000-09-05
PCI bus on the iMac (HTML) (日本語 HTML)
HW42: Explains that the iMac has a PCI bus even though it has no expansion slots.
PCI and PC Card Technical Q&As 1999-02-15
PCI class codes (HTML)
HW91: Explains why PCI class codes are important.
PCI and PC Card Technical Q&As 2000-09-05
PCI Developer Note (HTML)
Provides an overview of PCI technology and describes PCI support on Mac computers.
PCI and PC Card Guides 2008-04-28
PCI Header types (HTML)
HW78: Describes the three required types of PCI headers to be provided in its configuration header space.
PCI and PC Card Technical Q&As 1999-11-15
PCI Macintoshes and CardBus controllers (HTML)
HW87: Explains why older PCI Macintoshes do not recognize a Cardbus controller.
PCI and PC Card Technical Q&As 2000-09-05
PCI SIG (HTML) (日本語 HTML)
HW55: Describes the meaning of the acronym PCI SIG.
PCI and PC Card Technical Q&As 1999-03-29
PCI/PCI-X slots on the Power Mac G5 (HTML)
QA1307: Discusses installing PCI/PCI-X cards of different speeds in the Power Mac G5.
PCI and PC Card Technical Q&As 2003-09-30
Power Management for Macintosh; getting started (HTML) (日本語 HTML)
TN2075: Outlines available documentation and its location for power management on Mac OS X and OS 9.
PCI and PC Card Technical Notes 2003-05-30
Power Management; Policy Maker vs. Power Controller (HTML) (日本語 HTML)
QA1121: Describes the differences between a Power Management Policy Maker and a Power Management Power Controller.
PCI and PC Card Technical Q&As 2002-02-13
Running files from a hard drive in Open Firmware (HTML)
TN2001: Demonstrates editing, saving, and retrieving Open Firmware commands to a file on a Macintosh hard drive.
PCI and PC Card Technical Notes 2000-09-22
SimpleUserClient (HTML) (DMG) (ZIP)
Shows how to create a user client for an I/O Kit kernel driver.
PCI and PC Card Sample Code 2008-08-27
Sleep vs. Doze on Mac OS X (HTML)
QA1309: Discusses and demonstrates sleep versus doze detection on Machintosh Mac OS X
PCI and PC Card Technical Q&As 2003-10-09
Understanding and Debugging Kernel Panics (HTML) (日本語 HTML)
TN2063: Addresses kernel panics: what they are and how to debug the code that caused the panic.
PCI and PC Card Technical Notes 2008-08-14
Using "words" in Open Firmware (HTML)
HW73: Explains how to search for specific entries within all the global and local Open Firmware words.
PCI and PC Card Technical Q&As 1999-10-11
Video Hardware Info (HTML) (DMG) (ZIP)
Sample demonstrates how to query the video hardware for useful information.
PCI and PC Card Sample Code 2004-02-12
Was that a path I just saw? (HTML)
HW101: Describes the Open Firmware path that is occasionally shown at boot time.
PCI and PC Card Technical Q&As 2000-10-06
What are configuration variables in Open Firmware? (HTML) (日本語 HTML)
HW38: Defines the configuration variables in Open Firmware.
PCI and PC Card Technical Q&As 1999-02-15
What are generic names in Open Firmware? (HTML) (日本語 HTML)
HW34: Documents the generic names in Open Firmware.
PCI and PC Card Technical Q&As 1999-02-15
What is a CardBus host bus adapter HBA? (HTML)
HW79: Explains what a CardBus host bus adapter (HBA) is and discusses its implementation on the Macintosh.
PCI and PC Card Technical Q&As 1999-11-15
What is a tokenizer? (HTML) (日本語 HTML)
HW58: Defines a tokenizer.
PCI and PC Card Technical Q&As 1999-03-29
What is an Open Firmware devalias? (HTML)
HW99: Describes devaliases in Open Firmware.
PCI and PC Card Technical Q&As 2000-10-06
What is an Open Firmware phandle, and why can't I access it from the Mac OS? (HTML)
HW76: Explains an "Open Firmware phandle" and why it is inaccessible from the Mac OS.
PCI and PC Card Technical Q&As 1999-11-15
What is the return stack in Open Firmware and can I use it? (HTML)
HW67: Describes the purpose of the Open Firmware return stack and how developers can use it.
PCI and PC Card Technical Q&As 1999-10-11
When to use PCMCIA, PC Card, and CardBus (HTML)
HW77: Explains the differences between PCMCIA, PC Card, and CardBus.
PCI and PC Card Technical Q&As 1999-11-15
Working with Configuration Variables (HTML) (日本語 HTML)
QA1119: Explains how to delete a specific Open Firmware configuration variable without using Command-Option-P-R.
PCI and PC Card Technical Q&As 2002-02-13
Writing PCI Drivers (HTML) (PDF)
Conceptual information about writing I/O Kit drivers for PCI, AGP, and CardBus (PC Card) devices.
PCI and PC Card Guides 2006-04-04
Affinity API Release Notes for Mac OS X v10.5 (HTML)
Explains how to influence which CPU core runs a group of threads (for performance optimization).
Performance Release Notes 2007-10-31
BlitVBL (HTML) (DMG) (ZIP)
Shows how to have Mac OS X try its best to sync to the VBL for you.
Performance Sample Code 2003-01-14
Bluetooth Radio Power Class for Apple Systems (HTML) (日本語 HTML)
QA1278: Notes Preferred Bluetooth Transmitter Characteristics for products designed for Apple Systems.
Performance Technical Q&As 2003-08-06
Determining RAM size & location in New World Machines (HTML)
QA1065: Demonstrates Open Firmware method of determining RAM size & location in New World Machines.
Performance Technical Q&As 2001-08-01
Determining the version of Open Firmware on your Mac (HTML) (日本語 HTML)
HW60: Describes a method to display the version of Open Firmware on a Macintosh.
Performance Technical Q&As 1999-03-29
Disabling Processor Cores on a Multi-Core System (HTML) (日本語 HTML)
QA1141: Describes how to disable processor cores on a multi-core system for testing purposes.
Performance Technical Q&As 2008-09-16
Displaying PCI Configuration Registers contents in Open Firmware (HTML)
QA1036: Demonstrates how to display PCI Configuration Resister contents in Open Firmware.
Performance Technical Q&As 2001-05-18
dist_fft (HTML) (DMG) (ZIP)
Gigaelement FFTs on Apple G5 clusters
Performance Sample Code 2004-08-23
DRAM DIMM power pin connections for Macintosh Computers (HTML) (日本語 HTML)
QA1271: Discusses design considerations for DRAM DIMM power pin connections for Macintosh Computers.
Performance Technical Q&As 2003-07-04
Empty Memory Objects (HTML) (日本語 HTML)
QA1259: Describes how two memory management edge cases are handled by the common Mac OS memory allocators.
Performance Technical Q&As 2003-04-21
Energy Star PCI Device (HTML) (日本語 HTML)
QA1108: Provides useful information for developers of Energy Star-compliant PCI devices.
Performance Technical Q&As 2002-01-15
Explanation of SDRAM configuration Nomenclature (HTML)
HW75: Explains the three-part "Device configuration" numbers for SDRAM in the Power Mac G4 Computer Developer Note.
Performance Technical Q&As 1999-10-18
Faster DDR DRAM in the 867MHz Power Mac G4 (Mirrored Drive Doors) (HTML) (日本語 HTML)
QA1191: Confirms the use of faster DDR DRAM in the 867MHz Power Mac G4 (Mirrored Drive Doors).
Performance Technical Q&As 2002-08-19
Generating a Non-Maskable Interrupt (NMI) (HTML) (日本語 HTML)
QA1264: Explains how to generate a non-maskable interrupt (NMI) on modern Macintosh systems.
Performance Technical Q&As 2008-10-13
How can I tell if a PCI device has on board I/O space? (HTML)
QA1287: Demonstrates "how to" tell if a PCI device has on board I/O space.
Performance Technical Q&As 2003-09-24
How do I change the numeric base for the Open Firmware user interface? (HTML)
HW66: Explains how to change the numeric base for the Open Firmware user interface.
Performance Technical Q&As 1999-10-11
How do I determine the top of the Open Firmware dictionary? (HTML)
HW69: Explains how to determine the top of the Open Firmware dictionary.
Performance Technical Q&As 1999-10-11
I/O Kit Framework Reference (HTML)
Describes the I/O Kit classes that support non-kernel access to I/O Kit objects through the device-interface mechanism.
Performance Reference 2009-03-04
I/O Kit Fundamentals (HTML) (PDF)
The basics of developing device drivers. Includes descriptions of I/O Kit families.
Performance Guides 2007-05-17
I/O Kit Power Management Release Notes (HTML)
Describes the latest changes to power management for Mac OS X v10.5.
Performance Release Notes 2007-10-31
Installing an I/O Kit KEXT Without Rebooting (HTML)
QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart.
Performance Technical Q&As 2003-10-28
IOKit Framework Headers (HTML) (日本語 HTML)
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
Performance Technical Q&As 2002-01-15
Memory Usage Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of memory-related code.
Performance Guides 2006-06-28
Menu Bar Clock and NVRAM (HTML)
QA1102: Explains why booting with the Command-Option-P-R keys doesn't reset date and time preferences.
Performance Technical Q&As 2001-12-21
Open Firmware version number (HTML)
HW96: Discusses the unique values of Open Firmware version numbers.
Performance Technical Q&As 2000-09-22
Optimization Strategies for Mac OS X (HTML)
TN1174: Achieving the best possible performance in your applications.
Performance Technical Notes 1999-09-01
OTScheduleDeferredTask When Task Running (HTML) (日本語 HTML)
NW52: Describes what happens when you use OTScheduleDefferedTask to schedule a task that is running.
Performance Technical Q&As 1997-10-13
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
Performance Technical Q&As 2006-02-22
PC100 SDRAM DIMMs on the Flat Panel iMac (HTML) (日本語 HTML)
QA1130: Describes PC100 SDRAM DIMM limitations on the "original " Flat Panel iMac.
Performance Technical Q&As 2002-03-18
PCI class codes (HTML)
HW91: Explains why PCI class codes are important.
Performance Technical Q&As 2000-09-05
PCI Header types (HTML)
HW78: Describes the three required types of PCI headers to be provided in its configuration header space.
Performance Technical Q&As 1999-11-15
PCI Macintoshes and CardBus controllers (HTML)
HW87: Explains why older PCI Macintoshes do not recognize a Cardbus controller.
Performance Technical Q&As 2000-09-05
Performance Overview (HTML) (PDF)
Introduces the factors that determine performance.
Performance Guides 2006-10-03
Power adapter Sensing for the 17" PowerBook (HTML) (日本語 HTML)
QA1266: Details Design and detection considerations for 17-inch PowerBook power adapters
Performance Technical Q&As 2003-06-12
PowerPC G5 Performance Primer (HTML) (日本語 HTML)
TN2087: Offers a high-level overview of how to maximize performance on G5 Macs.
Performance Technical Notes 2003-09-03
Resetting NVRAM to factory defaults (HTML)
QA1103: Describes what happens when you boot holding the Command-Option-P-R keys.
Performance Technical Q&As 2001-12-21
A SCSI little secret (HTML)
HW81: Details what to expect when accessing the motherboard SCSI bus on the Blue & White G3.
Performance Technical Q&As 1999-12-20
SDRAM Problems With Self-Powered USB Devices (HTML) (日本語 HTML)
HW82: Alerts that non-compliant, self-powered USB devices plugged into a G4, can cause problems with low-voltage-sensitive SDRAM .
Performance Technical Q&As 2003-08-21