Date: Sat, 13 Dec 2003 10:17:03 +0000 From: Doug Rabson <dfr@nlsystems.com> To: Bill Paul <wpaul@FreeBSD.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/compat/ndis subr_ndis.c subr_ntoskrnl.c Message-ID: <1071310623.41939.2.camel@herring.nlsystems.com> In-Reply-To: <200312122235.hBCMZDID058821@repoman.freebsd.org> References: <200312122235.hBCMZDID058821@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1071310623.41939.2.camel>