If __HAVE_CPU_TIMESTAMP is defined, <machine/rnd.h> exists and defines
two functions:
1) u_int32_t cpu_timestamp(void);
returns the 32 low order bits of a reasonably high frequency counter.
2) int cpu_havetimestamp(void);
returns non-zero if cpu_timestamp() actually works.
The timestamp counter should run at a frequency greater than 1 MHz
(otherwise, microtime would be sufficient); other than that, the exact
frequency and origin of the counter are unspecified.
* replace `flush by line' function with a `flush by page' funtion, which
also takes an argument to indicate that write-back caches need not
validate its backing memory.
* use this function when allocating page table memory to flush the cache
before mapping it into kernel virtual space.
* also use it in pmap_{zero,copy}_page(), so we can safely use non-cacheable
access in there.
and scsipi_device respectively, with size reduction of ncr53c9x_softc.
Specifying NULL instructs the driver to use default adapter and default
device codes. Every target port has ncr53c9x_attach(sc, NULL, NULL) anyway.
on LP64 systems (and probably the SPARC) since the __cmsg_alignbytes()
changes went in.
- Change file descriptor passing to use CMSG_DATA(), not (cm + 1). This
pretty much has to be done in order to make it work properly on LP64,
and considering that it's been broken this long...
- Use CMSG_SPACE() to determine the mbuf length needed for a given
control message, and CMSG_LEN() to stash in the cmsg_len member.
- Use CMSG_SPACE() and CMSG_DATA() properly; don't define structures
to hold messages, which will not have the correct alignment after
the cmsg header.
the listen socket properly. This caused spurious rpcbind(8)
failures.
- Don't define a "credmsg" structure. Instead, dynamically
allocate a buffer of the correct size of the message with
CMSG_SPACE() and free it when we're done. This gets the
size of the buffer right on LP64 platforms, which has padding
for alignment thrown in.
- Check for non-present or truncated cred messages when recvmsg(2)
returns.