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
Sort by
Topic
Sort by
Resource Type
Sorted by
Date
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
Secrets of the GPT (HTML)
TN2166: Describes the new partition map format used by Intel-based Macintosh computers.
Storage Technical Notes 2006-11-06
SimplePlayThru (HTML) (DMG) (ZIP)
Use the HAL's Audio Output Unit (AUHAL) for device input and output on a single device (play-thru)
Audio Sample Code 2006-10-25
USBPrivateDataSample (HTML) (DMG) (ZIP)
Demonstrates notifications when a USB device is hotplugged and associating arbitrary data with each device.
Audio, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Printing, Scanners, SCSI, Serial, Still Cameras, Storage, USB Sample Code 2006-10-16
VolumeToBSDNode (HTML) (DMG) (ZIP)
Shows how to iterate across all mounted volumes and retrieve their BSD node names.
Storage Sample Code 2006-10-16
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
Performance Overview (HTML) (PDF)
Introduces the factors that determine performance.
Performance Guides 2006-10-03
The state of mDNSResponder (HTML)
QA1339: Explains how to obtain information regarding the internal state of mDNSResponder.
Bonjour, Networking Technical Q&As 2006-10-03
VendorSpecificType00 (HTML) (DMG) (ZIP)
Demonstrates how to access vendor-specific storage device functionality using a simple interface from user space code.
Fibre Channel, FireWire, SCSI, Storage, USB Sample Code 2006-10-02
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
Hardware Developer Note Terms and Abbreviations (HTML)
Lists common terms and abbreviations used in Apple's Hardware Developer Notes.
General Guides 2006-08-08
Memory Usage Performance Guidelines (HTML) (PDF)
Guidelines for improving the performance of memory-related code.
Performance Guides 2006-06-28
Building Customized User Client Drivers for USB Devices (HTML)
Learn how to write the setup code for card readers, bill validators, and other devices.
Human Interface Device & Force Feedback, USB Articles 2006-06-26
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
Uniquely Identifying a Macintosh Computer (HTML) (日本語 HTML)
TN1103: How to identify a specific Macintosh computer.
Security Technical Notes 2006-04-25
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
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
Common QA and Roadmap for USB Software Development on Mac OS X (HTML)
QA1370: Roadmap for development of USB Software on Mac OS X and some Common Questions and Answers
USB Technical Q&As 2006-02-28
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
CDROMSample (HTML) (DMG) (ZIP)
Demonstrates how to find CD-ROM media and read sectors from that media on Mac OS X.
Storage Sample Code 2006-01-31
SampleFilterScheme (HTML) (DMG) (ZIP)
Demonstrates a simple filter scheme which passes all operations through to its provider unchanged.
Mac OS X Server, Storage Sample Code 2006-01-03
Device File Access Guide for Serial Devices (HTML) (PDF)
Guidelines for using I/O Kit and POSIX functions to develop applications that communicate with serial devices.
Serial Guides 2005-12-06
Coding in the Kernel (HTML)
Considerations and caveats about programming in the kernel.
General Guides 2005-11-09
15-inch PowerBook G4 Developer Note (HTML) (PDF)
Specifies the internal design, I/O features, and expansion capabilities of the 15-inch PowerBook G4 introduced in October 2005.
Apple Hardware Guides 2005-10-27
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
17-inch PowerBook G4 Developer Note (HTML) (PDF)
Specifies the internal design, I/O features, and expansion capabilities of the 17-inch PowerBook G4 introduced in October 2005.
Apple Hardware Guides 2005-10-19
AudioCDSample (HTML) (DMG) (ZIP)
Demonstrates how to discover audio CDs and access the TOC information presented by the CD-DA filesystem.
Audio, Storage Sample Code 2005-10-04
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
SerialPortSample (HTML) (DMG) (ZIP)
Demonstrates how to do serial I/O on Mac OS X.
Serial Sample Code 2005-08-16
Specifiying if the CPU or the GPU should be used for rendering. (HTML)
QA1416: Which processor will be used for rendering in Core Image and how to affect it.
Graphics & Imaging Technical Q&As 2005-08-16
enetlognke (HTML) (DMG) (ZIP)
Interface filter based on supported Kernel Programming Interfaces for Tiger.
Networking Sample Code 2005-08-10
SimpleVideoOut (HTML) (DMG) (ZIP)
Demonstrates how QuickTime Video Output Components can be used to play video out to hardware.
QuickTime Sample Code 2005-08-10
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
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
Detecting low printer ink levels (HTML)
TN2144: How to detect printer supply levels using a low ink tool
Printing Technical Notes 2005-06-29
GridCalendar (HTML) (DMG) (ZIP)
Demonstrates how to add a custom job submission UI to the GridSample project.
Networking Sample Code 2005-06-01
Sending SCSI or ATA commands to storage devices (HTML) (日本語 HTML)
QA1179: Explains that Mac OS X does not implement SCSI or ATA pass-through for many mass storage devices.
Fibre Channel, FireWire, Scanners, SCSI, Storage, USB Technical Q&As 2005-05-10
eMac Developer Note (HTML) (PDF)
Specifies the internal design, I/O features, and expansion capabilities of the eMac computer introduced in May 2005.
Apple Hardware Guides 2005-05-03
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
Power Mac G5 Developer Note (HTML) (PDF)
Specifies the internal design, I/O features, and expansion capabilities of the Power Mac G5 introduced in April 2005.
Apple Hardware Guides 2005-04-29
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
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
SampleUSBAudioPlugin (HTML) (DMG) (ZIP)
USB audio plugin that performs a lowpass filtering operation on audio streamed through an audio USB Device.
Audio, USB Sample Code 2005-03-07
12-inch PowerBook G4 Developer Note (HTML) (PDF)
Specifies the internal design, I/O features, and expansion capabilities of the 12-inch PowerBook G4 introduced in January 2005.
Apple Hardware Guides 2005-02-04
Sequence Grabber - Determining the capture resolution of an IIDC device (HTML)
QA1403: Discusses how to determine the resolution of a captured image from an IIDC device
QuickTime Technical Q&As 2005-01-06
Xserve G5 PCI Hardware RAID Card (PDF)
Explains how to install the card in an Xserve G5 and how to set up a RAID volume.
Apple Hardware, Storage Guides 2005-01-03
Xserve G5 Quick Start (PDF)
Explains where to find information for installing, setting up, using, and monitoring Xserve G5 systems.
Apple Hardware Guides 2005-01-03
Xserve G5 Using the Hardware RAID PCI Card (PDF)
Explains how to use the software provided with the Hardware RAID PCI Card to configure and manage RAID operations.
Apple Hardware, Storage Guides 2005-01-03
Xserve G5 Using Xserve Remote Diagnostics (PDF)
Explains how to use the Xserve Remote Diagnostics tool to test server hardware.
Apple Hardware Guides 2005-01-03
Xserve RAID User's Guide (PDF)
Explains how to install the Xserve RAID system, connect it to a host system, and configure RAID storage.
Apple Hardware, Storage Guides 2005-01-03
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
Power Mac G5 -- Single Processor Developer Note (HTML) (PDF)
Specifies the internal design, I/O features, and expansion capabilities of the single processor Power Mac G5 introduced October 2004.
Apple Hardware Guides 2004-10-19
iSight Programming Guide (HTML) (PDF)
Describes the Apple iSight video camera and its enhancements.
FireWire, Graphics & Imaging Guides 2004-10-05
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
dist_fft (HTML) (DMG) (ZIP)
Gigaelement FFTs on Apple G5 clusters
Performance Sample Code 2004-08-23
Bonjour service types used in Mac OS X (HTML)
QA1312: Provides a list of common Bonjour service types used in Mac OS X.
Bonjour Technical Q&As 2004-07-14
Available FireWire Isochronous Bandwidth (HTML)
QA1356: Discusses attempting to "pre-flight" an isochronous bandwidth allocation request by reading the currently available bandwidth.
Audio, FireWire, QuickTime Technical Q&As 2004-07-07
Discovering all advertised Bonjour service types (HTML)
QA1337: Explains how to discover all Bonjour service types being advertised on the local network.
Bonjour, Networking Technical Q&As 2004-06-01
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
Bonjour enforces the service type format in Panther (HTML)
QA1198: Explains why registering a Bonjour service might fail on Panther.
Bonjour, Networking Technical Q&As 2004-03-23
DDR SDRAM ICs for PowerBooks and iBooks that use Memory bus slewing (HTML)
QA1344: Specifies DDR SDRAM IC optimization for PowerBooks and iBooks that use Memory bus slewing.
Apple Hardware, Open Firmware Technical Q&As 2004-03-18
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
Clearing mDNSResponder's cached records (HTML)
QA1310: Clearing the Bonjour service cache (mDNSResponder's cached records) for testing purposes.
Bonjour Technical Q&As 2004-02-11
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
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
CPUGestalt (HTML) (DMG) (ZIP)
Deprecated - Shows how to determine the processor type of the Macintosh you're running on.
Apple Hardware Sample Code 2003-10-27
Bonjour TXT record rate limiting in Panther (HTML)
QA1293: Explains how mDNSResponder implements TXT record rate limiting in Panther.
Bonjour Technical Q&As 2003-10-23
Registering a Bonjour service multiple times (HTML)
QA1311: Explains why registering the same Bonjour service twice on the same machine doesn't cause a name conflict.
Bonjour, Networking Technical Q&As 2003-10-23
Sleep vs. Doze on Mac OS X (HTML)
QA1309: Discusses and demonstrates sleep versus doze detection on Machintosh Mac OS X
Apple Hardware, PCI and PC Card, Performance Technical Q&As 2003-10-09
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
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
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
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
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 .
Apple Hardware, Human Interface Device & Force Feedback, Performance, Storage, USB Technical Q&As 2003-08-21
Bluetooth Radio Power Class for Apple Systems (HTML) (日本語 HTML)
QA1278: Notes Preferred Bluetooth Transmitter Characteristics for products designed for Apple Systems.
Apple Hardware, Bluetooth, Performance Technical Q&As 2003-08-06
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
DRAM DIMM power pin connections for Macintosh Computers (HTML) (日本語 HTML)
QA1271: Discusses design considerations for DRAM DIMM power pin connections for Macintosh Computers.
Apple Hardware, Performance Technical Q&As 2003-07-04
FireWire: DCL Programs Under Mac OS X (HTML) (日本語 HTML)
TN2072: Describes the structure and creation of DCL programs under Mac OS X.
FireWire Technical Notes 2003-06-21
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
BSDLLCTest (HTML) (DMG) (ZIP)
Program sample demonstrates how to send and receive raw LLC Ethernet packets.
Ethernet, Networking Sample Code 2003-06-12
Power adapter Sensing for the 17" PowerBook (HTML) (日本語 HTML)
QA1266: Details Design and detection considerations for 17-inch PowerBook power adapters
Apple Hardware, Performance Technical Q&As 2003-06-12
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
Empty Memory Objects (HTML) (日本語 HTML)
QA1259: Describes how two memory management edge cases are handled by the common Mac OS memory allocators.
Apple Hardware, Performance Technical Q&As 2003-04-21
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
CD-ROM Detection (HTML) (DMG) (ZIP)
Shows how to determine whether a drive is a CD-ROM drive.
Storage Sample Code 2003-01-14
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
GetSetOptions (HTML) (DMG) (ZIP)
Demonstrates a variety of uses of Open Transport's option management routines.
Networking Sample Code 2003-01-14
NoCopyReceives (HTML) (DMG) (ZIP)
Demonstrates using no-copy receives under Open Transport.
Networking Sample Code 2003-01-14
simpleAVC (HTML) (DMG) (ZIP)
Shows how to discover and send commands to AVC devices connected by FireWire.
FireWire Sample Code 2003-01-14
Why does logging keep my Printer Module from working? (HTML) (日本語 HTML)
Deprecated - QA1182: Describes some problems with standard printf logging in a Printer Module on Jaguar.
Printing Technical Q&As 2002-11-06
Why don't all of my PDE localizations show up in all applications? (HTML) (日本語 HTML)
QA1185: Explains why some PDE localizations might not appear in all applications.
Printing Technical Q&As 2002-10-16
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).
Apple Hardware, Performance Technical Q&As 2002-08-19
Workaround for Asynchronous SCSIAction Crashes (HTML) (日本語 HTML)
Deprecated - QA1129: Explains how to workaround asynchronous SCSIAction crashes on Mac OS X.
SCSI Technical Q&As 2002-03-21
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
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
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.
AirPort/802.11, Apple Hardware, ATA, Audio, Bluetooth, Ethernet, Fibre Channel, FireWire, Human Interface Device & Force Feedback, Networking, PCI and PC Card, Printing, Scanners, SCSI, Serial, Still Cameras, Storage, USB Technical Q&As 2002-02-13
Working with Configuration Variables (HTML) (日本語 HTML)
QA1119: Explains how to delete a specific Open Firmware configuration variable without using Command-Option-P-R.
Apple Hardware, PCI and PC Card Technical Q&As 2002-02-13
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
User-Mode USB Device Arbitration (HTML)
Information about using USB device arbitration, available in Mac OS X version 10.1 and later.
USB Guides 2002-02-06