2002-11-15 Casper S. Hornstrup * include/ddk/ldrtypes.h: Move ... * include/ntos/ldrtypes.h: ... here. * include/ddk/ntddk.h: Include ldrtypes.h at new location. 2002-11-13 Casper S. Hornstrup * drivers/bus/acpi/ospm/osl.c (acpi_os_readable, acpi_os_writable): Match prototypes. * include/ascii.h (AbortSystemShutdownA): Correct prototype. * include/debug.h (assert): Wrap in #ifndef assert. * include/funcs.h (AbortSystemShutdown): Remove duplicate prototype. * include/ddk/rtltypes.h: Move ... * include/ntos/rtltypes.h: ... here. * include/ddk/rtl.h: Move ... * include/ntos/rtl.h: ... here. * include/ddk/zwtypes.h: Move ... * include/ntos/zwtypes.h: ... here. * include/ddk/zw.h: Move ... * include/ntos/zw.h: ... here. | include/ddk/cmfuncs.h: Remove file; Move NtCreateKey to ntos/zw.h. * include/ntos.h: #include ntos/rtltypes.h, ntos/rtl.h, ntos/zwtypes.h, and ntos/zw.h. * include/unicode.h: (AbortSystemShutdownW): Correct prototype. * include/ddk/ntddk.h: Include headers at new location; Don't include removed files. * include/defines.h: Wrap definitions in w32api in #ifndef __USE_W32API. * include/ntos/zwtypes.h: Ditto. * include/napi/lpc.h: Ditto. * include/napi/shared_data.h: Ditto. * include/napi/teb.h: Ditto. * include/napi/types.h: Ditto. * include/ntdll/ldr.h: Ditto. * include/ntdll/rtl.h: Ditto. * include/ntos/console.h: Ditto. * include/ntos/disk.h: Ditto. * include/ntos/except.h: Ditto. * include/ntos/file.h: Ditto. * include/ntos/gditypes.h: Ditto. * include/ntos/heap.h: Ditto. * include/ntos/keyboard.h: Ditto. * include/ntos/mm.h: Ditto. * include/ntos/ntdef.h: Ditto. * include/ntos/ps.h: Ditto. * include/ntos/registry.h: Ditto. * include/ntos/security.h: Ditto. * include/ntos/synch.h: Ditto. * include/ntos/time.h: Ditto. * include/ntos/types.h: Ditto. * include/ntos/port.h: Ditto. * lib/advapi32/misc/shutdown.c (AbortSystemShutdownW, AbortSystemShutdownA): Correct prototype. * lib/advapi32/reg/reg.c: #include ntos.h. * lib/advapi32/sec/misc.c: Ditto. * lib/advapi32/sec/sid.c: Ditto. * lib/advapi32/service/sctrl.c: Ditto. * lib/advapi32/token/token.c: Ditto. * lib/kernel32/misc/dllmain.c: Ditto. * ntoskrnl/ex/napi.c: Ditto. * ntoskrnl/rtl/i386/exception.c: Ditto. * lib/advapi32/sec/ac.c: Ditto. (FindFirstFreeAce, GetAce): Change PACE* to PACE_HEADER*. * lib/advapi32/service/scm.c (EnumServicesStatusExA, EnumServicesStatusExW, QueryServiceStatusEx): Correct prototype. * lib/ntdll/rtl/ppb.c (RtlDestroyProcessParameters): Match prototype. * ntoskrnl/dbg/errinfo.c (DbgGetErrorText): Use %08x, not %08lx. * ntoskrnl/io/arcname.c (IoCreateSystemRootLink): Use %u, not %lu. * ntoskrnl/ke/main.c (ExpInitializeExecutive): Ditto. * (_main): Use %d, not %ld. * ntoskrnl/include/internal/i386/ke.h: Add #pragma GCC system_header. * include/ddk/ntdef.h (NTSYSAPI, NTAPI, NTKERNELAPI): Define to STDCALL; Check if already defined. * include/base.h (STDCALL, CDECL, CALLBACK, PASCAL): Move to ntos/types.h. 2002-11-13 Rick Gaiser * drivers/bus/isapnp/isapnp.c (FindNextReadPort): Increment Port before checking wether port address is in NE2000 address space range and returning port address value. 2002-11-10 Casper S. Hornstrup * drivers/bus/acpi/include/acpi.h: Include platform/types.h. * drivers/bus/acpi/include/actypes.h: (UINT8, BOOLEAN, UCHAR, UINT16, INT32, UINT32, UINT64): Disable, use the OS defined types instead. * drivers/bus/acpi/include/platform/types.h: Remove all types, include ntos.h instead. * drivers/bus/acpi/ospm/include/acpisys.h: Don't include platform/types.h. 2002-11-10 Casper S. Hornstrup * include/defines.h: Fix warnings when bulding with gcc 3.3. * include/ddk/status.h: Ditto. * include/freetype/internal/ftdebug.h: Ditto. * include/net/ndis.h: Ditto. * lib/msafd/misc/helpers.c: Ditto. * lib/user32/windows/defwnd.c: Ditto. * lib/user32/windows/window.c: Ditto. * ntoskrnl/cm/ntfunc.c: Ditto. * ntoskrnl/cm/regfile.c: Ditto. * ntoskrnl/cm/regobj.c: Ditto. * ntoskrnl/dbg/errinfo.c: Ditto. * ntoskrnl/ex/hashtab.c: Ditto. * ntoskrnl/include/internal/mm.h: Ditto. * ntoskrnl/io/irp.c: Ditto. * ntoskrnl/kd/gdbstub.c: Ditto. * ntoskrnl/ke/queue.c: Ditto. * ntoskrnl/ke/sem.c: Ditto. * ntoskrnl/ldr/resource.c: Ditto. * ntoskrnl/mm/balance.c: Ditto. * ntoskrnl/mm/freelist.c: Ditto. * ntoskrnl/mm/mdl.c: Ditto. * ntoskrnl/mm/npool.c: Ditto. * ntoskrnl/mm/section.c: Ditto. * ntoskrnl/rtl/error.c: Ditto. * ntoskrnl/rtl/mem.c: Ditto. * ntoskrnl/rtl/string.c: Ditto. * ntoskrnl/rtl/time.c: Ditto. * ntoskrnl/rtl/unicode.c: Ditto. * ntoskrnl/rtl/wstring.c: Ditto. * ntoskrnl/rtl/i386/exception.c: Ditto. * subsys/win32k/freetype/src/base/ftinit.c: Ditto. 2002-11-03 Casper S. Hornstrup * apps/tests/lpc/lpcclt.c: Change LPC_MESSAGE_HEADER to LPC_MESSAGE. * include/csrss/csrss.h: Ditto. * include/lsass/lsass.h: Ditto. * include/napi/dbg.h: Ditto. * include/napi/lpc.h: Ditto. * lib/kernel32/misc/console.c: Ditto. * lib/ntdll/csr/lpc.c: Ditto. * lib/ntdll/dbg/debug.c: Ditto. * lib/secur32/lsa.c: Ditto. * ntoskrnl/dbg/user.c: Ditto. * ntoskrnl/include/internal/port.h: Ditto. * ntoskrnl/lpc/connect.c: Ditto. * ntoskrnl/lpc/reply.c: Ditto. * ntoskrnl/ps/process.c: Ditto. * subsys/csrss/api/conio.c: Ditto. * subsys/csrss/api/process.c: Ditto. * subsys/csrss/api/user.c: Ditto. 2002-10-26 Casper S. Hornstrup * lib/msvcrt/except/seh.s: Fix end-of-line formatting. * lib/ntdll/rtl/i386/exception.c: Ditto. * lib/ntdll/rtl/i386/except.s: Ditto. * ntoskrnl/rtl/i386/except.s: Ditto. * ntoskrnl/rtl/i386/seh.s: Ditto. 2002-10-26 Casper S. Hornstrup * lib/msvcrt/Makefile (OBJECTS_EXCEPT): Add except/seh.o; Remove except/exhand3.o. * lib/msvcrt/except/exhand2.c (MsvcrtDebug): New function. * lib/msvcrt/except/unwind.c (PEXCEPTION_FRAME): Remove. (_global_unwind2): Correct prototype. * lib/ntdll/makefile (RTL_I386_OBJECTS, ARCH_OBJECTS): New groups. (TARGET_OBJECTS): Add ARCH_OBJECTS group. * lib/ntdll/rtl/exception.c (KiUserExceptionDispatcher): Set NumberParameters in exception record. (RtlRaiseStatus): Remove. * ntoskrnl/Makefile (OBJECTS_RTL): Remove rtl/seh.o. (OBJECTS_RTL_I386): Add rtl/i386/except.o, rtl/i386/exception.o, and rtl/i386/seh.o. * ntoskrnl/ke/catch.c (RtlpExecuteHandlerForException, RtlpDumpExceptionRegistrations, RtlpDispatchException, RtlpExecuteHandler, RtlpExceptionHandler, RtlpUnwindHandler, RtlpExecuteHandlerForException, RtlpExecuteHandlerForUnwind, RtlUnwind): Remove. (RtlpDispatchException): Add prototype. * ntoskrnl/ke/i386/usertrap.c (ExceptionTypeStrings): Remove. * ntoskrnl/ps/create.c (PsCreateTeb): Mark end of exception registration list. * tools/helper.mk (TARGET_ASFLAGS): Add -g if DBG = 1. * lib/msvcrt/except/exhand3.c: Remove. * ntoskrnl/rtl/seh.c: Ditto. * lib/msvcrt/except/seh.s: New file. * lib/ntdll/rtl/i386/except.s: Ditto. * lib/ntdll/rtl/i386/exception.c: Ditto. * ntoskrnl/rtl/i386/except.s: Ditto. * ntoskrnl/rtl/i386/exception.c: Ditto. * ntoskrnl/rtl/i386/seh.s: Ditto. 2002-10-26 Casper S. Hornstrup * lib/kernel32/process/create.c (_except_handler): New function. (BaseProcessStart): Ditto. (KlCreateFirstThread): Return INVALID_HANDLE_VALUE on error; Call BaseProcessStart() before process entry point. * lib/kernel32/thread/thread.c (_except_handler): New function. (ThreadStartup): Protect thread using SEH constructs. 2002-10-26 Casper S. Hornstrup * include/ddk/zw.h (NtProcessStartup): Use standard calling convention. * subsys/csrss/csrss.c (NtProcessStartup): Ditto. * subsys/smss/smss.c (NtProcessStartup): Ditto. * subsys/system/autochk/autochk.c (NtProcessStartup): Ditto. * subsys/system/usetup/usetup.c (NtProcessStartup): Ditto. 2002-10-25 Casper S. Hornstrup * apps/tests/tokentest/tokentest.c (ROS_ACE_HEADER): Move field AccessMask ... (ROS_ACE): ... here. (DisplayDacl): Make pAce an ROS_ACE*; Use new path for AceType; Use sizeof(ACE) instead of sizeof(ACE_HEADER). * include/ntos/security.h (ACE_HEADER): Move field AccessMask ... (ACE): ... here. * lib/ntdll/rtl/acl.c: Use new path for AccessMask. * ntoskrnl/se/semgr.c: Ditto. * ntoskrnl/se/acl.c (SepInitDACLs): Use new path for AccessMask; Use sizeof(ACE) instead of sizeof(ACE_HEADER). * ntoskrnl/se/token.c (SepCreateSystemProcessToken): Use sizeof(ACE) instead of sizeof(ACE_HEADER). 2002-10-20 Casper S. Hornstrup * include/napi/teb.h (RTL_USER_PROCESS_PARAMETERS): Use field names as described in Windows NT/2000 Native API Reference. * lib/kernel32/file/file.c: Use new field names. * lib/kernel32/misc/console.c: Ditto. * lib/kernel32/process/create.c: Ditto. * lib/kernel32/process/proc.c: Ditto. * lib/ntdll/rtl/path.c: Ditto. * lib/ntdll/rtl/ppb.c: Ditto. * lib/ntdll/rtl/process.c: Ditto. 2002-10-19 Casper S. Hornstrup * include/ntos.h: Include relevant files. * include/internal/ke.h: Include files relative to ntoskrnl/include. * include/internal/arch/ke.h: Ditto. 2002-10-01 Casper S. Hornstrup * drivers/dd/floppy/floppy.c: Changed PAGESIZE to PAGE_SIZE. * drivers/fs/cdfs/fcb.c: Ditto. * drivers/fs/cdfs/fsctl.c: Ditto. * drivers/fs/cdfs/rw.c: Ditto. * drivers/fs/ext2/dir.c: Ditto. * drivers/fs/ext2/inode.c: Ditto. * drivers/fs/ext2/rw.c: Ditto. * drivers/fs/ext2/super.c: Ditto. * drivers/fs/minix/blockdev.c: Ditto. * drivers/fs/minix/cache.c: Ditto. * drivers/fs/minix/inode.c: Ditto. * drivers/fs/minix/rw.c: Ditto. * drivers/fs/ntfs/fcb.c: Ditto. * drivers/fs/ntfs/ntfs.h: Ditto. * drivers/fs/vfat/create.c: Ditto. * drivers/fs/vfat/direntry.c: Ditto. * drivers/fs/vfat/dirwr.c: Ditto. * drivers/fs/vfat/fat.c: Ditto. * drivers/fs/vfat/fcb.c: Ditto. * drivers/fs/vfat/fsctl.c: Ditto. * drivers/fs/vfat/rw.c: Ditto. * drivers/storage/class2/class2.c: Ditto. * drivers/storage/scsiport/scsiport.c: Ditto. * hal/halx86/adapter.c: Ditto. * hal/halx86/mp.c: Ditto. * include/ddk/mmfuncs.h: Ditto. * include/ddk/mmtypes.h: Ditto. * include/ddk/i386/pagesize.h: Ditto. * include/ntdll/pagesize.h: Ditto. * lib/kernel32/process/create.c: Ditto. * lib/kernel32/thread/thread.c: Ditto. * lib/ntdll/ldr/utils.c: Ditto. * lib/ntdll/rtl/env.c: Ditto. * lib/ntdll/rtl/heap.c: Ditto. * lib/ntdll/rtl/ppb.c: Ditto. * lib/ntdll/rtl/process.c: Ditto. * lib/ntdll/rtl/thread.c: Ditto. * ntoskrnl/cc/copy.c: Ditto. * ntoskrnl/cc/view.c: Ditto. * ntoskrnl/ex/sysinfo.c: Ditto. * ntoskrnl/include/internal/i386/mm.h: Ditto. * ntoskrnl/io/mdl.c: Ditto. * ntoskrnl/ke/kthread.c: Ditto. * ntoskrnl/ke/i386/kernel.c: Ditto. * ntoskrnl/ldr/init.c: Ditto. * ntoskrnl/ldr/loader.c: Ditto. * ntoskrnl/mm/anonmem.c: Ditto. * ntoskrnl/mm/cont.c: Ditto. * ntoskrnl/mm/freelist.c: Ditto. * ntoskrnl/mm/iospace.c: Ditto. * ntoskrnl/mm/kmap.c: Ditto. * ntoskrnl/mm/marea.c: Ditto. * ntoskrnl/mm/mdl.c: Ditto. * ntoskrnl/mm/mminit.c: Ditto. * ntoskrnl/mm/ncache.c: Ditto. * ntoskrnl/mm/npool.c: Ditto. * ntoskrnl/mm/pagefile.c: Ditto. * ntoskrnl/mm/pageop.c: Ditto. * ntoskrnl/mm/section.c: Ditto. * ntoskrnl/mm/slab.c: Ditto. * ntoskrnl/mm/i386/page.c: Ditto. * ntoskrnl/ob/handle.c: Ditto. * ntoskrnl/ps/create.c: Ditto. * ntoskrnl/ps/process.c: Ditto. * ntoskrnl/ps/w32call.c: Ditto. * subsys/win32k/include/object.h: Ditto. 2002-10-01 Casper S. Hornstrup * lib/ntdll/string/ctype.c: Undefine __MSVCRT__ to not have mingw runtime import _pctype. 2002-09-30 Casper S. Hornstrup * lib/user32/misc/desktop.c (string.h): Include. * lib/user32/misc/resources.c: Ditto. * lib/user32/misc/winhelp.c: Ditto. * lib/user32/windows/accel.c: Ditto. * lib/user32/windows/bitmap.c: Ditto. * subsys/win32k/freetype/ctype.c: Undefine __MSVCRT__ and _pctype to not have mingw runtime import _pctype. 2002-09-30 Casper S. Hornstrup * ntoskrnl/cc/view.c (alloca): Prototype. * ntoskrnl/rtl/ctype.c: Undefine __MSVCRT__ to not have mingw runtime import _pctype. 2002-08-26 David Welch * lib/gdi32/misc/dllmain.c (GdiDllInitialize): Don't initialize win32k.sys for each process. * subsys/csrss/init.c (CsrServerInitialization): Initialize win32k.sys as well. 2002-08-26 David Welch * ntoskrnl/ps/process.c (NtCreateProcess): Reference the parent process's handle using ExGetPreviousMode. 2002-08-26 David Welch * lib/user32/misc/dllmain.c (Init): Initialize gdi32 as well. 2002-08-26 David Welch * iface/addsys/genw32k.c (main, process): Generate a set of stubs for csrss as well. 2002-08-26 David Welch * lib/kernel32/process/create.c (CreateProcessW): Initialize all the members of the new process's PPB. 2002-08-17 David Welch * ntoskrnl/mm/rmap.c (MmWritePagePhysicalAddress): Ensure the process isn't freed in the middle of our operations. 2002-08-17 David Welch * drivers/fs/vfat/finfo.c (VfatSetAllocationSizeInformation): Fixed. 2002-08-17 David Welch * ntoskrnl/ps/create.c (PiDeleteThread): Don't dereference the thread's process while holding the thread list lock. 2002-08-17 David Welch * ntoskrnl/mm/section.c (MmMapViewOfSection): Check there is enough space for all parts of an image before mapping it; if there isn't enough space free at the preferred base address then try to choose a different one. 2002-08-17 David Welch * ntoskrnl/mm/mpw.c (MmInitMpwThread): Run the MPW thread at idle priority. 2002-08-17 David Welch * ntoskrnl/mm/kmap.c (ExUnmapPage, ExAllocatePageWithPhysPage, MiFreeNonPagedPoolRegion, MiAllocNonPagedPoolRegion): Maintain a hint of the next free page; makes running with whole page allocation more bearable. 2002-08-17 David Welch * ntoskrnl/mm/anonmem.c (MmPageOutVirtualMemory): Show an out of swap space message if we are out of swap space. * ntoskrnl/mm/section.c (MmPageOutSectionView): Show an out of swap space message if we are out of swap space. * ntoskrnl/mm/pagefile.c (MmAllocSwapPage): Don't automatically show an out of swap space message on failure. * ntoskrnl/mm/pagefile.c (MmShowOutOfSpaceMessagePagingFile): New function to notify the user that the pagefile is full. 2002-08-17 David Welch * drivers/lib/zlib/Makefile: Create a dummy zlib.sym 2002-08-16 David Welch * ntoskrnl/mm/npool.c (ExAllocateWholePageBlock): Converted to use PHYSICAL_ADDRESS type for page address. 2002-08-16 David Welch * subsys/win32k/ntuser/class.c (W32kCreateClass): Corrected typo when calculating the offset into the class object to put the class name string. 2002-08-16 David Welch * ntoskrnl/ps/thread.c (PsDispatchThreadNoLock): Don't call the reaper function directly; set an event to wake up a seperate reaper thread. * ntoskrnl/ps/thread.c (PsReaperThreadMain): New function that waits for a notification and then calls PsReapThreads. * ntoskrnl/ps/thread.c (PsInitThreadManagement): Create the reaper thread. 2002-08-15 David Welch * lib/advapi32/misc/dllmain.c (DllMain): Removed debug message. 2002-08-14 David Welch * subsys/smss/init.c (SmPagingFilesQueryRoutine): If possible take the size of the paging file from the registry. 2002-08-14 David Welch * ntoskrnl/mm/section.c (MmCreateDataFileSection): Extend the section if necessary. 2002-08-14 David Welch * ntoskrnl/mm/pagefile.c (NtCreatePagingFile): Set the file size using the FileAllocationInformation class. 2002-08-14 David Welch * ntoskrnl/mm/anonmem.c (MmWritePageVirtualMemory): Implemented function to write anonymous memory pages to the swap file. * ntoskrnl/mm/anonmem.c (MmFreeVirtualMemoryPage): Free any swap page associated with the page. * ntoskrnl/mm/mpw.c (MmWriteDirtyPages): New function to find pages to write to disk. * ntoskrnl/mm/mpw.c (MmMpwThreadMain): Implemented MPW functionality. * ntoskrnl/mm/rmap.c (MmWritePagePhysicalAddress): New function to write a single page back to disk. * ntoskrnl/mm/rmap.c (MmSetCleanAllRmaps, MmSetDirtyAllRmaps, MmIsDirtyPageRmap): New rmap function to support the MPW thread. * ntoskrnl/mm/section.c (MmWritePageSectionView): Implemented function to write back section pages. * ntoskrnl/mm/section.c (MmFreeSectionPage): Free any swap entry associated with the page; mark pages shared with the cache as dirty if necessary. 2002-08-14 David Welch * ntoskrnl/ldr/loader.c (LdrPEProcessModule): Set name of the module into the module text structure. 2002-08-14 David Welch * ntoskrnl/io/rw.c (NtReadFile, NtWriteFile): Use the correct test for whether to wait for the completion of i/o. 2002-08-14 David Welch * ntoskrnl/cm/ntfunc.c (NtFlushKey): Request synchronous i/o from NtOpenFile. * ntoskrnl/cm/regfile (CmiInitPermanentRegistryHive): Request synchronous i/o from NtCreateFile. * ntoskrnl/dbg/kdb_stabs.c (LdrpLoadModuleSymbols): Request synchronous i/o from NtOpenFile. * ntoskrnl/ldr/sysdll.c (LdrpMapSystemDll): Request synchronous i/o from NtOpenFile. 2002-08-14 David Welch * ntoskrnl/cc/view.c (CcRosSuggestFreeCacheSegment): Maintain the correct reference count. 2002-08-14 David Welch * ntoskrnl/cc/view.c (CcRosFlushCacheSegment): New function to write back a modified cache segment. * ntoskrnl/cc/view.c (CcRosFlushDirtyPages): New function to flush some dirty pages from the cache. * ntoskrnl/cc/view.c (CcRosMarkDirtyCacheSegment): New function to mark a cache segment modified while mapped into memory as dirty. 2002-08-14 David Welch * ntoskrnl/cc/pin.c (CcMapData, CcUnpinData, CcSetDirtyPinnedData): Store the dirty status in the BCB; don't write back dirty data immediately. 2002-08-14 David Welch * include/ntos/mm.h: Added SEC_XXXX defines from 'Windows NT/2000 Native API Reference' 2002-08-14 David Welch * drivers/fs/vfat/ea.c (VfatSetExtendedAttributes): Empty placeholder for extended attribute functions. 2002-08-14 David Welch * drivers/fs/vfat/finfo.c (VfatSetAllocationSizeInformation): Added function to set allocation size. 2002-08-14 David Welch * drivers/fs/vfat/fcb.c (vfatFCBInitializeCache): Renamed to vfatFCBInitializeCacheFromVolume. * drivers/fs/vfat/fcb.c (vfatMakeFCBFromDirEntry): Don't initialise the cache with a file object representing the volume unless the FCB is for a directory. 2002-08-14 David Welch * drivers/fs/vfat/create.c (VfatPagingFileCreate): Added a new function for handling paging file only code. * drivers/fs/vfat/create.c (VfatSupersedeFile): Added a new function for doing a file supersede. * drivers/fs/vfat/create.c (VfatCreateFile): Reformatted and adjusted control flow. Set allocation size and extended attributes on create. * drivers/fs/vfat/create.c (VfatCreate): Removed goto. 2002-08-14 David Welch * drivers/fs/vfat/cleanup.c (VfatCleanupFile): Renamed updEntry to VfatUpdateEntry. * drivers/fs/vfat/close.c (VfatCloseFile): Renamed updEntry to VfatUpdateEntry. * drivers/fs/vfat/dirwr.c (updEntry): Renamed to VfatUpdateEntry. * drivers/fs/vfat/dirwr.c (addEntry): Renamed to VfatAddEntry. 2002-08-14 David Welch * apps/tests/sectest/sectest.c (main): Fixed formatting. 2002-08-10 David Welch * ntoskrnl/mm/i386/page.c (MmSetPageProtect): Fixed behaviour when called on the system address space. 2002-08-10 David Welch * ntoskrnl/mm/virtual.c (MmQueryAnonMem, MmProtectAnonMem, NtAllocateVirtualMemory, NtFreeVirtualMemory): Renamed segments to regions; moved region code to seperate file. Implemented NtQueryVirtualMemory and NtProtectVirtualMemory for anonymous memory areas. 2002-08-10 David Welch * ntoskrnl/mm/anonmem.c: Moved functions relating to areas created with NtAllocateVirtualMemory to a seperate file. 2002-08-10 David Welch * ntoskrnl/mm/section.c (MmQuerySectionView): Implemented NtQueryVirtualMemory for section views. 2002-08-10 David Welch * ntoskrnl/mm/section.c (MmAccessFaultSectionView, MmNotPresentFaultSectionView, MmProtectSectionView, MmMapViewOfSegment, MmAlterViewAttributes): Implemented NtProtectVirtualMemory for section views. 2002-08-10 David Welch * ntoskrnl/ke/main.c: Removed SEH test code. 2002-08-10 David Welch * lib/ntdll/ldr/utils.c (LdrFixupImports): Remove the readonly protection from the IAT before writing to it. 2002-08-10 David Welch * lib/ntdll/ldr/utils.c (LdrAdjustDllName): Properly null terminate the base name of the DLL. 2002-08-10 David Welch * ntoskrnl/ldr/loader.c (LdrPEProcessModule): Set the text segment of modules to readonly after loading. 2002-08-09 David Welch * ntoskrnl/ps/create.c (NtCreateThread): Call PsSuspendThread if NtCreateThread has CreateSuspended as TRUE. * ntoskrnl/ps/suspend.c (PsSuspendThread, PsResumeThread, PiSuspendThreadKernelRoutine): Fixed suspend functionality. 2002-08-09 David Welch * ntoskrnl/ke/i386/usertrap.c (print_user_address): Copy the LDR variable from the right address. 2002-08-09 David Welch * ntoskrnl/ke/apc.c (KiDeliverNormalApc): Check for kernel APCs pending on exit from the kernel. * ntoskrnl/ke/apc.c (KiDeliverNormalApc, KiDeliverUserApc, KiDeliverApc): Set the APC's inserted flag to FALSE after removing it from the thread's queue. 2002-08-09 David Welch * lib/kernel32/thread/thread.c (ThreadStartup): Don't call DLL entrypoints; this is done by LdrInitializeThunk. * lib/ntdll/ldr/startup.c (LdrInitializeThunk): Call DLLs in initialization order; take the loader lock before calling. 2002-08-09 David Welch * apps/tests/thread/thread.c (main): Test suspend and resume functionality. 2002-08-08 David Welch * ntoskrnl/mm/section (NtQuerySection): Return the right result length. 2002-08-08 David Welch * ntoskrnl/ke/usertrap.c (print_user_address): Check for a NULL LDR structure in the PEB; copy the LDR pointer in safely. 2002-08-08 David Welch * ntoskrnl/ke/apc.c (KiDeliverUserApc): Deliver all present APCs; release the APC spinlock while acccessing user memory. 2002-08-08 David Welch * include/internal/ps.h: Adjusted offsets into the ETHREAD structure. * include/internal/ps.h: Removed redundant members from the KTHREAD structure. * ntoskrnl/ke/kthread.c (KeInitializeThread): Removed redundant members from the KTHREAD structure. 2002-08-08 David Welch * ntoskrnl/dbg/kdb.c (KdbEnterDebuggerException): New function to enter the debugger on an exception. * ntoskrnl/kd/kdebug.c (KdInitSystem): Initialize the local kernel debugger if enabled. * ntoskrnl/ke/catch.c (KiDispatchException): Enter the local kernel debugger on an exception. 2002-08-08 David Welch * include/ntdll/ldr.h: Added definition for a DLL entrypoint. * lib/kernel32/process/create.c (KlCreateFirstThread): Put the argument to the NtProcessStartup function on the stack. * lib/kernel32/process/create.c (KlInitPeb): Read the base address of the new image from the PEB. * lib/kernel32/process/create.c (CreateProcessW): Start the first thread at the entrypoint of the new image. * lib/ntdll/ldr/startup.c (LdrInitializeThunk): If the function is called after the initial startup then just call the entrypoints for the loaded DLLs with DLL_THREAD_ATTACH. Don't call the entrypoint of the image. * lib/ntdll/rtl/process.c (RtlpCreateFirstThread): Put the argument to the NtProcessStartup function on the stack. * lib/ntdll/rtl/process.c (KlInitPeb): Read the base address of the new image from the PEB. * lib/ntdll/rtl/process.c (RtlCreateUserProcess): Start the first thread at the entrypoint of the new image. * ntoskrnl/ke/i386/bthread.S (PsBeginThreadWithContextInternal): Use the system call path to begin a usermode thread. * ntoskrnl/ke/i386/thread.c (Ke386InitThreadWithContext): Convert the supplied context into a trap frame. * ntoskrnl/ldr/init.c (LdrLoadInitialProcess): Put the PEB argument to the NtProcessStartup function on the new stack; start the first thread at the entrypoint of the image. * ntoskrnl/ps/create.c (NtCreateThread): Create an APC to call LdrInitializeThunk in the context of a new thread before its entrypoint. 2002-08-08 David Welch * drivers/fs/vfat/cleanup.c (VfatCleanupFile): Uninitialise the cache on file cleanup. * drivers/fs/vfat/fcb.c (vfatReleaseFcb): Don't uninitialise the cache on file close. * ntoskrnl/cc/copy.c: Renamed zero page global variable. * ntoskrnl/cc/view.c: Added cache delete function. 2002-07-13 Casper S. Hornstrup * rules.mak (RSYM): Define. * include/ddk/zwtypes.h (DebugDbgLoadSymbols): Add to enum _DEBUG_CONTROL_CODE. * include/ntdll/ldr.h (LDR_SYMBOL_INFO, LdrpLoadUserModuleSymbols): Add. (LdrLoadModuleSymbols): Remove. * include/ntos/kdbgsyms.h (ST_FILENAME, ST_FUNCTION, ST_LINENUMBER): Add. (SYMBOL). Make Name an ANSI_STRING. (IMAGE_SYMBOL_INFO, AreSymbolsParsed): Add. * lib/ntdll/ldr/startup.c (LdrInitializeThunk): Call LdrpLoadUserModuleSymbols() not LdrLoadModuleSymbols(). * lib/ntdll/ldr/utils.c (LdrLoadModuleSymbols): Rename to LdrpLoadUserModuleSymbols. (LdrpLoadUserModuleSymbols): Use DebugDbgLoadSymbols debug control code. (LdrLoadDll): assert if out of memory. (LdrLoadDll): Call LdrpLoadUserModuleSymbols(), not LdrLoadModuleSymbols(). * lib/ntdll/string/ctype.c (_pctype): #undef. * ntoskrnl/dbg/dbgctrl.c (NtSystemDebugControl): Call LdrLoadUserModuleSymbols on DebugDbgLoadSymbols. * ntoskrnl/include/internal/ldr.h (LdrGetAddressInformation): Add. * ntoskrnl/include/internal/module.h (MODULE_TEXT_SECTION): Make SymbolInfo an IMAGE_SYMBOL_INFO. * ntoskrnl/ke/i386/exp.c (LdrGetAddressInformation): Add prototype. (print_address): Change #ifdef KDBG to #ifdef DBG. (KiDoubleFaultHandler, KiDumpTrapFrame, KeDumpStackFrames): Dump one stack frame per line. * ntoskrnl/ke/i386/multiboot.S: Create pagetables for more kernel address space so larger modules can be passed from the boot loader. * ntoskrnl/ke/i386/usertrap.c (LdrGetAddressInformation): Add prototype. (print_user_address): Print symbols using LdrGetAddressInformation(). * ntoskrnl/ldr/loader.c (SYMBOLFILE_HEADER, IMAGE_SYMBOL_INFO_CACHE, STAB_ENTRY, N_FUN, N_SLINE, N_SO, SymbolListHead): Add. (TAG_SYM_BUF): Remove. (LdrInitDebug): Remove unneeded code. (LdrInit1): Prepare for loading symbols. (LdrpReadLine, HexL, LdrpParseLine, LdrpLoadModuleSymbolsFromBuffer, LdrpLoadUserModuleSymbolsFromBuffer): Remove. (LdrpParseImageSymbols, LdrpGetFileName, LdrpGetFunctionName, LdrpGetLineNumber, LdrGetAddressInformation, LdrpLookupUserSymbolInfo): Add. (LdrpLoadModuleSymbols, LdrInitializeBootStartDriver): Change to use new symbol structures. (LdrLoadUserModuleSymbols): Cache symbol buffers. (LdrUnloadModuleSymbols): Implement. (LdrLoadModule, LdrUnloadModule): Change #ifdef KDBG to #ifdef DBG. (LdrPEProcessModule): Split a line into two lines. (LdrPEProcessModule): Setup for loading symbols. * ntoskrnl/ldr/sysdll.c (LdrpMapSystemDll): Open with FILE_SHARE_READ. * ntoskrnl/ps/process.c (PiFreeSymbols): Call LdrUnloadModuleSymbols() to free symbols. (PiDeleteProcess): Change #ifdef KDBG to #ifdef DBG. * ntoskrnl/rtl/ctype.c (_pctype): #undef. * ntoskrnl/rtl/string.c (strncpy): Terminate destination string. * tools/Makefile (rsym): Add target. * tools/helper.mk: Include config and use -g if DBG = 1. 2002-07-13 Casper S. Hornstrup * Makefile (install_before): Install system.hiv to correct location. 2002-07-04 David Welch * subsys/win32k/include/callback.h: Fixed callback argument definitions. * subsys/win32k/ntuser/winpos.c: Implemented some more of the windows sizing/moving code. * subsys/win32k/ntuser/painting.c: Implemented some more of the window painting code. * subsys/win32k/objects/coord.c: Implemented LPtoDP and DPtoLP. * subsys/win32k/objects/region.c: Added stubs for some more region functions. 2002-07-04 David Welch * ntoskrnl/ps/process.c (NtCreateProcess): Duplicate the process desktop handle as well. 2002-07-04 David Welch * ntoskrnl/se/token.c: Don't call the ZwXXX variant of system calls when in system context. 2002-07-04 David Welch * ntoskrnl/Makefile: Added file with MDA output code. * ntoskrnl/kd/kdebug.c: Recognize MDA as a destination for debug output. 2002-07-04 David Welch * lib/user32/windows/defwnd.c: Implemented some more of the default window handler. 2002-07-04 David Welch * lib/user32/misc/stubs.c: Removed some stubs to seperate files. 2002-07-04 David Welch * lib/user32/user32.def: Export ScreenToClient otherwise we get problems when code in user32 tries to call it. 2002-07-04 David Welch * include/win32k/region.h: Added prototypes for some missing region functions. 2002-07-04 David Welch * include/win32k/ntuser.h: Added prototypes for some missing NtUserXXX functions. 2002-07-04 David Welch * include/user32/wininternal.h: Added some constants for private GetDCEx styles that WINE needs. 2002-07-04 David Welch * include/user32/callback.h: Fixed callbacks for messages with parameters. 2002-07-04 David Welch * include/napi/win32.h (W32THREAD): Added pointer to the thread's desktop. * include/napi/win32.h (W32PROCESS): Removed handle table, added a pointer to the process's window station. * subsys/win32k/ntuser/guicheck.c (W32kGuiCheck): Reference a process's window station on the first win32k system call. Reference a thread's desktop on the first win32k system call. 2002-07-04 David Welch * include/messages.h: Added some missing WM_XXX constants. 2002-07-04 David Welch * drivers/dd/ide/makefile: Compiling with debugging messages needs libgcc to be linked in. 2002-07-04 David Welch * iface/addsys/genw32k.c: Generate a variable with the number of system calls. * iface/native/genntdll.c: Generate a proper stack frame for the user system call stubs. * ntoskrnl/ke/i386/syscall.S: Generate a proper stack frame for the handler for system calls. 2002-07-04 David Welch * Makefile: Build the GUI startup application. * subsys/system/gstart/gstart.c: Application to start up the GUI. 2002-06-18 David Welch * tools/helper.mk: Make an import library a proper target depending on the .def file. 2002-06-18 David Welch * subsys/win32k/ntuser/window.c (NtUserGetWindowLong): Began implementation. 2002-06-18 David Welch * subsys/win32k/misc/object.c (ObmCreateHandle): Return the correct handle value. 2002-06-18 David Welch * subsys/win32k/makefile: Make win32k depend on the file containing the service table. 2002-06-18 David Welch * ntoskrnl/ke/i386/stkswitch.S (KeSwitchStackAndRet, KePushAndStackSwitchAndSysRet): Push one value only. * ntoskrnl/ps/w32call.c (NtCallbackReturn, NtW32Call): Moved these functions to a new file. Restore the old trap frame after returning from a callback. 2002-06-18 David Welch * lib/user32/windows/message.c (CallWindowProcA, CallWindowProcW): Convert message to Unicode or ASCII if necessary. 2002-06-18 David Welch * include/user32/callback.h: Added WM_CREATE and WM_NCCALCSIZE callbacks. * lib/user32/windows/window.c (User32SendCREATEMessageForKernel, User32SendNCCREATEMessageForKernel): Implemented. * subsys/win32k/ntuser/callback.c (W32kSendCREATEMessage): Implemented. 2002-06-18 David Welch * include/structs.h: Added Unicode and ASCII versions of CREATESTRUCT. 2002-06-16 David Welch * tools/helper.mk: Make the install target depend on all the files to be installed. 2002-06-16 David Welch * ntoskrnl/ps/thread.c (NtCallbackReturn): Set TSS.Esp0 to the top of the old stack. * ntoskrnl/ps/thread.c (NtW32Call): Set TSS.Esp0 to the top of the new stack. Free the callback stack correctly. Don't copy portion of the trap frame that doesn't exist in non-v86-mode interrupts. * ntoskrnl/ps/thread.c (PsFreeCallbackStack): New function to free a stack allocated with PsAllocateCallbackStack. 2002-06-16 David Welch * drivers/dd/null/makefile: Commented out local LDFLAGS as these cause bad relocations in the stripped image. 2002-06-16 David Welch * config: Corrected spelling error. 2002-06-11 David Welch * subsys/system/winlogon/winlogon.c (WinMain): Check for failure when creating a window system. 2002-06-11 David Welch * ntoskrnl/ob/handle.c (ObDuplicateObject): Added this internal function for duplicating objects. * ntoskrnl/ps/process.c (NtCreateProcess): Duplicate the parent process's window station to the child process. * ntoskrnl/ps/process.c (PsInitProcessManagement): Initialize the first process's window station. 2002-06-11 David Welch * ntoskrnl/mm/marea.c (MmCreateMemoryArea): Initialise page operation structure members. * ntoskrnl/mm/pageop.c (MmReleasePageOp, MmGetPageOp): Increment or decrement the page operation count in the memory area. * ntoskrnl/mm/virtual.c (MmNotPresentFaultVirtualMemory, MmPageOutVirtualMemory): Check for a deleted memory area before handling the fault. * ntoskrnl/mm/virtual.c (MmFreeVirtualMemory): Wait for all page operations to finish before freeing the memory area. 2002-06-11 David Welch * ntoskrnl/ke/i386/syscall.S (interrupt_handler2e): Corrected test for previous mode, upper 16-bit of CS on the stack after an interrupt are arbitary. 2002-06-11 David Welch * lib/user32/misc/winsta.c: Cleaned up indentation. 2002-06-11 David Welch * apps/tests/winhello/winhello.c (WinMain, MainWndProc): Cleaned up formatting, some more error checks. 2002-06-04 David Welch * ntoskrnl/mm/virtual.c (MmSecureVirtualMemory, MmUnsecureVirtualMemory, NtQueryVirtualMemory): Corrected indentation. 2002-06-04 David Welch * ntoskrnl/ke/i386/exp.c (KiDoubleFaultHandler): Print CR3 correctly. 2002-06-04 David Welch * ntoskrnl/include/internal/ps.h: Added KTHREAD_STACK_LIMIT definition. * ntoskrnl/ke/i386/tskswitch.S (Ki386ContextSwitch): Force all the pages of the kernel stack to be accessible from this process. 2002-06-04 David Welch * ntoskrnl/cc/view.c (ReadCacheSegmentChain): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/cc/copy.c (CcRosCreateCacheSegment): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/cc/copy.c (CcFreeCachePage): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/include/internal/mm.h: Changed prototypes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/include/internal/ps.h (KPROCESS): Changed type of page directory base to PHYSICAL_ADDRESS. * ntoskrnl/include/internal/i386/mm.h: Changed prototypes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/ke/kthread.c (KeFreeStackPage): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/ke/kthread.c (KeInitializeThread): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/ke/process.c (KeAttachProcess, KeDetachProcess): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/ke/kernel.c (PcrPages, KeApplicationProcessorInit): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/balance.c (MM_ALLOCATION_REQUEST): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/balance.c (MmReleasePageMemoryConsumer): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/balance.c (MmRequestPageMemoryConsumer): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/cont.c (MmFreeContinuousPage): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/cont.c (MmAllocateContinuousAlignedMemory): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/freelist.c (MmTransferOwnershipPage, MmGetLRUFirstUserPage, MmGetLRUNextUserPage, MmGetContinuousPages, MmInitializePageList, MmSetFlagsPage, MmSetRmapListHeadPage, MmGetRmapListHeadPage, MmMarkPageMapped, MmMarkPageUnmapped, MmGetFlagsPage, MmSetSavedSwapEntryPage, MmGetSavedSwapEntryPage, MmReferencePage, MmGetReferenceCountPage, MmIsUsablePage, MmDereferencePage, MmGetLockCountPage, MmLockPage, MmUnlockPage, MmAllocPage): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/iospace.c (MmMapIoSpace): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/kmap.c (ExAllocatePage, MiZeroPage, MiCopyFromUserPage, ExAllocatePageWithPhysPage): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/marea.c (MmFreeMemoryArea): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/mdl.c (MmUnlockPages, MmMapLockedPages, MmProbeAndLockPages): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/mm.c (MmSharedDataPagePhysicalAddress, MmCommitPagedPoolAddress, MmNotPresentFault): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/mminit.c (MmInitVirtualMemory): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/ncache.c (MmAllocateNonCachedMemory, MmFreeNonCachedPage): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/npool.c (grow_kernel_pool): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/rmap.c (MmPageOutPhysicalAddress, MmInsertRmap, MmDeleteAllRmaps, MmDeleteRmap): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/section.c (MiReadPage, MmNotPresentFaultSectionView, MmAccessFaultSectionView, MmPageOutDeleteMapping, MmPageOutSectionView, MmFreeSectionPage): Changes to use PHYSICAL_ADDRESS type for physical addresses. * ntoskrnl/mm/slab.c (ExGrowSlabCache): Changes to use PHYSICAL_ADDRESS type for physical address. * ntoskrnl/mm/virtual.c (MmPageOutVirtualMemory, MmNotPresentFaultVirtualMemory, MmFreeVirtualMemoryPage): Changes to use PHYSICAL_ADDRESS type for physical address. * ntoskrnl/mm/wset.c (MmTrimUserMemory): Changes to use PHYSICAL_ADDRESS type for physical address. * ntoskrnl/mm/page.c (Mmi386ReleaseMmInfo, MmCopyMmInfo, MmGetPhysicalAddressForProcess, MmCreateVirtualMapping, MmCreateVirtualMappingUnsafe, MmCreateVirtualMappingForProcess, MmDeleteVirtualMapping): Changes to use PHYSICAL_ADDRESS type for physical address. * ntoskrnl/ps/process (PsInitProcessManagment): Changes to use PHYSICAL_ADDRESS type for physical address. * ntoskrnl/ps/thread.c (PsAllocateCallbackStack): Changes to use PHYSICAL_ADDRESS type for physical address. 2002-06-04 David Welch * Lots of change since the ChangeLog was last updated. 2001-03-18 David Welch * ntoskrnl/ke/apc.c (KiDeliverApc): Bug fix. * ntoskrnl/ke/apc.c (KeInsertQueueApc): More comments. * ntoskrnl/ke/catch.c (KiDispatchException): Bug fix. * ntoskrnl/ke/timer.c (KeDelayExecutionThread): Don't use removed function KeAddTimeoutThread. * ntoskrnl/ke/timer.c (KeAddTimeoutThread): Removed. * ntoskrnl/ke/wait.c (KeWaitForSingleObject, KeWaitForMultipleObjects): Don't use KeAddTimeoutThread. * ntoskrnl/mm/freelist.c (MmAllocateContiguousAlignedMemory): Bug fix * ntoskrnl/mm/freelist.c (MmAllocatePage): Allocate from the top memory. 2001-03-17 David Welch * ntoskrnl/ke/catch.c (KiDispatchException): Implementation of exception handling, user-mode only. 2001-03-16 David Welch * include/ddk/zw.h: Corrected declarations of NtCreateProfile, NtQueryIntervalProfile, NtSetIntervalProfile. * include/ddk/zwtypes.h: Added definitions of KPROFILE_SOURCE. * ntoskrnl/include/internal/ke.h: Added the interrupted EIP as a parameter to KiUpdateSystemTime for profiling purposes. * ntoskrnl/include/internal/nt: Added declaration for profiling support initialization. * ntoskrnl/ke/timer.c (KiUpdateSystemTime, KeExpireTimers): Call the profiling code on a timer interrupt with the interrupt EIP. * ntoskrnl/ke/i386/irq.c (KiDispatchInterrupt): Pass the interrupted EIP to KiUpdateSystemTime. * ntoskrnl/mm/virtual.c (NtReadVirtualMemory, NtWriteVirtualMemory): Release the MDLs used properly. * ntoskrnl/nt/nt.c: Call the profiling support initialization. * ntoskrnl/nt/ntevent.c (NtCreateEvent): Don't try copying the ObjectAttributes parameter if it is NULL. * ntoskrnl/nt/profile.c: Implemented profiling. 2001-03-16 David Welch * ntoskrnl/include/internal/safe.h: Corrected typo. * ntoskrnl/nt/ntevent.c (NtCreateEvent, NtOpenEvent, NtQueryEvent): Corrected typos. * ntoskrnl/rtl/mem.c: Missing header file. 2001-03-16 David Welch * ntoskrnl/include/internal/safe.h: Add definitions for handling potentially unsafe pointers. 2001-03-16 David Welch * ntoskrnl/include/internal/mm.h: Removed MmSafeCopyToUser and MmSafeCopyFromUser as source files need these but don't want internal mm definitions. * ntoskrnl/nt/ntevent.c (NtCreateEvent, NtOpenEvent, NtPulseEvent, NtQueryEvent, NtResetEvent, NtSetEvent): Copy data to and from user mode safely. * ntoskrnl/rtl/mem.c (MmCopyToCaller, MmCopyFromCaller): Helper functions for copying data to and from potentially unsafe pointers. 2000-12-23 David Welch * All task switching is done in software. * Beginnings of v86 mode support. 2000-12-22 David Welch * ntoskrnl/ps/kill.c (PiTerminateProcessThreads): Drop PiThreadListLock before calling PsTerminateOtherThread 2000-12-16 David Welch * ntoskrnl/ex/fmutex.c (ExReleaseFastMutexUnsafe): Only set the fast mutex's owner back to NULL if it is being released 2000-12-10 David Welch * ntoskrnl/ke/i386/vm86_sup.S (Ki386RetToV86Mode): Added function to do the raw switch to v86 mode. * ntoskrnl/include/internal/vm86.h: Definitions for the v86 mode support. 2000-12-10 David Welch * ntoskrnl/ke/i386/trap.s (PsBeginThreadWithContextInternal): Moved to ntoskrnl/ke/i386/bswitch.S. * ntoskrnl/ke/i386/trap.s (interrupt_handler2e): Moved to ntoskrnl/ke/i386/syscall.S. * ntoskrnl/ke/i386/trap.s (old_interrupt_handler2e): Removed. 2000-12-04 David Welch * ntoskrnl/ke/i386/irq.c (KiInterruptDispatch): Record the last PC value for a rescheduled thread. * ntoskrnl/ke/i386/irqhand.s: Construct a primitive trap frame in interrupt handlers. 2000-08-30 David Welch * Added calibration of KeStallExecutionProcessor timing (code from linux 2.2.16). * Corrected compilation bugs in user32 library. * Corrected compilation bugs related to anonymous structs in ndis code. * Pass command line to kernel from loadros. * Corrected PIC mask calculation. 2000-05-27 David Welch * Fixed issue with closing non-existent or already closed handle. 2000-01-26 David Welch * ZwCreateProcess now maps ntdll rather than the user-mode code. 1999-09-06 David Welch * Implemented ZwOpenProcess. * Partially implemented killing other threads (possible memory leaks). * Made a start on a proper implemention of APCs (based on article in NT insider). 1998-12-08 David Welch * Corrected bug in shell (Read two keypresses and assumed they where the key going up and down respectively). * Corrected race in dpc handling. * Took out cleanup sections in ZwReadFile (now handled by the APC). * Disabled broken code in kernel32.