Jump To:
Leopard Reference Library: Hardware & Drivers
Mass storage devices run the gamut from the fastest read/write peripheral disk drives to sequential-access tape drives. Mac OS X provides a layered mass storage driver stack that has built-in support for common industry-standard devices. Developers can use the BSD interface and I/O Kit APIs to access storage devices and their media at different layers of the stack.

View all Storage Reference Library.
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
AudioCDSample (HTML) (DMG) (ZIP)
Demonstrates how to discover audio CDs and access the TOC information presented by the CD-DA filesystem.
Sample Code 2005-10-04
Boot Blocks (HTML)
Deprecated - DV03: Warns that Boot Block form and function will change and describes undocumented Boot Blocks features.
Technical Notes 1987-03-01
Booting after invoking the Open Firmware user interface (HTML) (日本語 HTML)
HW48: Tells how to boot a system after entering the Open Firmware user interface.
Technical Q&As 1999-02-15
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
CD-ROM Detection (HTML) (DMG) (ZIP)
Shows how to determine whether a drive is a CD-ROM drive.
Sample Code 2003-01-14
CD-ROM Driver Calls (HTML)
Deprecated - DV22: Discusses public interface to Apple CD-ROM driver and supersedes information in AppleCD SC Developer's Guide.
Technical Notes 2000-08-14
CDROMSample (HTML) (DMG) (ZIP)
Demonstrates how to find CD-ROM media and read sectors from that media on Mac OS X.
Sample Code 2006-01-31
CustomMediaIcons (HTML) (DMG) (ZIP)
Providing custom media icons for storage
Sample Code 2007-07-10
Detecting a CD-ROM (HTML) (日本語 HTML)
DV18: Demonstrates CD-ROM drive detection.
Technical Q&As 1997-01-31
Device File Access Guide for Storage Devices (HTML) (PDF)
Guidelines for using I/O Kit and POSIX functions to develop applications that communicate with storage devices.
Guides 2007-03-06
Disk Arbitration Framework Reference (HTML)
Describes Disc Arbitration API, which includes information on mount/unmount notification and dissent.
Reference 2008-04-08
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
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
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.
Technical Q&As 1995-07-01
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
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
Kernel Framework Reference (HTML)
Describes the APIs and classes (including I/O Kit families) that support kernel-resident device drivers.
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.
Technical Q&As 2000-03-20
Mass Storage Device Driver Programming Guide (HTML) (PDF)
Background and task information about developing kernel-resident drivers for mass storage devices.
Guides 2007-04-03
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
Technical Notes 2007-03-23
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
SampleFilterScheme (HTML) (DMG) (ZIP)
Demonstrates a simple filter scheme which passes all operations through to its provider unchanged.
Sample Code 2006-01-03
A SCSI little secret (HTML)
HW81: Details what to expect when accessing the motherboard SCSI bus on the Blue & White G3.
Technical Q&As 1999-12-20
SCSIHBAEmulator (HTML) (DMG) (ZIP)
Demonstration of how to implement a virtual parallel tasking SCSI host bus adapter (HBA)
Sample Code 2007-02-20
SCSIOldAndNew (HTML) (DMG) (ZIP)
Demonstrates a backward-compatible technique for communicating with SCSI parallel devices on Mac OS X.
Sample Code 2006-12-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
Secrets of the GPT (HTML)
TN2166: Describes the new partition map format used by Intel-based Macintosh computers.
Technical Notes 2006-11-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.
Technical Q&As 2005-05-10
SimpleUserClient (HTML) (DMG) (ZIP)
Shows how to create a user client for an I/O Kit kernel driver.
Sample Code 2008-08-27
SMARTQuery (HTML) (DMG) (ZIP)
Demonstration of how to access and use S.M.A.R.T. disk monitoring functionality
Sample Code 2007-05-30
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
USBPrivateDataSample (HTML) (DMG) (ZIP)
Demonstrates notifications when a USB device is hotplugged and associating arbitrary data with each device.
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.
Sample Code 2006-10-02
VolumeToBSDNode (HTML) (DMG) (ZIP)
Shows how to iterate across all mounted volumes and retrieve their BSD node names.
Sample Code 2006-10-16
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
Which Machines Support Driver Services Library and the MP Nanokernel? (HTML) (日本語 HTML)
HW63: Lists the systems that do and don't support the Driver Services Library and the MP Nanokernel.
Technical Q&As 1999-07-12
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.
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.
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.
Guides 2005-01-03