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
Sorted by
Resource Type
Sort by
Date
CCL Modem Scripting Release Notes (HTML)
Explains changes to modem CCLs for Mac OS X v10.5 and what to do to change existing and supersede older scripts.
Networking, Serial, USB Release Notes 2007-10-31
Code Signing Release Notes (HTML)
Security Release Notes 2007-10-31
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
SimpleUserClient (HTML) (DMG) (ZIP)
Shows how to create a user client for an I/O Kit kernel driver.
ATA, Audio, Fibre Channel, PCI and PC Card, SCSI, Storage Sample Code 2008-08-27
HID Config Save (HTML) (DMG) (ZIP)
Human Interface Device Manager Configuration sample
Human Interface Device & Force Feedback Sample Code 2008-05-07
Cocoa OpenGL (HTML) (DMG) (ZIP)
Demonstrates using Cocoa with OpenGL, including window setup and event handling.
Graphics & Imaging Sample Code 2007-10-22
CustomMediaIcons (HTML) (DMG) (ZIP)
Providing custom media icons for storage
SCSI, Storage, USB Sample Code 2007-07-10
AppleFWAudio Vendor Specific Override Driver (HTML) (DMG) (ZIP)
This KEXT allows third-party vendors to customize AppleFWAudio with their own device-specific information.
Audio, FireWire Sample Code 2007-06-01
SMARTQuery (HTML) (DMG) (ZIP)
Demonstration of how to access and use S.M.A.R.T. disk monitoring functionality
Apple Hardware, ATA, Storage Sample Code 2007-05-30
SCSIHBAEmulator (HTML) (DMG) (ZIP)
Demonstration of how to implement a virtual parallel tasking SCSI host bus adapter (HBA)
SCSI, Storage Sample Code 2007-02-20
SCSIOldAndNew (HTML) (DMG) (ZIP)
Demonstrates a backward-compatible technique for communicating with SCSI parallel devices on Mac OS X.
Fibre Channel, Printing, Scanners, SCSI, Still Cameras, Storage Sample Code 2006-12-07
SetMouseAcclSample (HTML) (DMG) (ZIP)
Find HID System Manager and get/set cursor acceleration
Human Interface Device & Force Feedback Sample Code 2006-11-28
tcplognke (HTML) (DMG) (ZIP)
Demonstrates a TCP socket filter based on supported Kernel Programming Interfaces for Tiger
Networking Sample Code 2006-11-27
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
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
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
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
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
SerialPortSample (HTML) (DMG) (ZIP)
Demonstrates how to do serial I/O on Mac OS X.
Serial Sample Code 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
GridCalendar (HTML) (DMG) (ZIP)
Demonstrates how to add a custom job submission UI to the GridSample project.
Networking Sample Code 2005-06-01
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
dist_fft (HTML) (DMG) (ZIP)
Gigaelement FFTs on Apple G5 clusters
Performance Sample Code 2004-08-23
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
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
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
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
BSDLLCTest (HTML) (DMG) (ZIP)
Program sample demonstrates how to send and receive raw LLC Ethernet packets.
Ethernet, Networking Sample Code 2003-06-12
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
Building Universal I/O Kit Drivers (HTML)
TN2163: How to build a universal I/O Kit kernel driver while avoiding common pitfalls.
ATA, Audio, Ethernet, Fibre Channel, FireWire, Networking, PCI and PC Card, SCSI, Serial, Storage, USB Technical Notes 2008-08-18
Understanding and Debugging Kernel Panics (HTML) (日本語 HTML)
TN2063: Addresses kernel panics: what they are and how to debug the code that caused the panic.
AirPort/802.11, ATA, Audio, Ethernet, FireWire, Networking, PCI and PC Card, SCSI, Serial, Storage, USB Technical Notes 2008-08-14
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
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
Using AudioDeviceRead in Mac OS 10.4 (HTML)
TN2113: How to use AudioBufferLists with AudioDeviceRead in Tiger and beyond.
Audio Technical Notes 2006-11-29
Thermal considerations for Mac Pro FB-DIMMs (HTML)
TN2156: Design considerations and specifications for the AMB and Heat spreader for the Mac Pro
Apple Hardware Technical Notes 2006-11-10
Secrets of the GPT (HTML)
TN2166: Describes the new partition map format used by Intel-based Macintosh computers.
Storage Technical Notes 2006-11-06
Uniquely Identifying a Macintosh Computer (HTML) (日本語 HTML)
TN1103: How to identify a specific Macintosh computer.
Security Technical Notes 2006-04-25
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
Detecting low printer ink levels (HTML)
TN2144: How to detect printer supply levels using a low ink tool
Printing Technical Notes 2005-06-29
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
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
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
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
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.
Open Firmware, PCI and PC Card Technical Notes 2000-09-22
CD-ROM Driver Calls (HTML)
Deprecated - DV22: Discusses public interface to Apple CD-ROM driver and supersedes information in AppleCD SC Developer's Guide.
ATA, SCSI, Storage Technical Notes 2000-08-14
Power Manager 2.0 (HTML) (日本語 HTML)
TN1190: Describes the Macintosh Power Manager 2.0.
Apple Hardware Technical Notes 2000-08-14
Digital CD Audio (HTML) (日本語 HTML)
TN1187: Describes digital audio on the Macintosh.
Audio Technical Notes 2000-04-01
ATA Interface Modules (HTML)
TN1192: Describes how to write device drivers for ATA host bus controllers, ie. ATA Interface Module.
ATA Technical Notes 1999-12-01
Optimization Strategies for Mac OS X (HTML)
TN1174: Achieving the best possible performance in your applications.
Performance Technical Notes 1999-09-01
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
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
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
Open Transport STREAMS FAQ (HTML)
Deprecated - TN1117: Decribes writing STREAMS modules and drivers for use with Open Transport.
Networking Technical Notes 1997-12-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 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
Boot Blocks (HTML)
Deprecated - DV03: Warns that Boot Block form and function will change and describes undocumented Boot Blocks features.
Storage Technical Notes 1987-03-01
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.
AirPort/802.11, ATA, Audio, Bluetooth, Ethernet, Fibre Channel, FireWire, Networking, PCI and PC Card, Scanners, SCSI, Serial, Storage, USB Technical Q&As 2008-10-13
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
Programmatically causing restart, shutdown and/or logout (HTML) (日本語 HTML)
QA1134: Describes how to programmatically cause restart, shutdown, sleep or logout.
Apple Hardware Technical Q&As 2008-09-24
Retain Counts of io_object_t Objects in IOKit.framework (HTML) (日本語 HTML)
QA1195: Distinguishes between the retain counts of an I/O Kit kernel object and its io_object_t user space proxy.
Audio, FireWire, Human Interface Device & Force Feedback, Printing, Scanners, SCSI, Still Cameras, Storage, USB Technical Q&As 2008-09-24
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
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.
Apple Hardware, Open Firmware, Performance Technical Q&As 2008-09-16
Tips on USB driver matching for Mac OS X (HTML)
QA1076: Gives some tips on getting USB driver matching to work.
USB Technical Q&As 2008-08-14
Video capture with multiple IIDC cameras (HTML)
QA1365: Discusses factors which influence the number of IIDC cameras that can simultaniously be used for capture.
FireWire Technical Q&As 2008-08-08
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
ExpressCard Prevents System Sleep (HTML)
QA1517: Describes how some ExpressCard cards can prevent system sleep and how to fix the problem.
AirPort/802.11, ATA, Ethernet, Fibre Channel, Networking, PCI and PC Card, Serial, USB Technical Q&As 2007-02-28
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
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
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
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
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
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
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
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
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
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
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
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
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