``utimer'' is a small kernel module written for a SPARCstation 1.
It permits to read the spare counter14 chip providing timer-values
with granularity of ONE MICROSECOND. It also serves as an example
to those who wish to write own loadable kernel modules.

Statistical tests showed that the standard-deviation of reading the
counter using utimer is around 5 microsecs only, even
thought it is completely written in C (no assembly hacks).

Furthermore, it provides some useful functions beside reading/writing
counter14:

 - Fast renicing of a process
 - Turn swapping of a process on and off

Installation
============
This module was written and tested only for SPARCstations1.

1. Compile utimer: just type make
2. become root on your SPARCstation1 and start ./load
   ./load executes modload to dynamically link utimer.o with your
   kernel. utimer.exec is also invoked and generates utimer.h

   ATTENTION: utimer.h is generated every time you load your utimer.
	      utimer.h contains a variable parameter which is the 
	      system call number associated to the utimer. This
	      parameter may be different for everytime you load utimer.

3. make test, then run utest. You will find an explanation of the
   utimer functions in utimer.h


Another small note
==================

This software is provided `as it is', no warranty.

You are free to further distribute this module... 
BUT: DON'T COMMERCIALIZE!

Author: (c) Silvano Maffeis, University of Zurich, Switzerland
maffeis@ifi.unizh.ch

I got some useful hints by analyzing a similar module
written by Mark Rawling (Mark.Rawling@mel.dit.csiro.au)

Restriction
===========

The utimer code works fast, but is NOT REENTRANT!
Only one process at a time may use utimer! 

