TODO

* make srrctl useful for status tests on module: loaded, not, etc.

* Implement /proc/srripc/timers.

* Bug: a task that sleeps sometimes wakes up when I haven't woken it,
  and it hasn't been signalled. This shouldn't happen, but I've coded
  a work-around.  The linux-kernel boys aren't interested in
  commenting, so I don't know where to go with this. The only oops
  from the module that you should see in the message log will be about
  this.
  [SR - This does not happen in 2.2 kernels, only 2.0]

* We do not keep track of where a task is SEND blocked, so cannot
  produce this information when we look at /proc info. (actually we
  can, so implement this).
  [AST - implemented]
  
* Crash sometimes while a task is dying, either in the death
  notification or in the cleanup. Hasn't been seen in a while... may
  be fixed.
  [AST - found and fixed]

* Bug: validity of client message buffers is not being checked in pre
  2.2 series kernels. I could do this, or users could upgrade. Low
  priority.
  [Not planned]

* Could implement an "invariant" check on the task structures for
  debugging.  It would run through all the tasks and verify
  consistency of all relationships. This would help with future
  debugging.

* Testing, testing, testing, ... and some way of doing the test
  automatically.  Need a program that does strange things, and
  verifies that the module responds correctly.

----------------------------------------------------------------------------
Optimizations:

  	"Premature optimization is the root of all Evil." - Knuth

(I always liked that quote.)

* Single-copy s/r/r (as under QNX) might be possible if process pages
  could be locked down and accessed while servicing system calls from
  any process.
  * Though if you lock down any process that is send blocked, couldn't
    you run into the (admittedly unlikely) case that all of your RAM
    is locked down in Send()ing processes?
