cvs commit: src/sys/compat/ndis kern_ndis.c ntoskrnl_var.h subr_ndis.c src/sys/dev/if_ndis if_ndis.c

Bill Paul wpaul at FreeBSD.org
Mon Dec 22 20:08:24 PST 2003


wpaul       2003/12/22 20:08:23 PST

  FreeBSD src repository

  Modified files:
    sys/compat/ndis      kern_ndis.c ntoskrnl_var.h subr_ndis.c 
    sys/dev/if_ndis      if_ndis.c 
  Log:
  Re-do the handling of ndis_buffers. The NDIS_BUFFER structure is
  supposed to be opaque to the driver, however it is exposed through
  several macros which expect certain behavior. In my original
  implementation, I used the mappedsystemva member of the structure
  to hold a pointer to the buffer and bytecount to hold the length.
  It turns out you must use the startva pointer to point to the
  page containing the start of the buffer and set byteoffset to
  the offset within the page where the buffer starts. So, for a buffer
  with address 'baseva,' startva is baseva & ~(PAGE_SIZE -1) and
  byteoffset is baseva & (PAGE_SIZE -1). We have to maintain this
  convention everywhere that ndis_buffers are used.
  
  Fortunately, Microsoft defines some macros for initializing and
  manipulating NDIS_BUFFER structures in ntddk.h. I adapted some
  of them for use here and used them where appropriate.
  
  This fixes the discrepancy I observed between how RX'ed packet sizes
  were being reported in the Broadcom wireless driver and the sample
  ethernet drivers that I've tested. This should also help the
  Intel Centrino wireless driver work.
  
  Also try to properly initialize the 802.11 BSS and IBSS channels.
  (Sadly, the channel value is meaningless since there's no way
  in the existing NDIS API to get/set the channel, but this should
  take care of any 'invalid channel (NULL)' messages printed on
  the console.
  
  Revision  Changes    Path
  1.8       +5 -9      src/sys/compat/ndis/kern_ndis.c
  1.4       +14 -0     src/sys/compat/ndis/ntoskrnl_var.h
  1.11      +15 -9     src/sys/compat/ndis/subr_ndis.c
  1.7       +11 -4     src/sys/dev/if_ndis/if_ndis.c


More information about the cvs-src mailing list