freebsd-nq/sys/compat/ndis
Bill Paul 9ec5585585 Add a whole bunch of new stuff to make the driver for the AMD Am1771/Am1772
802.11b chipset work. This chip is present on the SMC2602W version 3
NIC, which is what was used for testing. This driver creates kernel
threads (12 of them!) for various purposes, and required the following
routines:

PsCreateSystemThread()
PsTerminateSystemThread()
KeInitializeEvent()
KeSetEvent()
KeResetEvent()
KeInitializeMutex()
KeReleaseMutex()
KeWaitForSingleObject()
KeWaitForMultipleObjects()
IoGetDeviceProperty()

and several more. Also, this driver abuses the fact that NDIS events
and timers are actually Windows events and timers, and uses NDIS events
with KeWaitForSingleObject(). The NDIS event routines have been rewritten
to interface with the ntoskrnl module. Many routines with incorrect
prototypes have been cleaned up.

Also, this driver puts jobs on the NDIS taskqueue (via NdisScheduleWorkItem())
which block on events, and this interferes with the operation of
NdisMAllocateSharedMemoryAsync(), which was also being put on the
NDIS taskqueue. To avoid the deadlock, NdisMAllocateSharedMemoryAsync()
is now performed in the NDIS SWI thread instead.

There's still room for some cleanups here, and I really should implement
KeInitializeTimer() and friends.
2004-02-07 06:44:13 +00:00
..
cfg_var.h Deal with the duplicate sysctl leaf problem. A .inf file may contain 2003-12-18 03:51:21 +00:00
hal_var.h The definition for __stdcall logically belongs in pe_var.h, but 2004-01-15 21:31:49 +00:00
kern_ndis.c Add a whole bunch of new stuff to make the driver for the AMD Am1771/Am1772 2004-02-07 06:44:13 +00:00
ndis_var.h Add a whole bunch of new stuff to make the driver for the AMD Am1771/Am1772 2004-02-07 06:44:13 +00:00
ntoskrnl_var.h Add a whole bunch of new stuff to make the driver for the AMD Am1771/Am1772 2004-02-07 06:44:13 +00:00
pe_var.h The definition for __stdcall logically belongs in pe_var.h, but 2004-01-15 21:31:49 +00:00
resource_var.h
subr_hal.c Add a whole bunch of new stuff to make the driver for the AMD Am1771/Am1772 2004-02-07 06:44:13 +00:00
subr_ndis.c Add a whole bunch of new stuff to make the driver for the AMD Am1771/Am1772 2004-02-07 06:44:13 +00:00
subr_ntoskrnl.c Add a whole bunch of new stuff to make the driver for the AMD Am1771/Am1772 2004-02-07 06:44:13 +00:00
subr_pe.c AMD64 has a single MS-Win calling convention, so provide an empty __stdcall. 2004-01-13 22:49:45 +00:00