cvs commit: src/sys/compat/ndis subr_ntoskrnl.c
Bill Paul
wpaul at FreeBSD.org
Sun May 8 02:16:34 PDT 2005
wpaul 2005-05-08 09:16:34 UTC
FreeBSD src repository
Modified files:
sys/compat/ndis subr_ntoskrnl.c
Log:
Correct the patch table entries for the 64-bit intrinsic math
routines (_alldiv(), _allmul(), _alludiv(), _aullmul(), etc...)
that use the _stdcall calling convention.
These routines all take two arguments, but the arguments are 64 bits wide.
On the i386 this means they each consume two 32-bit slots on the stack.
Consequently, when we specify the argument count in the IMPORT_SFUNC()
macro, we have to lie and claim there are 4 arguments instead of two.
This will cause the resulting i386 assembly wrapper to push the right
number of longwords onto the stack.
This fixes a crash I discovered with the RealTek 8180 driver, which
uses these routines a lot during initialization.
Revision Changes Path
1.68 +6 -6 src/sys/compat/ndis/subr_ntoskrnl.c
More information about the cvs-src
mailing list