Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 May 2005 09:16:34 +0000 (UTC)
From:      Bill Paul <wpaul@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/compat/ndis subr_ntoskrnl.c
Message-ID:  <200505080916.j489GYVl051432@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200505080916.j489GYVl051432>