cvs commit: src/sys/compat/ndis subr_ndis.c subr_ntoskrnl.c

Doug Rabson dfr at nlsystems.com
Sat Dec 13 02:17:17 PST 2003


I think the difference between Jan 1 1601 and Jan 1 1970 is 11644473600
seconds. Thats the conversion factor I have in my cross-platform game
engine code anyway.

On Fri, 2003-12-12 at 22:35, Bill Paul wrote:
> wpaul       2003/12/12 14:35:13 PST
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/compat/ndis      subr_ndis.c subr_ntoskrnl.c 
>   Log:
>   Implement some more NDIS and ntoskrnl API calls:
>   
>   subr_ndis.c: NdisGetCurrentSystemTime() which, according to the
>   Microsoft documentation returns "the number of 100 nanosecond
>   intervals since January 1, 1601." I have no idea what's so special
>   about that epoch or why they chose 100 nanosecond ticks. I don't
>   know the proper offset to convert nanotime() from the UNIX epoch
>   to January 1, 1601, so for now I'm just doing the unit convertion
>   to 100s of nanoseconds.
>   
>   subr_ntoskrnl.c: memcpy(), memset(), ExInterlockedPopEntrySList(),
>   ExInterlockedPushEntrySList().
>   
>   The latter two are different from InterlockedPopEntrySList()
>   and InterlockedPushEntrySList() in that they accept a spinlock to
>   hold while executing, whereas the non-Ex routines use a lock
>   internal to ntoskrnl. I also modified ExInitializePagedLookasideList()
>   and ExInitializeNPagedLookasideList() to initialize mutex locks
>   within the lookaside structures. It seems that in NDIS 5.0,
>   the lookaside allocate/free routines ExInterlockedPopEntrySList()
>   and ExInterlockedPushEntrySList(), which require the use of the
>   per-lookaside spinlock, whereas in NDIS 5.1, the per-lookaside
>   spinlock is deprecated. We need to support both cases.
>   
>   Note that I appear to be doing something wrong with
>   ExInterlockedPopEntrySList() and ExInterlockedPushEntrySList():
>   they don't appear to obtain proper pointers to their arguments,
>   so I'm probably doing something wrong in terms of their calling
>   convention (they're declared to be FASTCALL in Widnows, and I'm
>   not sure what that means for gcc). It happens that in my stub
>   lookaside implementation, they don't need to do any work anyway,
>   so for now I've hacked them to always return NULL, which avoids
>   corrupting the stack. I need to do this right though.
>   
>   Revision  Changes    Path
>   1.3       +17 -0     src/sys/compat/ndis/subr_ndis.c
>   1.2       +62 -0     src/sys/compat/ndis/subr_ntoskrnl.c



More information about the cvs-src mailing list