Introduction to FireWire Device Interface Guide

The I/O Kit device interface mechanism provides applications with a means of communicating with hardware from outside the kernel. To communicate with FireWire devices, OS X provides several device interfaces that are specific to different protocols and different types of communication. This document describes the range of device interfaces available in OS X that your application can use to control a FireWire device or unit.

Who Should Read This Document?

You should read this document if you are developing an application that needs to communicate with or control a FireWire device. Although this document describes how OS X supports FireWire devices in the kernel, it does not describe how to develop in-kernel drivers for them.

Before you read this document, you should be familiar with the I/O Kit and the device interface mechanism it provides. To learn more about the I/O Kit in general and device interfaces in particular, see the documents listed in See Also.

A detailed description of the FireWire specification is beyond the scope of this document—for more information see the 1394 Trade Association website at

Organization of This Document

This document contains the following chapters:

The chapter Using the FireWire Device Interface Libraries uses projects in the FireWire SDK as a code base. The latest version of the SDK is available for download at The complete SDK contains a large number of samples covering many different kinds of hardware access from applications in a variety of programming languages (Objective-C using the Cocoa framework, C, and C++). In the interests of brevity, this document includes only fragments of some of the projects to illustrate the concepts it describes. Refer to the SDK for the complete versions of the code fragments used, in addition to other projects not described here.

See Also

Apple developer documentation includes several documents that cover device access and the I/O Kit. Some of these documents are listed below.

In addition to these documents, Apple maintains a website devoted to FireWire on OS X, with links to the SDK and related topics, at

Apple provides a FireWire mailing list on which you can post questions and discuss issues of interest to the FireWire community. You can also search the archives for helpful information. You can subscribe to the FireWire mailing list at

If you’re ready to create a universal binary version of your FireWire device-access application to run in an Intel-based Macintosh, see Universal Binary Programming Guidelines, Second Edition. The Universal Binary Programming Guidelines describes the differences betweeen the Intel and PowerPC architectures and provides tips for developing a universal binary.