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

Sorted by
Title
Sort by
Topic
Sort by
Resource Type
Sort by
Date
Force Feedback Framework Reference (HTML)
Describes the public interfaces to the Force Feedback implementation in Mac OS X, including support for plug-ins.
Human Interface Device & Force Feedback Reference 2008-04-08
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
Fundamentals of Open Firmware, Part II: The Device Tree (HTML)
TN1062: Describes the Open Firmware device tree.
Apple Hardware Technical Notes 1996-09-01
Fundamentals of Open Firmware, Part III: Understanding PCI Expansion ROM Choices for Mac OS (HTML)
TN1044: Recommended contents for PCI expansion ROMs, including a table of standard devices, properties and methods.
Open Firmware Technical Notes 2001-06-26
Generating a Non-Maskable Interrupt (NMI) (HTML) (日本語 HTML)
QA1264: Explains how to generate a non-maskable interrupt (NMI) on modern Macintosh systems.
AirPort/802.11, Apple Hardware, ATA, Audio, Bluetooth, Bonjour, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Mac OS X Server, Networking, PCI and PC Card, Performance, Printing, QuickTime, Scanners, SCSI, Serial, Still Cameras, Storage, USB Technical Q&As 2008-10-13
GetHWEthernetAddr (HTML) (DMG) (ZIP)
Deprecated - Shows how to obtain the hardware Ethernet address of a machine.
Ethernet Sample Code 2003-01-14
GetMACAddressSample (HTML) (DMG) (ZIP)
Demonstrates how to retrieve the MAC address for each Ethernet interface from the Mac OS X I/O Registry.
Ethernet, Networking Sample Code 2003-01-14
GetPrimaryMACAddress (HTML) (DMG) (ZIP)
Demonstrates retrieving the MAC address of the built-in Ethernet controller. Useful for uniquely identifying a Macintosh system.
Ethernet, Networking Sample Code 2005-10-27
GetSetOptions (HTML) (DMG) (ZIP)
Demonstrates a variety of uses of Open Transport's option management routines.
Networking Sample Code 2003-01-14
Getting a List of Drivers & LUNs (logical unit numbers) (HTML)
Deprecated - DV04: Describes a legacy Mac OS technique for obtaining a list of SCSI Parallel drivers, devices, and LUNs.
ATA, SCSI, Storage Technical Q&As 1995-07-01
Getting a Packet Trace (HTML) (日本語 HTML)
QA1176: Lists tools available for looking at the network packets on the wire.
AirPort/802.11, Bonjour, Networking Technical Q&As 2008-06-03
The "green" PCI bus (HTML)
HW93: Explains why the PCI bus is considered "green".
Apple Hardware, PCI and PC Card Technical Q&As 2000-09-05
GridCalendar (HTML) (DMG) (ZIP)
Demonstrates how to add a custom job submission UI to the GridSample project.
Networking Sample Code 2005-06-01
Hardware Developer Note Terms and Abbreviations (HTML)
Lists common terms and abbreviations used in Apple's Hardware Developer Notes.
General Guides 2006-08-08
HBA Device Driver Programming Guide (HTML) (PDF)
Describes how to develop a high-performance, kernel-resident driver for an HBA device.
Fibre Channel, SCSI, Serial Guides 2006-05-23
HID Class Device Interface Guide (HTML) (PDF)
Explains how to develop applications to communicate with or control HID class devices.
Human Interface Device & Force Feedback Guides 2009-05-06
HID Config Save (HTML) (DMG) (ZIP)
Human Interface Device Manager Configuration sample
Human Interface Device & Force Feedback Sample Code 2008-05-07
HID Manager Basics (HTML) (DMG) (ZIP)
Shows basic use of HID Manager for Mac OS X: including device discovery, queues and polling elements.
Human Interface Device & Force Feedback Sample Code 2003-07-10
HID Manager Event Data Underruns (HTML)
QA1038: Explains how to correctly handle HID Manager event queue data underruns.
Human Interface Device & Force Feedback, USB Technical Q&As 2001-06-13
HID Utilities Source (HTML) (DMG) (ZIP)
Shows a high level abstract library for the HID manager.
Human Interface Device & Force Feedback Sample Code 2003-10-06
High-Speed SDRAM Design Considerations (HTML) (日本語 HTML)
TN1138: Illustrates certain issues with the design of high-speed SDRAM DIMM modules.
Apple Hardware Technical Notes 1998-08-01
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, 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.
Apple Hardware, 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.
Apple Hardware, Performance Technical Q&As 1999-10-11
How does Open Firmware generate the name property? (HTML) (日本語 HTML)
HW39: Describes the Open Firmware name property generation process.
Apple Hardware Technical Q&As 1999-02-15
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
How to use the OT modem script engine (HTML) (日本語 HTML)
Deprecated - NW50: Shows how to use the Open Transport modem script engine.
Networking Technical Q&As 1997-07-11
I/O Kit Device Driver Design Guidelines (HTML) (PDF)
Design guidelines and tips for developing, debugging, and deploying kernel-resident device drivers, including user clients.
General Guides 2007-03-06
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.
ATA, Audio, Ethernet, Fibre Channel, FireWire, General, Graphics & Imaging, Human Interface Device & Force Feedback, Networking, Open Firmware, PCI and PC Card, Performance, Scanners, SCSI, Serial, Still Cameras, Storage, USB Reference 2009-03-04
I/O Kit Fundamentals (HTML) (PDF)
The basics of developing device drivers. Includes descriptions of I/O Kit families.
General, Performance Guides 2007-05-17
I/O Kit Power Controller (HTML) (日本語 HTML)
TN2076: Describes code to include in a KEXT in order to register for power management events.
Apple Hardware, PCI and PC Card Technical Notes 2003-06-20
I/O Kit Power Management Release Notes (HTML)
Describes the latest changes to power management for Mac OS X v10.5.
General, Performance Release Notes 2007-10-31
iBook Developer Note (HTML) (PDF)
Specifies the internal design, I/O features, and expansion capabilities of the iBook G4 computer introduced in July 2005.
Apple Hardware Guides 2005-07-26
iMac Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of iMac computers introduced in April 2008.
Apple Hardware Guides 2008-04-28
iMac Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of iMac computers introduced in August 2007.
Apple Hardware Guides 2007-08-07
iMac Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of iMac computers with SuperDrive introduced September 2006.
Apple Hardware Guides 2007-05-03
iMac Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of the iMac computer introduced in January 2006.
Apple Hardware Guides 2007-04-04
iMac Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of iMac computers with Combo drive introduced September 2006.
Apple Hardware Guides 2006-09-07
iMac G5 Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of the iMac G5 computer introduced in October 2005.
Apple Hardware Guides 2006-04-07
iMac G5 Developer Note (HTML) (PDF)
Specifies the internal design, I/O features, and expansion capabilities of the iMac G5 introduced in May 2005.
Apple Hardware Guides 2005-05-03
Image Capture Applications Programming Guide (HTML) (PDF)
Describes the interaction between applications programs and image capture devices such as cameras and scanners.
Graphics & Imaging Guides 2007-05-16
Image Capture Device Modules Reference (HTML)
Describes the API to add support for image capture devices, such as cameras, phones, and scanners, to Mac OS X.
Graphics & Imaging Reference 2008-04-08
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.
AirPort/802.11, Apple Hardware, ATA, Audio, Bluetooth, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Mac OS X Server, Networking, PCI and PC Card, Performance, QuickTime, SCSI, Serial, Storage, USB Technical Q&As 2003-10-28
Installing smart card reader drivers (HTML)
QA1359: Updates obsolete information contained in the pcscd(8) man page on Mac OS X Jaguar and Panther.
Serial, USB Technical Q&As 2004-08-30
Invoking the Open Firmware user interface (HTML) (日本語 HTML)
HW45: Describes how to invoke the Open Firmware user interface on startup.
Apple Hardware Technical Q&As 1999-02-15
IODeviceTree and the I/O Registry (HTML) (日本語 HTML)
QA1120: Describes the IODeviceTree plane in the Mac OS X I/O Registry.
AirPort/802.11, Apple Hardware, ATA, Audio, Bluetooth, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Networking, Open Firmware, PCI and PC Card, Printing, Scanners, SCSI, Serial, Still Cameras, Storage, USB 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.
AirPort/802.11, Apple Hardware, ATA, Audio, Bluetooth, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Mac OS X Server, Networking, PCI and PC Card, Performance, Printing, QuickTime, Scanners, SCSI, Serial, Still Cameras, Storage, USB 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
iSight - Configuring gain settings for IIDC cameras (HTML)
QA1421: Discusses how to configure features of IIDC cameras, specifically gain for the iSight
QuickTime Technical Q&As 2005-04-06
iSight Programming Guide (HTML) (PDF)
Describes the Apple iSight video camera and its enhancements.
FireWire, Graphics & Imaging Guides 2004-10-05
Issues with boot time KEXT loading (HTML) (日本語 HTML)
QA1087: Explains how to solve problems with loading KEXTs at boot time.
ATA, Bluetooth, Ethernet, FireWire, Human Interface Device & Force Feedback, Networking, PCI and PC Card, SCSI, Serial, USB 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.
ATA, Audio, Ethernet, Fibre Channel, FireWire, General, Graphics & Imaging, Human Interface Device & Force Feedback, Networking, Open Firmware, PCI and PC Card, SCSI, Storage, USB Reference 2009-01-06
Kernel Programming Guide (HTML) (PDF)
Essential information for programming in the Mac OS X kernel. Includes a high-level overview.
General Guides 2006-11-07
Legacy Devices (HTML)
HW84: Discusses why legacy devices with hard-wired I/O addresses may not work properly with Open Firmware.
ATA, PCI and PC Card, QuickTime, Storage Technical Q&As 2000-03-20
Leopard Technology Series for Developers: OS Foundations (HTML)
Leopard Overview article on system-level updates.
Bonjour, General, Security Articles 2007-09-04
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.
Open Firmware, PCI and PC Card Technical Q&As 2000-07-17
Mac mini Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of the Mac mini computer introduced in February 2006.
Apple Hardware Guides 2007-04-04
Mac mini Developer Note (HTML) (PDF)
Specifies the internal design, I/O features, and expansion capabilities of the Mac mini introduced January 2005.
Apple Hardware Guides 2005-04-05
Mac OS X Server Security Configuration Guide (PDF)
Describes how to configure Mac OS X Server to enhance server and service security.
Mac OS X Server, Networking, Security Guides 2008-06-09
Mac Pro Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of the Mac Pro computers introduced in January 2008.
Apple Hardware Guides 2008-01-09
Mac Pro Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of the Mac Pro computer introduced in August 2006.
Apple Hardware Guides 2007-05-03
Mac Pro Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of the Mac Pro computers introduced in April 2007.
Apple Hardware Guides 2007-04-05
MacBook Air Developer Note (HTML)
New document specifies internal design, I/O features, and expansion capabilities of the MacBook Air computer introduced in January 2008.
Apple Hardware Guides 2008-01-18
MacBook Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of the MacBook computer introduced in February 2008.
General Guides 2008-03-04
MacBook Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of the MacBook computer introduced in November 2007.
Apple Hardware Guides 2007-11-10
MacBook Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of the MacBook computer introduced in May 2007.
Apple Hardware Guides 2007-05-17
MacBook Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of the MacBook computer introduced in May 2006.
Apple Hardware Guides 2007-04-04
MacBook Developer Note (HTML)
Specifies the internal design, I/O features, and expansion capabilities of the MacBook computer introduced in November 2006.
Apple Hardware Guides 2007-04-04
Making sense of IOKit error codes (HTML) (日本語 HTML)
QA1075: Explains how to interpret I/O Kit error codes.
ATA, Bluetooth, Ethernet, FireWire, Networking, PCI and PC Card, SCSI, Serial, USB Technical Q&As 2002-02-07
Mass Storage Device Driver Programming Guide (HTML) (PDF)
Background and task information about developing kernel-resident drivers for mass storage devices.
Storage Guides 2007-04-03
Maximum Memory for the "Firewire" PowerBook (HTML)
Deprecated - HW83: Discrepancies between PowerBook Developer Note and TIL articles 14870 and 58582, regarding maximum memory configurations.
Apple Hardware Technical Q&As 2000-03-13
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.
Apple Hardware, Performance Technical Q&As 2001-12-21
Mixing link-local IP addresses and routable IP addresses (HTML)
QA1357: Explains how to enable communication between devices with link-local addresses and devices with routable addresses.
Bonjour, Networking Technical Q&As 2005-07-06
Multipathing with FibreChannel on Mac OS X (HTML)
TN2173: An explanation on how FibreChannel multipathing works on Mac OS X and how to design storage hardware to take advantage of it
Fibre Channel, SCSI, Storage Technical Notes 2007-03-23
Network Device Driver Programming Guide (HTML) (PDF)
Background and task information about developing network drivers for Mac OS X.
Networking Guides 2008-03-11
Network Kernel Extensions (legacy) (HTML) (PDF)
Describes how to write a kernel extension for adding or modifying functionality of a networking stack (Mac OS X 10.3 and earlier).
Networking Guides 2006-10-03
Network Kernel Extensions Programming Guide (HTML) (PDF)
Describes how to write a kernel extension for adding or modifying functionality of a networking stack (Mac OS X 10.4 and later).
Networking Guides 2009-03-02
New HID Manager APIs for Mac OS X version 10.5 (HTML)
TN2187: Mac OS X version 10.5 introduces new APIs for the HID Manager.
Human Interface Device & Force Feedback Technical Notes 2008-01-23
New PPD keywords available in Mac OS X version 10.3 (HTML)
QA1352: Describes the new PPD keywords available for CUPS filters in Mac OS X 10.3.
Printing Technical Q&As 2004-05-26
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.
Audio, PCI and PC Card Technical Notes 1998-04-01
NoCopyReceives (HTML) (DMG) (ZIP)
Demonstrates using no-copy receives under Open Transport.
Networking Sample Code 2003-01-14
Obtaining 16 Bits-Per-Color Data with CUPS Raster Printing (HTML)
TN2149: Obtaining 16 Bits-Per-Color Data with CUPS Raster Printing
Printing Technical Notes 2005-08-24
Obtaining the name of an external MIDI Device from a MIDI Endpoint (HTML)
QA1374: Get the names of external MIDI Devices from MIDI Endpoints.
Audio Technical Q&As 2004-12-01
Open Firmware device tree nodes (HTML)
HW86: Explains the usage of the "@n" notation in Open Firmware device tree nodes.
Apple Hardware, 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.
Apple Hardware, PCI and PC Card Technical Q&As 2000-09-22
Open Firmware version number (HTML)
HW96: Discusses the unique values of Open Firmware version numbers.
Apple Hardware, Performance Technical Q&As 2000-09-22
Open Transport STREAMS FAQ (HTML)
Deprecated - TN1117: Decribes writing STREAMS modules and drivers for use with Open Transport.
Networking Technical Notes 1997-12-01
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.
Apple Hardware, Networking, 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.
AirPort/802.11, Apple Hardware, ATA, Audio, Bluetooth, Bonjour, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Mac OS X Server, Networking, PCI and PC Card, Performance, Printing, QuickTime, Scanners, SCSI, Serial, Still Cameras, Storage, USB 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.
Apple Hardware, Performance Technical Q&As 2002-03-18
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.
Apple Hardware, PCI and PC Card Technical Q&As 1999-02-15
PCI class codes (HTML)
HW91: Explains why PCI class codes are important.
Apple Hardware, PCI and PC Card, Performance 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.
Apple Hardware, PCI and PC Card, 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.
Apple Hardware, PCI and PC Card, Performance 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