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