cvs commit: src/sys/emulation Makefile src/sys/emulation/ndis Makefile cfg_var.h hal_var.h kern_ndis.c ndis_var.h ntoskrnl_var.h pe_var.h regcall.h resource_var.h subr_hal.c subr_ndis.c subr_ntoskrnl.c subr_pe.c src/sys/dev/netif/ndis Makefile ...
Matthew Dillon
dillon at crater.dragonflybsd.org
Thu Jul 29 13:53:39 PDT 2004
dillon 2004/07/29 13:51:36 PDT
DragonFly src repository
Modified files:
sys/emulation Makefile
Added files:
sys/emulation/ndis Makefile cfg_var.h hal_var.h kern_ndis.c
ndis_var.h ntoskrnl_var.h pe_var.h
regcall.h resource_var.h subr_hal.c
subr_ndis.c subr_ntoskrnl.c subr_pe.c
sys/dev/netif/ndis Makefile if_ndis.c if_ndis_pccard.c
if_ndis_pci.c if_ndisvar.h
Log:
Bring in NDIS emulation support from FreeBSD-5. NDIS is a Windows device
driver API emulator. The FreeBSD work was done by Bill Paul
<wpaul at xxxxxxxxxxxxx>, who has again proven himself to be a more insane
hacker then the rest of us.
Bring in IF_NDIS from FreeBSD-5.
Make a number of additional changes to the driver. Windows API calls are not
compatible with standard gnu C. The FreeBSD-5 NDIS code properly uses
__attribute__((__stdcall__)) to deal with the target-pops-argument-stack
issue but had terrible __asm hacks to deal with regargs. Consolidate the
regargs support into a new header file, regcall.h, and use
__attribute__((__regparm__(3))) to formalize argument passing in registers.
Note that __regparm__(3) places three arguments in registers in the
following order: %eax, %edx, %ecx, but Windoz reg calls place registered
arguments in %ecx and %edx (and additional arguments go on the stack).
regcall.h provides macros to do the proper (I hope) translations.
DragonFly's kernel threads do not have proc structures. Convert up all the
proc references to thread references.
Convert mutex ops into token ops.
Fix a number of prototypes, including one that was causing an internal
compiler error in gcc2.
Testing: Doesn't crash with Sony-TR3A Intel Centrino 2200 based wireless
chipset, is able to DHCP up the IP address, but cannot yet ping due
to an issue in the ARP code somewhere.
Taken from: FreeBSD-5 / Bill Paul
Revision Changes Path
1.2 +1 -1 src/sys/emulation/Makefile
http://www.dragonflybsd.org/cvsweb/src/sys/emulation/Makefile.diff?r1=1.1&r2=1.2&f=u
More information about the Commits
mailing list