Jump To:
Leopard Reference Library: Hardware & Drivers
USB is a cross-platform peripheral standard that offers many benefits, such as expandability, autoconfiguration, hot plugging, and good performance. Typical USB devices include keyboards, mice, joysticks, game pads, and other low-cost devices. Developers can use I/O Kit APIs to create both in-kernel and application-level drivers for USB devices and interfaces.

Document Descriptions
On Off
Display

Sorted by
Title
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.
Technical Q&As 2008-10-13
Building Customized User Client Drivers for USB Devices (HTML)
Learn how to write the setup code for card readers, bill validators, and other devices.
Articles 2006-06-26
Building Universal I/O Kit Drivers (HTML)
TN2163: How to build a universal I/O Kit kernel driver while avoiding common pitfalls.
Technical Notes 2008-08-18
CCL Modem Scripting Guide (HTML) (PDF)
Guides 2007-06-28
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.
Release Notes 2007-10-31
Checkout Lets You 'Get a Mac, Start a Store': Madebysofa Does It with Python and Cocoa (HTML)
Success story on how Mac-only Checkout was built using Python and Cocoa.
Articles 2007-07-10
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
Technical Q&As 2006-02-28
CustomMediaIcons (HTML) (DMG) (ZIP)
Providing custom media icons for storage
Sample Code 2007-07-10
The dreaded "incompatible flag -framework" error (HTML)
QA1096: Explains how to eliminate the incompatible flag -framework error in Project Builder.
Technical Q&As 2001-12-05
ExpressCard Prevents System Sleep (HTML)
QA1517: Describes how some ExpressCard cards can prevent system sleep and how to fix the problem.
Technical Q&As 2007-02-28
Generating a Non-Maskable Interrupt (NMI) (HTML) (日本語 HTML)
QA1264: Explains how to generate a non-maskable interrupt (NMI) on modern Macintosh systems.
Technical Q&As 2008-10-13
HID Manager Event Data Underruns (HTML)
QA1038: Explains how to correctly handle HID Manager event queue data underruns.
Technical Q&As 2001-06-13
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.
Reference 2009-03-04
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.
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.
Technical Q&As 2004-08-30
IODeviceTree and the I/O Registry (HTML) (日本語 HTML)
QA1120: Describes the IODeviceTree plane in the Mac OS X I/O Registry.
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.
Technical Q&As 2002-01-15
Issues with boot time KEXT loading (HTML) (日本語 HTML)
QA1087: Explains how to solve problems with loading KEXTs at boot time.
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.
Reference 2009-01-06
Making sense of IOKit error codes (HTML) (日本語 HTML)
QA1075: Explains how to interpret I/O Kit error codes.
Technical Q&As 2002-02-07
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
Technical Q&As 2006-02-22
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.
Technical Q&As 2002-02-13
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.
Technical Q&As 2008-09-24
SampleUSBAudioPlugin (HTML) (DMG) (ZIP)
USB audio plugin that performs a lowpass filtering operation on audio streamed through an audio USB Device.
Sample Code 2005-03-07
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 .
Technical Q&As 2003-08-21
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.
Technical Q&As 2005-05-10
Tips on USB driver matching for Mac OS X (HTML)
QA1076: Gives some tips on getting USB driver matching to work.
Technical Q&As 2008-08-14
Understanding and Debugging Kernel Panics (HTML) (日本語 HTML)
TN2063: Addresses kernel panics: what they are and how to debug the code that caused the panic.
Technical Notes 2008-08-14
Universal Serial Bus Developer Note (HTML)
Provides an overview of Universal Serial Bus (USB) and describes support for it on Mac computers.
Guides 2008-04-28
USB Device Interface Guide (HTML) (PDF)
Provides background information and sample code for developing applications to communicate with or control USB devices and interfaces.
Guides 2007-09-04
USBPrivateDataSample (HTML) (DMG) (ZIP)
Demonstrates notifications when a USB device is hotplugged and associating arbitrary data with each device.
Sample Code 2006-10-16
User-Mode USB Device Arbitration (HTML)
Information about using USB device arbitration, available in Mac OS X version 10.1 and later.
Guides 2002-02-06
VendorSpecificType00 (HTML) (DMG) (ZIP)
Demonstrates how to access vendor-specific storage device functionality using a simple interface from user space code.
Sample Code 2006-10-02
What are configuration variables in Open Firmware? (HTML) (日本語 HTML)
HW38: Defines the configuration variables in Open Firmware.
Technical Q&As 1999-02-15
What are snag keys in Open Firmware? (HTML) (日本語 HTML)
HW35: Explains Open Firmware snag keys, including examples of their function.
Technical Q&As 1999-02-15