Host IO Overview

Host IO is a socket-like communications interface to the host PC.

Host IO uses dedicated channels provided by the Host Bridge hardware. It is ideal for implementing "side band" development utilities that must not interfere with I/O interfaces that are reserved for game-related traffic (such as a network or USB).

Channel Management and Mapping

Host IO dynamically assigns channels in the order in which they are requested. The channels are identified using a unique string name so that users do not have to hard-code channel and port numbers in their Host IO applications. Multiple users of Host IO can coexist without concern for channel and port collisions.

In general, the procedure for establishing a Host IO connection looks like this:

  1. A thread running on Cafe acquires a channel and provides a unique name by invoking HIOOpen.
  2. The Host Bridge driver on the PC is informed of the channel and name association. The Host Bridge driver then maps a port to that channel.
  3. A user application on the host PC opens a socket on port 6003. This is a special port used by the Host Bridge driver; when an application opens this port, the Host Bridge driver broadcasts a list of currently registered channel names and their associated ports.
  4. The PC application can then search for the appropriately named port and begin communicating with its counterpart on the Cafe system.

Mapping Cafe and PC Applications via Host IO

Limitations and Caveats

File IO

The Host IO facility is not recommended for implementing file I/O. While it is possible, performance will be limited due to the low-latency/low-bandwidth design specification of the host IO interface.

Instead, see the Cafe File System Abstraction (FSA). FSA supports a Host File IO device that provides native read and write access to the host PC's file system. This device uses the high-speed block interface of the Host Bridge hardware. This block interface is tuned specifically for file IO, and as such has higher bandwidth.

See Also

Host IO Demos

Revision History

2013/05/08 Automated cleanup pass.
2011/02/21 Initial version.