User Level RAM Disk Device Driver
==================================
A RAM disk driver is the simplest block device driver as the only
operation involved is copying bytes across the memory. A portion 
of the memory allocated by the driver is treated as a block device 
and operations are performed on it. 

The user level RAM disk driver built using the userdev framework 
has dummy functions for most of the driver interface functions, 
that is they just return success, except for ioctl and request functions.
The other functions defined are open, close, check_media_change, 
revalidate, and message functions.

The ioctl function handles HDIO\_GETGEO and BLKGETSIZE ioctl commands
to return a fake disk geometry and device size respectively. These are
mandatory ioctls for any block device. The request function translates 
the sector number present in the block device I/O request into a memory 
address from which the required number of bytes are copied to the transfer
address given in the request or vice-versa depending on whether the request
is for reading or writing data.

The main function defines the userdev operations, ioctls accepted and the
block device configuration information and provides it to the Userdev
framework via the userdev_attach function. The driver defines a RAM disk
of size 2MB with a block size of 1024 bytes.

Again the make utility serves for building the driver. The Userdev library
is used for building the driver.

The contents of the directory:
=============================
- Makefile      :make file for building the RAM disk driver
- README        :this file 
- ramdisk	:The binary for the user level RAM disk driver.
- ramdisk.c	:The source file for the user level RAM disk driver.
