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