Unravel some of the knots that caused linux_file64.c to be compiled twice
for an amd64 kernel (once for linux and once for linux32) with different
parts being skipped each time.
correct alignment/padding rules.
Removed the now-unnecessary #pragma packed for amd64.
Should fix the alignment of 'struct netbsd32_kevent' on non-amd64.
USB2.0/IEEE1394 card:
fwohci0 at pci0 dev 3 function 3: VIA Technologies VT6306 IEEE 1394 Host Controller (rev. 0x46)
fwohci0: interrupting at crime interrupt 10
fwohci0: OHCI version 1.0 (ROM=1)
fwohci0: No. of Isochronous channels is 4.
fwohci0: EUI64 00:40:26:01:08:01:57:07
fwohci0: Phy 1394a available S400, 3 ports.
fwohci0: Link S400, max_rec 2048 bytes.
ieee1394if0 at fwohci0: IEEE1394 bus
fwip0 at ieee1394if0: IP over IEEE1394
fwohci0: Initiate bus reset
fwohci0: BUS reset
fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
ieee1394if0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
ieee1394if0: bus manager 0 (me)
... and:
ieee1394if0: 2 nodes, maxhop <= 1, cable IRM = 1 (me)
ieee1394if0: bus manager 1 (me)
ieee1394if0: New S400 device ID:0001a35000317061
sbp0 at ieee1394if0: SBP-2/SCSI over IEEE1394
scsibus2 at sbp0: 1 target, 0 luns per target
sd1 at scsibus2 target 0 lun 0: <AL-COMBO, , > disk fixed
sd1: fabricating a geometry
sd1: 38154 MB, 38154 cyl, 64 head, 32 sec, 512 bytes/sect x 78140160 sectors
sd1: fabricating a geometry
sd1: no disk label
There are a few "mace: overrun at ff2001" errors during access, but they
appear harmless.
establish the interrupt handler before enabling interrupts, so that
we will not get an interrupt storm that keeps the system from making
any progress. (We may have only been susceptible to the storm if
cbb(4) shared an interrupt with, say, uhci(4)). Also, finish
setting up the pcic_handle before enabling interrupts, so that the
Pcic_read() call in pccbbintr() will not jump to address 0!
Now, pccbb_intrinit() encapsulates all of the interrupt initialization.
Explicitly enable card-status changed (CSTSCHG) events.
Paranoia: ensure that writes to the socket event register (interrupt
acknowledgements) are flushed to the h/w by reading the register
(gross). We really need something like
bus_space_sync(BUS_SPACE_BARRIER_WRITE_BEFORE_INTERRUPT).
More paranoia: in pccbbintr(), if the device is inactive, get out.
the elements rather than Integer.Value, which sometimes doesn't
match and gives unexpected results on the error path.
This fixes the kmem_poison_check on DEBUG kernels (finally). Patch
by Fukumoto Atsushi. Thanks!
been in in our tree, and certainly does not work on any version of FreeBSD
now. Run through unifdef -D__NetBSD__ -U__FreeBSD__ yielding a small
reduction of size and a dramatic improvement in readability.
No, this does not yield any meaningful decrease in patchability (unlike
mechanical changes that touch live source lines) -- try it and see.