TODO
-----------------------

- the current test suite is too soft still.
  more and more rigid testing would be nice. some ideas needed.
  even running it against an Amiga takes less than 30 seconds currently.

- locking: implement at least AmigaOS Lock() semantics.
  currently EXCLUSIVE_LOCK is granted unconditionally; no conflict
  checking is done against other held locks, either locally within
  one client or across clients. a proper implementation needs:
  - server-side lock table (path, shared/exclusive, owner)
  - OP_LOCK / OP_UNLOCK protocol operations
  - amiga client: check local lock table before granting, then
    send OP_LOCK to server; refuse conflicting Lock() with
    ERROR_OBJECT_IN_USE as a real handler would
  - POSIX client: map to flock() or leave as no-op (less critical
    since POSIX programs don't rely on advisory locks for safety)
  - server must release all locks held by a connection on disconnect

- configurable read-ahead size in amiga-client.c: RA_SIZE and READDIR_MAX
  are both fixed at 32 KB. on very small machines these two buffers
  together (64 KB) are a significant slice of RAM. a BUFFER <n>
  argument to "fizz mount" (or a compile-time option) would help.
  note: RA_SIZE also determines the fetch unit -- smaller means more
  round-trips on sequential reads.
