cvs commit: src/sys/compat/ndis kern_ndis.c subr_ndis.c
src/sys/dev/if_ndis if_ndis.c if_ndisvar.h
Bill Paul
wpaul at FreeBSD.org
Sun Jan 4 13:22:27 PST 2004
wpaul 2004/01/04 13:22:25 PST
FreeBSD src repository
Modified files:
sys/compat/ndis kern_ndis.c subr_ndis.c
sys/dev/if_ndis if_ndis.c if_ndisvar.h
Log:
Modify if_ndis.c so that the MiniportISR function runs in ndis_intr()
and MiniportHandleInterrupt() is fired off later via a task queue in
ndis_intrtask(). This more accurately follows the NDIS interrupt handling
model, where the ISR does a minimal amount of work in interrupt context
and the handler is defered and run at a lower priority.
Create a separate ndis_intrmtx mutex just for the guarding the ISR.
Modify NdisSynchronizeWithInterrupt() to aquire the ndis_intrmtx
mutex before invoking the synchronized procedure. (The purpose of
this function is to provide mutual exclusion for code that shares
variables with the ISR.)
Modify NdisMRegisterInterrupt() to save a pointer to the miniport
block in the ndis_miniport_interrupt structure so that
NdisSynchronizeWithInterrupt() can grab it later and derive
ndis_intrmtx from it.
Revision Changes Path
1.21 +1 -0 src/sys/compat/ndis/kern_ndis.c
1.25 +9 -2 src/sys/compat/ndis/subr_ndis.c
1.22 +29 -4 src/sys/dev/if_ndis/if_ndis.c
1.5 +2 -0 src/sys/dev/if_ndis/if_ndisvar.h
More information about the cvs-all
mailing list