	ident	"@(#)README	1.3	94/05/19 SMI"

DRIVER NAME:
	pio -- sample programmed I/O driver

ARCHITECTURES:
	This sample code is written for hypothetical hardware and will not 
	run on any platform.

DESCRIPTION OF DRIVER:
	This sample code is written for hypothetical hardware and will not 
	run on any platform.  The code can be compiled for x86 or SPARC, and
	demonstrates the commonalities and the differences between the two
	architectures with regard to device drivers.  x86-specific code
	is bracketed in "#ifdef i386" preprocessor statements; SPARC-specific
	code similarly is bracketed with "#ifdef sparc".

	The SPARC-specific driver is for a fictional SBus device that accepts 
	one character at a time and generates an interrupt when it is 
	ready for another.  

	The Intel-specific driver is for a fictional device that accepts one 
	character at a time and generates an interrupt when it is ready 
	for another.  The fictional device implements an 8-bit CSR 
	register and an 8-bit data register; they are addressed at the 
	address in the "ioaddr" property for the device, and are assumed 
	to be contiguous.

	The sample driver is not intended to be efficient or bulletproof; it is
	intended to show how to write a simple DDI/DKI-compliant driver.

CAVEATS AND CONSTRAINTS:
	This sample code is written for hypothetical hardware and will not 
	run on any platform.

DISCLAIMER:
	This driver is meant to illustrate the functionality of the 
	DDI/DKI. It is meant to be a skeleton that can be used as a basis
	for a real-world driver. This driver will not actually run. 

COMPILING/LOADING:
	Use the Makefile in the pio directory to compile the driver.
	The Makefile determines the architecture (x86 or sparc) of the 
	build machine and sets a preprocessor variable (i386 or sparc)
	accordingly. The object files are placed in an appropriate
	architecture-specific subdirectory of the pio directory.
