Update TickCountLow on timer ticks.
svn path=/trunk/; revision=2870
#include <stdio.h>
#include <ntddk.h>
-#include <napi/shared_data.h>
int main()
{
- printf("TickCountLow: %x\n",
- ((PKUSER_SHARED_DATA)USER_SHARED_DATA_BASE)->TickCountLow);
+ printf("TickCountLow: %x\n",
+ SharedUserData->TickCountLow);
}
-/* $Id: ntddk.h,v 1.27 2002/04/10 17:01:10 ekohl Exp $
+/* $Id: ntddk.h,v 1.28 2002/04/26 13:05:09 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
#include <ddk/ioctrl.h>
#include <ddk/rtltypes.h>
#include <ddk/haltypes.h>
+#include <napi/shared_data.h>
#include <ddk/zw.h>
#include <ddk/rtl.h>
BOOLEAN KdDebuggerEnabled;
} KUSER_SHARED_DATA, *PKUSER_SHARED_DATA;
-#define KERNEL_SHARED_DATA_BASE (0xFFDF0000)
-#define USER_SHARED_DATA_BASE (0x7FFE0000)
+#define KERNEL_SHARED_DATA (0xFFDF0000)
+#define USER_SHARED_DATA (0x7FFE0000)
+
+#if defined(__NTOSKRNL__) || defined(__NTDRIVER__) || defined(__NTHAL__)
+#define KI_USER_SHARED_DATA (0xFFDF0000)
+#define SharedUserData ((KUSER_SHARED_DATA * const)KI_USER_SHARED_DATA)
+#else
+#define SharedUserData ((KUSER_SHARED_DATA * const)USER_SHARED_DATA)
+#endif
+
#endif /* __INCLUDE_NAPI_SHARED_DATA_H */
-/* $Id: volume.c,v 1.21 2001/11/02 22:08:28 hbirr Exp $
+/* $Id: volume.c,v 1.22 2002/04/26 13:07:33 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
*/
#include <ddk/ntddk.h>
-#include <napi/shared_data.h>
#include <windows.h>
#include <ntos/minmax.h>
DWORD drive, count;
DWORD dwDriveMap;
- dwDriveMap = ((PKUSER_SHARED_DATA)USER_SHARED_DATA_BASE)->DosDeviceMap;
+ dwDriveMap = SharedUserData->DosDeviceMap;
for (drive = count = 0; drive < MAX_DOS_DRIVES; drive++)
{
DWORD drive, count;
DWORD dwDriveMap;
- dwDriveMap = ((PKUSER_SHARED_DATA)USER_SHARED_DATA_BASE)->DosDeviceMap;
+ dwDriveMap = SharedUserData->DosDeviceMap;
for (drive = count = 0; drive < MAX_DOS_DRIVES; drive++)
{
DWORD STDCALL
GetLogicalDrives(VOID)
{
- return (((PKUSER_SHARED_DATA)USER_SHARED_DATA_BASE)->DosDeviceMap);
+ return(SharedUserData->DosDeviceMap);
}
-/* $Id: dllmain.c,v 1.19 2001/11/25 15:21:09 dwelch Exp $
+/* $Id: dllmain.c,v 1.20 2002/04/26 13:07:03 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
#include <ddk/ntddk.h>
#include <ntdll/csr.h>
#include <ntdll/ldr.h>
-#include <napi/shared_data.h>
#include <windows.h>
#include <wchar.h>
}
-BOOL WINAPI
+BOOL WINAPI
DllMainCRTStartup(HANDLE hDll, DWORD dwReason, LPVOID lpReserved)
{
return(DllMain(hDll,dwReason,lpReserved));
}
-WINBOOL STDCALL
+WINBOOL STDCALL
DllMain(HANDLE hInst,
ULONG ul_reason_for_call,
LPVOID lpReserved)
case DLL_PROCESS_ATTACH:
{
NTSTATUS Status;
- PKUSER_SHARED_DATA SharedUserData =
- (PKUSER_SHARED_DATA)USER_SHARED_DATA_BASE;
DPRINT("DLL_PROCESS_ATTACH\n");
-/* $Id: time.c,v 1.13 2001/05/30 20:03:28 ekohl Exp $
+/* $Id: time.c,v 1.14 2002/04/26 13:07:03 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
#include <ddk/ntddk.h>
#include <windows.h>
-#include <napi/shared_data.h>
#include <kernel32/error.h>
//#include <string.h>
&TimeZoneInformation,
sizeof(TIME_ZONE_INFORMATION));
- return ((PKUSER_SHARED_DATA)USER_SHARED_DATA_BASE)->TimeZoneId;
+ return(SharedUserData->TimeZoneId);
}
-/* $Id: startup.c,v 1.36 2002/02/08 02:57:06 chorns Exp $
+/* $Id: startup.c,v 1.37 2002/04/26 13:08:18 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
#include <ntdll/rtl.h>
#include <csrss/csrss.h>
#include <ntdll/csr.h>
-#include <napi/shared_data.h>
#include <user32/callback.h>
#define NDEBUG
PPEB Peb;
PLDR_MODULE NtModule; // ntdll
PLDR_MODULE ExeModule; // executable
- PKUSER_SHARED_DATA SharedUserData =
- (PKUSER_SHARED_DATA)USER_SHARED_DATA_BASE;
WCHAR FullNtDllPath[MAX_PATH];
DPRINT("LdrInitializeThunk()\n");
-/* $Id: utils.c,v 1.49 2001/10/31 01:03:04 dwelch Exp $
+/* $Id: utils.c,v 1.50 2002/04/26 13:08:18 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
#include <wchar.h>
#include <ntdll/ldr.h>
#include <ntos/minmax.h>
-#include <napi/shared_data.h>
#ifdef DBG_NTDLL_LDR_UTILS
if (SearchPath == NULL)
{
- PKUSER_SHARED_DATA SharedUserData =
- (PKUSER_SHARED_DATA)USER_SHARED_DATA_BASE;
-
SearchPath = SearchPathBuffer;
wcscpy (SearchPathBuffer, SharedUserData->NtSystemRoot);
wcscat (SearchPathBuffer, L"\\system32;");
-/* $Id: misc.c,v 1.2 2000/08/15 12:41:13 ekohl Exp $
+/* $Id: misc.c,v 1.3 2002/04/26 13:08:42 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
#include <ddk/ntddk.h>
#include <ntdll/rtl.h>
-#include <napi/shared_data.h>
/* GLOBALS ******************************************************************/
ULONG STDCALL
RtlGetNtGlobalFlags(VOID)
{
- return (NtGlobalFlag);
+ return(NtGlobalFlag);
}
BOOLEAN STDCALL
RtlGetNtProductType(PNT_PRODUCT_TYPE ProductType)
{
- *ProductType = ((PKUSER_SHARED_DATA)USER_SHARED_DATA_BASE)->NtProductType;
- return TRUE;
+ *ProductType = SharedUserData->NtProductType;
+ return(TRUE);
}
/* EOF */
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-/* $Id: main.c,v 1.117 2002/04/17 11:56:33 ekohl Exp $
+/* $Id: main.c,v 1.118 2002/04/26 13:11:28 ekohl Exp $
*
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/ke/main.c
#include <internal/po.h>
#include <internal/cc.h>
#include <internal/se.h>
-#include <napi/shared_data.h>
#include <internal/v86m.h>
#include <internal/kd.h>
#include <internal/trap.h>
static VOID
InitSystemSharedUserPage (PCSZ ParameterLine)
{
- PKUSER_SHARED_DATA SharedPage;
-
UNICODE_STRING ArcDeviceName;
UNICODE_STRING ArcName;
UNICODE_STRING BootPath;
ULONG i;
BOOLEAN BootDriveFound;
- SharedPage = (PKUSER_SHARED_DATA)KERNEL_SHARED_DATA_BASE;
- SharedPage->DosDeviceMap = 0;
- SharedPage->NtProductType = NtProductWinNt;
- for (i = 0; i < 32; i++)
- {
- SharedPage->DosDeviceDriveType[i] = 0;
- }
+ /*
+ * NOTE:
+ * The shared user page has been zeroed-out right after creation.
+ * There is NO need to do this again.
+ */
+
+ SharedUserData->NtProductType = NtProductWinNt;
BootDriveFound = FALSE;
if (!RtlCompareUnicodeString (&ArcDeviceName, &DriveDeviceName, FALSE))
{
DPRINT("DOS Boot path: %c:%wZ\n", 'A' + i, &BootPath);
- swprintf (SharedPage->NtSystemRoot,
- L"%C:%wZ", 'A' + i, &BootPath);
+ swprintf(SharedUserData->NtSystemRoot,
+ L"%C:%wZ", 'A' + i, &BootPath);
BootDriveFound = TRUE;
}
NtClose (Handle);
/* set bit in dos drives bitmap (drive available) */
- SharedPage->DosDeviceMap |= (1<<i);
+ SharedUserData->DosDeviceMap |= (1<<i);
}
RtlFreeUnicodeString (&BootPath);
-/* $Id: timer.c,v 1.47 2001/08/27 01:21:50 ekohl Exp $
+/* $Id: timer.c,v 1.48 2002/04/26 13:11:28 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
/* GLOBALS ****************************************************************/
-#define IDMAP_BASE (0xd0000000)
-
-/*
- * Return a linear address which can be used to access the physical memory
- * starting at x
- */
-unsigned int physical_to_linear(unsigned int x)
-{
- return(x+IDMAP_BASE);
-}
-
-unsigned int linear_to_physical(unsigned int x)
-{
- return(x-IDMAP_BASE);
-}
-
/*
* Current time
*/
/*
* Number of timer interrupts since initialisation
*/
-volatile ULONGLONG KeTickCount;
+volatile ULONGLONG KeTickCount = 0;
volatile ULONG KiRawTicks = 0;
/*
/* FUNCTIONS **************************************************************/
-NTSTATUS STDCALL NtQueryTimerResolution(OUT PULONG MinimumResolution,
- OUT PULONG MaximumResolution,
- OUT PULONG ActualResolution)
+NTSTATUS STDCALL
+NtQueryTimerResolution(OUT PULONG MinimumResolution,
+ OUT PULONG MaximumResolution,
+ OUT PULONG ActualResolution)
{
- UNIMPLEMENTED;
+ UNIMPLEMENTED;
}
-NTSTATUS STDCALL NtSetTimerResolution(IN ULONG RequestedResolution,
- IN BOOL SetOrUnset,
- OUT PULONG ActualResolution)
+NTSTATUS STDCALL
+NtSetTimerResolution(IN ULONG RequestedResolution,
+ IN BOOL SetOrUnset,
+ OUT PULONG ActualResolution)
{
- UNIMPLEMENTED;
+ UNIMPLEMENTED;
}
-NTSTATUS STDCALL NtQueryPerformanceCounter (IN PLARGE_INTEGER Counter,
- IN PLARGE_INTEGER Frequency)
+NTSTATUS STDCALL
+NtQueryPerformanceCounter(IN PLARGE_INTEGER Counter,
+ IN PLARGE_INTEGER Frequency)
{
- UNIMPLEMENTED;
+ UNIMPLEMENTED;
}
-
-NTSTATUS STDCALL NtDelayExecution(IN ULONG Alertable,
- IN TIME* Interval)
+NTSTATUS STDCALL
+NtDelayExecution(IN ULONG Alertable,
+ IN TIME* Interval)
{
NTSTATUS Status;
LARGE_INTEGER Timeout;
NULL));
}
+
ULONG STDCALL
-KeQueryTimeIncrement (VOID)
+KeQueryTimeIncrement(VOID)
/*
* FUNCTION: Gets the increment (in 100-nanosecond units) that is added to
* the system clock every time the clock interrupts
* RETURNS: The increment
*/
{
- return(CLOCK_INCREMENT);
+ return(CLOCK_INCREMENT);
}
+
VOID STDCALL
-KeQuerySystemTime (PLARGE_INTEGER CurrentTime)
+KeQuerySystemTime(PLARGE_INTEGER CurrentTime)
/*
* FUNCTION: Gets the current system time
* ARGUMENTS:
}
VOID STDCALL
-KeQueryTickCount (PLARGE_INTEGER TickCount)
+KeQueryTickCount(PLARGE_INTEGER TickCount)
/*
* FUNCTION: Returns the number of ticks since the system was booted
* ARGUMENTS:
if (system_time >= current->DueTime.QuadPart)
{
HandleExpiredTimer(current);
- }
+ }
}
KiAddProfileEvent(ProfileTime, Eip);
}
-VOID
-KiUpdateSystemTime (KIRQL oldIrql, ULONG Eip)
+VOID
+KiUpdateSystemTime(KIRQL oldIrql,
+ ULONG Eip)
/*
* FUNCTION: Handles a timer interrupt
*/
* Increment the number of timers ticks
*/
KeTickCount++;
+ SharedUserData->TickCountLow++;
system_time = system_time + CLOCK_INCREMENT;
/*
}
-VOID
+VOID
KeInitializeTimerImpl(VOID)
/*
* FUNCTION: Initializes timer irq handling
-/* $Id: mminit.c,v 1.30 2002/01/01 00:21:56 dwelch Exp $
+/* $Id: mminit.c,v 1.31 2002/04/26 13:11:55 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top directory
* PROJECT: ReactOS kernel
#include <internal/ntoskrnl.h>
#include <internal/io.h>
#include <internal/ps.h>
-#include <napi/shared_data.h>
#include <internal/pool.h>
#define NDEBUG
/*
* Create the kernel mapping of the user/kernel shared memory.
*/
- BaseAddress = (PVOID)KERNEL_SHARED_DATA_BASE;
+ BaseAddress = (PVOID)KI_USER_SHARED_DATA;
Length = PAGESIZE;
MmCreateMemoryArea(NULL,
MmGetKernelAddressSpace(),
FALSE);
Status = MmRequestPageMemoryConsumer(MC_NPPOOL, TRUE, &MmSharedDataPagePhysicalAddress);
Status = MmCreateVirtualMapping(NULL,
- (PVOID)KERNEL_SHARED_DATA_BASE,
+ (PVOID)KI_USER_SHARED_DATA,
PAGE_READWRITE,
(ULONG)MmSharedDataPagePhysicalAddress,
TRUE);
DbgPrint("Unable to create virtual mapping\n");
KeBugCheck(0);
}
- ((PKUSER_SHARED_DATA)KERNEL_SHARED_DATA_BASE)->TickCountLow = 0xdeadbeef;
+ RtlZeroMemory(BaseAddress, Length);
/*
*
-/* $Id: process.c,v 1.78 2002/02/20 20:15:07 ekohl Exp $
+/* $Id: process.c,v 1.79 2002/04/26 13:12:34 ekohl Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
#include <internal/port.h>
#include <napi/dbg.h>
#include <internal/dbg.h>
-#include <napi/shared_data.h>
#include <internal/pool.h>
#include <roscfg.h>
* Create the shared data page
*/
MmLockAddressSpace(&Process->AddressSpace);
- BaseAddress = (PVOID)USER_SHARED_DATA_BASE;
+ BaseAddress = (PVOID)USER_SHARED_DATA;
Status = MmCreateMemoryArea(Process,
&Process->AddressSpace,
MEMORY_AREA_SHARED_DATA,
-/* $Id: init.c,v 1.32 2002/03/18 22:44:42 hbirr Exp $
+/* $Id: init.c,v 1.33 2002/04/26 13:09:21 ekohl Exp $
*
* init.c - Session Manager initialization
*
#include <ntos.h>
#include <ntdll/rtl.h>
#include <napi/lpc.h>
-#include <napi/shared_data.h>
#include "smss.h"
ULONG ExpandedLength;
WCHAR ExpandBuffer[512];
WCHAR ValueBuffer[MAX_PATH];
- PKUSER_SHARED_DATA SharedUserData =
- (PKUSER_SHARED_DATA)USER_SHARED_DATA_BASE;
/*
* The following environment variables are read from the registry.
HANDLE CsrssInitEvent;
HANDLE WindowsDirectory;
WCHAR UnicodeBuffer[MAX_PATH];
- PKUSER_SHARED_DATA SharedUserData =
- (PKUSER_SHARED_DATA)USER_SHARED_DATA_BASE;
/*
* FIXME: The '\Windows' directory is created by csrss.exe but