User Level Parallel Port Line Printer Driver
============================================
The parallel port line printer driver is constructed using the Userdev
library by borrowing the code from the kernel line printer driver.
The kernel line printer driver is uses the parport module to talk to the
parallel port. Similarly the user level printer driver uses the parport 
library which is the migrated version of the kernel parport module.

The changes that have been made to the kernel driver code are:

1) The driver interface functions have been changed to the userdev operations.
   Correspondingly, instead of registring a driver with the kernel we have
   attaching with the kernel userdev driver.

2) The init module function that is the kernel module entry point has been
   changed to the main function which forms the entry point for a user process.
   The main function does the driver initialisations and calls the userdev_start
   library function to begin accepting requests. 

3) The support for interrupts has been provided by the Userdev framework. Therefore
   the interrupt handling functions are changed from the kernel ones to those
   of the Userdev library.

4) Since the write method can potentially block it is executed on a separate
   thread, while others run on the main thread itself.

5) Inorder to receive signal messages from the Userdev framework the message 
   function is implemented that registers the arrival of a signal in a signal
   list. the list is looked upon in order to check if the current request has
   to be aborted.

The rest of the code is the same as it is in the kernel driver.
Again the make utility serves for building the driver. The driver uses the
usrdriv, parport and pthread libraries.

The contents of the directory:
=============================
- Makefile      :make file for building the printer driver
- README        :this file
- lpproc		:The user level line printer driver binary
- lpproc.h	:The header file containing the data structure definitions and register values
- lpproc.c	:The source file containing the implementation of the driver
