- Add fd_set_exclose() to encapsulate uses of FIO{,N}CLEX, O_CLOEXEC, F{G,S}ETFD
- Add a pipe1() function to allow passing flags to the fd's that pipe(2)
opens to ease implementation of linux pipe2(2)
- Factor out fp handling code from open(2) and fhopen(2)
Problem was reported by isaki@.
On X680x0 (and most other machines other than ISA FDC),
the ready line from FDD is connected to FDC and fdc driver can
be notified of the ready state after fd_set_motor() by interrupts.
In this case no need to use callout(9) to wait the FDD motor stabilized,
and the callout(9) method used in ISA fdc(4) driver rather caused
infinite unhandled interrupts since callout(9) was no longer invoked
during interrupt storm after vmlocking2 merge, I guess.
Should be pulled up to netbsd-5.
ordering issues with "make all". It may be necessary to remove
the OBJDIR for external/mit/xorg/server/xorg-server/hw/xfree86
if your update build fails, as the "Xorg" entry there is now a
directory.
mlelstv pointed out that we sometimes may use checksums on loopback
interfaces. Make the test consistent with the code path selecting
the checksum operation before invoking fragmentation.
Add definitions for registers related to video modes, and to DDC. Rename
other registers to be more descriptive.
Add i2c bus routines to read the EDID data via DDC.
Add routines to calculate, and to set, the video mode.
Note, that interlaced and stereo video modes are not supported.
Thanks to Michael Lorenz and Jared McNeill for advice and encouragement,
and to Martin Husemann for testing.
order of preference.
The preferred mode is placed first. If there is no preferred mode, then
the first mode with highest resolution is placed first. Other modes are
then sorted on difference from the first mode by refresh rate, aspect
ratio, then size.
When parsing the established and the detailed timings, check to see if this
mode already exists in our mode list. If the mode exists when parsing
established timings, then do nothing (we already have this exact mode). If
the mode exists when parsing detailed timings, then replace our timings with
the timings from the monitor.