This is a followup to PR/14558.
- itimerfix(9) limited the number of seconds to 100M, before I changed
it to 1000M for PR/14558.
- nanosleep(2) documents a limit of 1000M seconds.
- setitimer(2), select(2), and other library functions that indirectly
use setitimer(2) for example alarm(3) don't specify a limit.
So it only seems appropriate that any positive number of seconds in
struct timeval should be accepted by any code that uses itimerfix(9)
directly, except nanosleep(2) which should check for 1000M seconds
manually. This changes makes the manual pages of select(2), nanosleep(2),
setitimer(2), and alarm(3) consistent with the code.
the platform supplies a clkread function that does something other than
return 0 (which is the default unless overridden by the platorm code).
Supply such a function for the IP22; even if it isn't perfect, it goes
a long way to making ntp usable.
While I'm at it, move the ticks-per-hz variable out of the struct platform
since it's really private to the per-platform interrupt/clock code.
XXX: No clkread function supplied for IP32, since it has other problems --
like a hardcoded ticks-per-hz, but the same code as on the IP22 could be
used.
* Define a CPWAIT macro as described in the i80200 manual and use it,
rather than replicating the code in a few places.
* The i80200 manual notes that the line-allocate operation used to
do global D$ clean does not actually perform a load/fill request
from external memory, and thus does not actually place valid data
in the cache lines allocated. Require that machine-dependent code
allocate an appropriately-sized chunk of unmapped VA space for the
global clean operation in order to avoid unpredictable results.
* The i80200 manual notes that the VA range for the Mini-Data global
clean (which *must* be mapped to physical memory) must be reserved
exclusively for cleaning the Mini-Data cache. Require that machine-
dependent code allocate an appropriately-sized chunk of memory for
this purpose.
pages, we use the standard (4K) page size as PAGE_SIZE. Make the
PAGE_SIZE related variables compile-time constants that reflect this.
Results in a bit over 2K worth of .text savings, and visibly better
code in the places that use PAGE_SIZE, etc.
Nereid is the board of ethernet/USB/memory for X68k
developed by X-PowerStation, a japanese X68k circle.
See http://xps.jp/ but only written in japanese.