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

Bill Paul wpaul at FreeBSD.org
Sat Jan 3 05:20:40 PST 2004


wpaul       2004/01/03 05:20:30 PST

  FreeBSD src repository

  Modified files:
    sys/compat/ndis      kern_ndis.c subr_ndis.c 
    sys/dev/if_ndis      if_ndis.c 
  Log:
  In if_ndis.c:ndis_attach(), temporarily set the IFF_UP flag while
  calling the haltfunc. If an interrupt is triggered by the init
  or halt func, the IFF_UP flag must be set in order for us to be able
  to service it.
  
  In kern_ndis.c: implement a handler for NdisMSendResourcesAvailable()
  (currently does nothing since we don't really need it).
  
  In subr_ndis.c:
          - Correct ndis_init_string() and ndis_unicode_to_ansi(),
            which were both horribly broken.
          - Implement NdisImmediateReadPciSlotInformation() and
            NdisImmediateWritePciSlotInformation().
          - Implement NdisBufferLength().
          - Work around my first confirmed NDIS driver bug.
            The SMC 9462 gigE driver (natsemi 83820-based copper)
            incorrectly creates a spinlock in its DriverEntry()
            routine and then destroys it in its MiniportHalt()
            handler. This is wrong: spinlocks should be created
            in MiniportInit(). In a Windows environment, this is
            often not a problem because DriverEntry()/MiniportInit()
            are called once when the system boots and MiniportHalt()
            or the shutdown handler is called when the system halts.
  
  With this stuff in place, this driver now seems to work:
  
  ndis0: <SMC EZ Card 1000> port 0xe000-0xe0ff mem 0xda000000-0xda000fff irq 10 at device 9.0 on pci0
  ndis0: assign PCI resources...
  ndis_open_file("FLASH9.hex", 18446744073709551615)
  ndis0: Ethernet address: 00:04:e2:0e:d3:f0
  
  Revision  Changes    Path
  1.19      +9 -0      src/sys/compat/ndis/kern_ndis.c
  1.22      +48 -12    src/sys/compat/ndis/subr_ndis.c
  1.20      +3 -1      src/sys/dev/if_ndis/if_ndis.c


More information about the cvs-all mailing list