X-Git-Url: http://git.jankratochvil.net/?p=reactos.git;a=blobdiff_plain;f=ChangeLog;h=e337dd6dbb409a621712f40fe40716cbecc64e6e;hp=b6b70151e38ec1945c83c09225dd32e712d1bf3b;hb=e0f734ac7c51af60fef5d0a0639cf63c175f91e9;hpb=a4f1ab830f1a18c3a31174cd6974d65119c58189 diff --git a/ChangeLog b/ChangeLog index b6b7015..e337dd6 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,1113 +1,1705 @@ -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. - - - - - - - - - - +2003-04-28 Casper S. Hornstrup + + * Makefile (DLLS): Add epsapi, psapi and wsock32. + * lib/ntdll/ldr/utils.c (LdrPerformRelocations): Handle the case where a + relocation crosses a page boundary. + (LdrFixupImports): Use image load address in calculatation of import + address list. + +2003-04-28 Casper S. Hornstrup + + * lib/fslib/vfatlib/vfatlib.h: New file. + * subsys/system/usetup/format.c: Ditto. + * subsys/system/usetup/format.h: Ditto. + * lib/fslib/vfatlib/vfatlib.c (GetShiftCount): Define. + (VfatWriteBootSector, VfatWriteFsInfo, VfatWriteFAT, + VfatWriteRootDirectory): New function. + (VfatFormat): Implement. + * subsys/system/usetup/bootsup.c: (InstallFat32BootCodeToFile): Use + 0x0000 as marker to disable backup boot sector. + (InstallFat32BootCodeToDisk): Add lower 8-bit to BackupBootSector. + Also treat 0x0000 as no backup boot sector is available. + * subsys/system/usetup/makefile (TARGET_SDKLIBS): Define. + (TARGET_OBJECTS): Add format.o. + * subsys/system/usetup/partlist.c (AddPartitionList): Initialize + PartNumber field. + (GetSelectedPartition): Set PartEntryNumber correctly. + (CreateSelectedPartition): Write partition information to disk. + (DeleteSelectedPartition): New function. + * subsys/system/usetup/partlist.h (PARTDATA): Add field CreatePartition. + (DeleteSelectedPartition): Prototype. + * subsys/system/usetup/usetup.c (ConfirmDeletePartition): New function. + (SelectPartitionPage): Support deletion of partition. + (FormatPartitionPage): Support formatting of partition. + +2003-04-27 Casper S. Hornstrup + + * tools/helper.mk (TARGET_ASFLAGS): Add -march and define MK_ARCH_ID. + * lib/ntdll/makefile (TARGET_ASFLAGS): Define as + "-I $(PATH_TO_TOP)/include". + (TARGET_OBJECTS): Add ldr/entry.o. + * lib/ntdll/ldr/startup.c: Move inline assembly code... + * lib/ntdll/ldr/entry.S: ...here. New file. + +2003-04-27 Casper S. Hornstrup + + * include/kernel32/kernel32.h (assert): Define. + * tools/mkhive/.cvsignore: New file. + +2003-04-18 Casper S. Hornstrup + + * subsys/system/usetup/partlist.c (AddPartitionList): Create + unpartitioned areas. + (CreatePartitionListNoGUI): Save disk geometry. + (PrintDiskData): Do not print hidden partition list entries. + (ScrollDownPartitionList, ScrollUpPartitionList): Skip hidden partition + list entries. + (GetActiveBootPartition): Use CurrentDisk as index. + (CreateSelectedPartition): New function. + * subsys/system/usetup/partlist.h (PARTDATA): Add field NewPartSize. + (PARTENTRY): Add fields StartingOffset and HidePartEntry. + (DISKENTRY): Add fields Cylinders, TracksPerCylinder, SectorsPerTrack, + and BytesPerSector; + (CreateSelectedPartition): Add Prototype. + * subsys/system/usetup/usetup.c (PAGE_NUMBER): Add CREATE_PARTITION_PAGE + and FORMAT_PARTITION_PAGE + (CurrentPartitionList, CurrentFileSystemList): New globals. + (SelectPartitionPage): Set CurrentPartitionList. + (PARTITION_SIZE_INPUT_FIELD_LENGTH): Define as 6. + (DrawInputField, ShowPartitionSizeInputBox, CreatePartitionPage, + CreateFileSystemList, DestroyFileSystemList, DrawFileSystemList, + ScrollDownFileSystemList, ScrollUpFileSystemList, FormatPartitionPage): + New functions. + (SelectFileSystemPage): Draw partition screen. + (CheckFileSystemPage): Handle CREATE_PARTITION_PAGE and + FORMAT_PARTITION_PAGE. + * subsys/system/usetup/usetup.h (FILE_SYSTEM, FILE_SYSTEM_LIST): Add enums. + +2003-04-17 Casper S. Hornstrup + + * tools/mkhive/infcache.c (InfpCacheFindSection, InfpCacheFindKeyLine, + InfFindFirstLine, InfFindFirstMatchLine, InfFindNextMatchLine, + InfGetLineCount): Change call to stricmp() to strcasecmp(). + * tools/mkhive/reginf.c (GetRootKey): Ditto. + * tools/mkhive/registry.c (RegSetValue, RegQueryValue): Ditto. + +2003-04-13 Casper S. Hornstrup + + * ntoskrnl/kd/gdbstub.c (KdEnterDebuggerException): Fix signed/unsigned + comparison warning. + * ntoskrnl/ke/i386/exp.c (KiKernelTrapHandler): Ditto. + * ntoskrnl/ke/i386/usertrap.c (KiUserTrapHandler): Ditto. + * tools/helper.mk: Do not install static libraries. + +2003-04-13 Casper S. Hornstrup + + * tools/Makefile: Fix rule for mkflpimg. + +2003-04-12 Casper S. Hornstrup + + * tools/cdmake/Makefile: Use HOST_CC. + * tools/cdmake/cdmake.c (MAX_PATH, DIR_SEPARATOR_CHAR, + DIR_SEPARATOR_STRING): Define. + (directory_record): Add fields name_on_cd and extension_on_cd. + (error_exit): Make a macro. Avoid using vfprintf and fprintf. + (write_directory_record, new_directory_record, compare_directory_order, + pass): Use name_on_cd and extension_on_cd. + (make_directory_records, get_file_specifications): Use DIR_SEPARATOR_CHAR. + (new_directory_record, make_directory_records): Linux implementations. + (main): Use DIR_SEPARATOR_CHAR. + +2003-04-06 Casper S. Hornstrup + + * lib/freetype/.cvsignore: Ignore nul. + +2003-04-06 Casper S. Hornstrup + + * drivers/storage/atapi/atapi.c (AtapiReadWrite): Expect an interrupt a + bit sooner. + * hal/halx86/isa.c (HalpGetIsaInterruptVector): Compute vector for MP. + * hal/halx86/pci.c (HalpGetPciInterruptVector): Ditto. + * hal/halx86/sysbus.c (HalpGetSystemInterruptVector): Ditto. + * hal/halx86/mp.c (AssignIrqVector): Rewrite. + (MpsTimerHandler): Disable for now. + (MpsSpuriousHandler): Do not acknowledge interrupt. + (HalAllProcessorsStarted): Only boot 1 CPU for now. + (RescheduleDpcRoutine): New function. + (RescheduleDpc): New variable. + (HalpInitMPS): Initialize RescheduleDpc. Fix bug in call to memset. + * hal/halx86/mpsirql.c: Rewrite. + * hal/halx86/include/mps.h (VECTOR2IRQ, IRQ2VECTOR, VECTOR2IRQL, + IRQL2VECTOR): New macros. + * ntoskrnl/ntoskrnl.def: Add KeRescheduleThread@0. + * ntoskrnl/ntoskrnl.edf: Ditto. + * ntoskrnl/include/internal/ke.h (KeRescheduleThread): Prototype. + * ntoskrnl/ke/kthread.c (KeRescheduleThread): New function. + * ntoskrnl/ke/i386/exp.c (KeInitExceptions): Remove unneeded call to + set_trap_gate(). + * ntoskrnl/ke/i386/irq.c (VECTOR2IRQ, IRQ2VECTOR, VECTOR2IRQL): Correct. + (IRQ_BASE): Define as FIRST_DEVICE_VECTOR. + (NR_IRQS): Define using IRQ_BASE. + (KeInitInterrupts): Use IRQ_BASE. + (KiInterruptDispatch2): Rewrite. + (KiInterruptDispatch): Ditto. + (KeConnectInterrupt): Pass Vector to HalEnableSystemInterrupt() for MP. + (KeDisconnectInterrupt): Pass Vector to HalDisableSystemInterrupt() for MP. + * ntoskrnl/ke/i386/trap.s (_KiTrapProlog): Change 0x124 to KPCR_CURRENT_THREAD. + +2003-04-06 Casper S. Hornstrup + + * Makefile: Add format. + * include/fslib/vfatlib.h (VfatFormat): Prototype. + * lib/fmifs/format.c (VfatFormat): Add stub. + * lib/fmifs/makefile (TARGET_LIBS): Add vfatlib.a. + * lib/fslib/vfatlib/vfatlib.c (VfatFormat): Add stub. + * tools/helper.mk: Do not install .sym files for static libraries. + * subsys/system/format: New directory. + * subsys/system/format/makefile: New file. + * subsys/system/format/format.c: Ditto. + +2003-04-05 Casper S. Hornstrup + + * include/fslib: New directory. + * lib/fslib: Ditto. + * lib/fslib/vfatlib: Ditto. + * include/fslib/vfatlib.h: New file. + * lib/fslib/vfatlib/.cvsignore: Ditto. + * lib/fslib/vfatlib/Makefile: Ditto. + * lib/fslib/vfatlib/vfatlib.c: Ditto. + * Makefile: Support file system libraries + * lib/zlib/Makefile: Remove nostrip target. + * tools/helper.mk: Add nostrip target. + +2003-04-05 Casper S. Hornstrup + + * tools/.cvsignore: Ignore rline. + +2003-04-05 Casper S. Hornstrup + + * bootcd.bat: Install dosmbr.bin. + * drivers/storage/disk/disk.c (DiskClassDeviceControl): Pass physical + device object to IoWritePartitionTable(). + * ntoskrnl/io/xhaldrv.c (xHalReadMBR): New function. + (xHalWriteMBR): Ditto. + (xHalExamineMBR): Use xHalReadMBR() to read MBR. + (xHalIoWritePartitionTable): Partial implement. + * subsys/system/usetup/bootsup.c (InstallMBRBootCodeToDisk): New function. + * subsys/system/usetup/bootsup.h (InstallMBRBootCodeToDisk): Prototype. + * subsys/system/usetup/partlist.c (CreatePartitionListNoGUI): New function. + (CreatePartitionList): Use CreatePartitionListNoGUI() to create partition + list. + (GetPartitionInformation): New function. + (MarkPartitionActive): Ditto. + * subsys/system/usetup/partlist.h (MarkPartitionActive): Prototype. + * subsys/system/usetup/usetup.c (SelectPartitionPage): Make SystemRootPath + point to the selected partition if no partitions are active. + (BootLoaderPage): If no partitions are active, then install a DOS MBR and + mark the selected partition active. + +2003-04-05 Casper S. Hornstrup + + * Makefile: Add bootcd target. + (BOOTCD_INSTALL): Set for bootcd install. + * rules.mak (TOPDIR): Define on windows. + (BOOTCD_DIR): Define. + (RLINE): Define. + * apps/tests/lpc/makefile: Handle BOOTCD_INSTALL. + * apps/tests/mstest/Makefile: Ditto. + * apps/tests/nptest/Makefile: Ditto. + * apps/tests/shm/makefile: Ditto. + * ntoskrnl/Makefile: Handle BOOTCD_INSTALL. Add bootcd target. + * drivers/dd/vga/makefile: Add bootcd target. + * drivers/dd/blue/makefile (TARGET_BOOTSTRAP): Define as yes. + * drivers/dd/floppy/Makefile: Ditto. + * drivers/fs/cdfs/makefile: Ditto. + * drivers/fs/ntfs/makefile: Ditto. + * drivers/fs/vfat/makefile: Ditto. + * drivers/input/keyboard/makefile: Ditto. + * drivers/storage/atapi/makefile: Ditto. + * drivers/storage/cdrom/makefile: Ditto. + * drivers/storage/class2/makefile: Ditto. + * drivers/storage/disk/makefile: Ditto. + * drivers/storage/scsiport/makefile: Ditto. + * hal/halx86/Makefile: Ditto. + * lib/ntdll/makefile: Ditto. + * subsys/system/usetup/makefile (TARGET_BOOTSTRAP): Define as yes. + (TARGET_BOOTSTRAP_NAME): Define as smss.exe. + * tools/Makefile: Add rline executable. + * tools/helper.mk: Support bootcd targets. + * tools/rline.c: New file. + +2003-04-04 Casper S. Hornstrup + + * lib/freetype/builds/compiler/gcc.mk (CC): Comment out; use CC from + rules.mak instead. + * lib/freetype/README.ROS: Note this in porting guide. + +2003-03-29 Casper S. Hornstrup + + * ntoskrnl/ex/sysinfo.c (SystemProcessInformation): Fix warning. + +2003-03-16 Casper S. Hornstrup + + * include/ntos/rtltypes.h (PRTL_BASE_PROCESS_START_ROUTINE): Define. + * lib/kernel32/process/create.c (RtlBaseProcessStartRoutine): Import. + (KlCreateFirstThread): Support images with native subsystem ID. + * lib/ntdll/def/ntdll.def (RtlBaseProcessStartRoutine): Export. + * lib/ntdll/def/ntdll.edf (RtlBaseProcessStartRoutine): Ditto. + * lib/ntdll/rtl/exception.c (RtlBaseProcessStart): Forward declare. + (RtlBaseProcessStartRoutine, RtlBaseProcessStart): Add. + +2003-03-16 Casper S. Hornstrup + + * include/defines.h (VS_FFI_SIGNATURE, VS_FFI_STRUCVERSION): Define. + +2003-03-16 Casper S. Hornstrup + + * ntoskrnl/ke/i386/exp.c (KiKernelTrapHandler): Use exception code + STATUS_ACCESS_VIOLATION for exception 14. + +2003-03-16 Casper S. Hornstrup + + * ntoskrnl/fs/util.c (FsRtlGetFileSize): Implement. + +2003-03-16 Casper S. Hornstrup + + * lib/ntdll/rtl/nls.c (RtlCustomCPToUnicodeN, RtlMultiByteToUnicodeN, + RtlOemToUnicodeN, RtlUnicodeToCustomCPN, RtlUnicodeToMultiByteN, + RtlUnicodeToMultiByteSize, RtlUnicodeToOemN, + RtlUpcaseUnicodeToCustomCPN, RtlUpcaseUnicodeToMultiByteN, + RtlUpcaseUnicodeToOemN): Assert when unimplemented code is reached. + +2003-03-16 Casper S. Hornstrup + + * include/ntos/zwtypes.h (FILE_BASIC_INFORMATION): Use LARGE_INTEGER, + not TIME type for time fields. + * lib/kernel32/file/copy.c (SetLastWriteTime): Adjust for new type. + (CopyFileExW): Ditto. + +2003-03-16 Casper S. Hornstrup + + * include/ntos/types.h (FALSE): Protect with #ifndef FALSE. + (TRUE): Protect with #ifndef TRUE. + +2003-03-16 Casper S. Hornstrup + + * include/napi/i386/segment.h (put_user, get_user, + bad_user_access_length, __segment_dummy, __sd, __const_sd, __put_user, + __get_user, __generic_memcpy_tofs, __constant_memcpy_tofs, COMMON, + __generic_memcpy_fromfs, __constant_memcpy_fromfs, memcpy_fromfs, + memcpy_tofs, get_fs_byte, get_fs_word, get_fs_long, put_fs_byte, + put_fs_word, put_fs_long, get_user_word, get_user_byte, get_user_long, + put_user_byte, put_user_word, put_user_long, get_fs, get_ds, set_fs, + set_ds): Remove. + +2003-03-16 Casper S. Hornstrup + + * include/ddk/pstypes.h (TLS_OUT_OF_INDEXES): Define. + +2003-02-18 Casper S. Hornstrup + + * ntoskrnl/cc/view.c (CcRosFlushDirtyPages): Treat a write attempt with + a return value of STATUS_END_OF_FILE as a successful write. + * ntoskrnl/cc/copy.c (WriteCacheSegment): Ditto. + +2003-02-18 Casper S. Hornstrup + + * ntoskrnl/cm/regfile.c (CmiRemoveSubKey): Kill warnings. + (CmiMergeFree): Ditto. + +2003-02-10 Casper S. Hornstrup + + * include/structs.h (OSVERSIONINFOEXA): Expand definition of + OSVERSIONINFOA. + (OSVERSIONINFOEXW): Expand definition of OSVERSIONINFOW. + * lib/msafd/misc/helpers.c (LocateHelperDLL): Cast AddressFamily, + SocketType, and Protocol to INT. + * lib/ws2_32/misc/catalog.c (LocateProvider): Ditto. + +2003-01-16 Casper S. Hornstrup + + * ntoskrnl/dbg/profile.c (KdbProfilerThreadMain): Make STDCALL. + +2003-01-15 Casper S. Hornstrup + + * drivers/net/tcpip/makefile (TCP_OBJECTS): Add transport/tcp/tcpcore.o, + transport/tcp/tcp_input.o, transport/tcp/tcp_ipv4.o, + transport/tcp/tcp_output.o, and transport/tcp/tcp_timer.o. + * drivers/net/tcpip/transport/tcp/tcp.c (TCPStartup): Call tcp_init(). + * drivers/net/tcpip/include/linux.h: New file. + * drivers/net/tcpip/include/tcpcore.h: Ditto. + * drivers/net/tcpip/include/tcpdef.h: Ditto. + * drivers/net/tcpip/transport/tcp/tcp_input.c: Ditto. + * drivers/net/tcpip/transport/tcp/tcp_ipv4.c: Ditto. + * drivers/net/tcpip/transport/tcp/tcp_output.c: Ditto. + * drivers/net/tcpip/transport/tcp/tcp_timer.c: Ditto. + * drivers/net/tcpip/transport/tcp/tcpcore.c: Ditto. + +2003-01-15 Casper S. Hornstrup + + * lib/kernel32/k32.h: New file. + * lib/kernel32/makefile (TARGET_CFLAGS): Add -I./. + (TARGET_PCH): Set to k32.h. + * lib/kernel32/except/except.c: Use . + * lib/kernel32/file/backup.c: Ditto. + * lib/kernel32/file/cnotify.c: Ditto. + * lib/kernel32/file/copy.c: Ditto. + * lib/kernel32/file/create.c: Ditto. + * lib/kernel32/file/curdir.c: Ditto. + * lib/kernel32/file/delete.c: Ditto. + * lib/kernel32/file/deviceio.c: Ditto. + * lib/kernel32/file/dir.c: Ditto. + * lib/kernel32/file/dosdev.c: Ditto. + * lib/kernel32/file/file.c: Ditto. + * lib/kernel32/file/find.c: Ditto. + * lib/kernel32/file/iocompl.c: Ditto. + * lib/kernel32/file/lfile.c: Ditto. + * lib/kernel32/file/lock.c: Ditto. + * lib/kernel32/file/mailslot.c: Ditto. + * lib/kernel32/file/move.c: Ditto. + * lib/kernel32/file/npipe.c: Ditto. + * lib/kernel32/file/pipe.c: Ditto. + * lib/kernel32/file/rw.c: Ditto. + * lib/kernel32/file/tape.c: Ditto. + * lib/kernel32/file/volume.c: Ditto. + * lib/kernel32/mem/global.c: Ditto. + * lib/kernel32/mem/heap.c: Ditto. + * lib/kernel32/mem/isbad.c: Ditto. + * lib/kernel32/mem/local.c: Ditto. + * lib/kernel32/mem/procmem.c: Ditto. + * lib/kernel32/mem/section.c: Ditto. + * lib/kernel32/mem/virtual.c: Ditto. + * lib/kernel32/misc/atom.c: Ditto. + * lib/kernel32/misc/comm.c: Ditto. + * lib/kernel32/misc/console.c: Ditto. + * lib/kernel32/misc/debug.c: Ditto. + * lib/kernel32/misc/dllmain.c: Ditto. + * lib/kernel32/misc/env.c: Ditto. + * lib/kernel32/misc/error.c: Ditto. + * lib/kernel32/misc/handle.c: Ditto. + * lib/kernel32/misc/ldr.c: Ditto. + * lib/kernel32/misc/profile.c: Ditto. + * lib/kernel32/misc/res.c: Ditto. + * lib/kernel32/misc/stubs.c: Ditto. + * lib/kernel32/misc/sysinfo.c: Ditto. + * lib/kernel32/misc/time.c: Ditto. + * lib/kernel32/process/cmdline.c: Ditto. + * lib/kernel32/process/create.c: Ditto. + * lib/kernel32/process/proc.c: Ditto. + * lib/kernel32/process/session.c: Ditto. + * lib/kernel32/string/lstring.c: Ditto. + * lib/kernel32/synch/critical.c: Ditto. + * lib/kernel32/synch/event.c: Ditto. + * lib/kernel32/synch/intrlck.c: Ditto. + * lib/kernel32/synch/mutex.c: Ditto. + * lib/kernel32/synch/sem.c: Ditto. + * lib/kernel32/synch/timer.c: Ditto. + * lib/kernel32/synch/wait.c: Ditto. + * lib/kernel32/thread/fiber.c: Ditto. + * lib/kernel32/thread/thread.c: Ditto. + * lib/kernel32/thread/tls.c: Ditto. + +2003-01-15 Casper S. Hornstrup + + * apps/testsets/Makefile (TEST_SETS): Remove ldr. + * include/msvcrt/ctype.h (towupper): Make returntype wchar_t. + +2003-01-15 Casper S. Hornstrup + + * tools/rtouch.c: Include , not . + +2003-01-15 Casper S. Hornstrup + + * tools/rtouch.c: New file. + * rules.mak (ROS_USE_PCH): Default to no. + (RTOUCH): Define. + * tools/Makefile: Add rtouch utility. + * tools/helper.mk: Support precompiled headers. + +2003-01-15 Casper S. Hornstrup + + * ntoskrnl/dbg/profile.c: New file. + * ntoskrnl/Makefile (OBJECTS_KDBG): Add dbg/profile.o. + * ntoskrnl/dbg/kdb.h: Define NTOS_MODE_KERNEL. Include . + (LdrGetAddressInformation, KdbInitProfiling, KdbInitProfiling2, + KdbDisableProfiling, KdbEnableProfiling, KdbProfileInterrupt) Prototype. + * ntoskrnl/kd/kdebug.c (KdInitSystem): Add /PROFILE option if KDBG=1. + * ntoskrnl/ke/main.c (ExpInitializeExecutive): Call KdbInitProfiling2() + if KDBG=1. + * ntoskrnl/ke/i386/irq.c: Include <../dbg/kdb.h> if KDBG=1. + (KiInterruptDispatch): Call KdbProfileInterrupt() on timer interrupt + if KDBG=1. + +2003-01-15 Casper S. Hornstrup + + * drivers/fs/vfat/create.c (VfatSupersedeFile): Only notify cache manager + about change in file size if caching is initiated on the file stream. + +2003-01-11 Casper S. Hornstrup + + * boot.bat: Use DOS end-of-line characters. + +2003-01-02 Casper S. Hornstrup + + * ntoskrnl/ke/timer.c (KeExpireTimers): Avoid signed/unsigned comparison + warning. + * lib/user32/controls/scrollbar.c (SCROLL_DrawScrollBar): Put a statement + at end. + +2002-12-15 Casper S. Hornstrup + + * drivers/fs/vfat/cleanup.c (VfatCleanupFile): Only uninitialize caching + when initialized. + * drivers/fs/vfat/fcb.c (vfatReleaseFCB): Ditto. + * lib/kernel32/mem/section.c (CreateFileMappingW): Pass NULL as + MaximumSize to NtCreateSection if dwMaximumSizeHigh and dwMaximumSizeLow + are both 0. + * ntoskrnl/cc/pin.c (CcMapData): Assert if Bcb is NULL. + * ntoskrnl/cc/view.c (CcRosReleaseCacheSegment, CcRosLookupCacheSegment, + CcRosMarkDirtyCacheSegment, CcRosUnmapCacheSegment, + CcRosCreateCacheSegment, CcRosGetCacheSegmentChain, + CcRosGetCacheSegment, CcRosRequestCacheSegment, CcFlushCache, + CcRosDeleteFileCache, CcRosReferenceCache, CcRosDereferenceCache, + CcRosReleaseFileCache, CcGetFileObjectFromSectionPtrs): Ditto. + * ntoskrnl/mm/section.c (MiReadPage): Assert if Fcb->Bcb is NULL. + (MmCreateDataFileSection): Make sure caching is initialized for the file + stream. + +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. + + + + + + + + + +