2003-04-28  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* include/kernel32/kernel32.h (assert): Define.
	* tools/mkhive/.cvsignore: New file.

2003-04-18  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* tools/Makefile: Fix rule for mkflpimg.

2003-04-12  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* lib/freetype/.cvsignore: Ignore nul.

2003-04-06  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* tools/.cvsignore: Ignore rline.

2003-04-05  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* ntoskrnl/ex/sysinfo.c (SystemProcessInformation): Fix warning.

2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* include/defines.h (VS_FFI_SIGNATURE, VS_FFI_STRUCVERSION): Define.

2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* ntoskrnl/ke/i386/exp.c (KiKernelTrapHandler): Use exception code
	STATUS_ACCESS_VIOLATION for exception 14.

2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* ntoskrnl/fs/util.c (FsRtlGetFileSize): Implement.

2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* include/ntos/types.h (FALSE): Protect with #ifndef FALSE.
	(TRUE): Protect with #ifndef TRUE.

2003-03-16  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* include/ddk/pstypes.h (TLS_OUT_OF_INDEXES): Define.

2003-02-18  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* ntoskrnl/cm/regfile.c (CmiRemoveSubKey): Kill warnings.
	(CmiMergeFree): Ditto.

2003-02-10  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* ntoskrnl/dbg/profile.c (KdbProfilerThreadMain): Make STDCALL.

2003-01-15  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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 <k32.h>.
	* 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  <chorns@users.sourceforge.net>

	* apps/testsets/Makefile (TEST_SETS): Remove ldr.
	* include/msvcrt/ctype.h (towupper): Make returntype wchar_t.

2003-01-15  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* tools/rtouch.c: Include <sys/utime.h>, not <utime.h>.

2003-01-15  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* ntoskrnl/dbg/profile.c: New file.
	* ntoskrnl/Makefile (OBJECTS_KDBG): Add dbg/profile.o.
	* ntoskrnl/dbg/kdb.h: Define NTOS_MODE_KERNEL. Include <ntos.h>.
	(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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* boot.bat: Use DOS end-of-line characters.

2003-01-02  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <RickG81@Wanadoo.nl>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* lib/ntdll/string/ctype.c: Undefine __MSVCRT__ to not have mingw
	runtime import _pctype.

2002-09-30  Casper S. Hornstrup  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* ntoskrnl/cc/view.c (alloca): Prototype.
	* ntoskrnl/rtl/ctype.c: Undefine __MSVCRT__ to not have mingw runtime
	import _pctype.

2002-08-26  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* ntoskrnl/ps/process.c (NtCreateProcess): Reference the
	parent process's handle using ExGetPreviousMode.

2002-08-26  David Welch  <welch@computer2.darkstar.org>

	* lib/user32/misc/dllmain.c (Init): Initialize gdi32 as well.

2002-08-26  David Welch  <welch@computer2.darkstar.org>

	* iface/addsys/genw32k.c (main, process): Generate a set of
	stubs for csrss as well.

2002-08-26  David Welch  <welch@computer2.darkstar.org>

	* lib/kernel32/process/create.c (CreateProcessW): Initialize
	all the members of the new process's PPB.

2002-08-17  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/rmap.c (MmWritePagePhysicalAddress): Ensure the
	process isn't freed in the middle of our operations.

2002-08-17  David Welch  <welch@computer2.darkstar.org>

	* drivers/fs/vfat/finfo.c (VfatSetAllocationSizeInformation): Fixed.

2002-08-17  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/ps/create.c (PiDeleteThread): Don't dereference
	the thread's process while holding the thread list lock.

2002-08-17  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/mpw.c (MmInitMpwThread): Run the MPW thread at
	idle priority.

2002-08-17  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* drivers/lib/zlib/Makefile: Create a dummy zlib.sym

2002-08-16  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/npool.c (ExAllocateWholePageBlock): Converted
	to use PHYSICAL_ADDRESS type for page address.

2002-08-16  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* lib/advapi32/misc/dllmain.c (DllMain): Removed debug message.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* subsys/smss/init.c (SmPagingFilesQueryRoutine): If possible
	take the size of the paging file from the registry.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/section.c (MmCreateDataFileSection): Extend the
	section if necessary.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/pagefile.c (NtCreatePagingFile): Set the file
	size using the FileAllocationInformation class.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* ntoskrnl/ldr/loader.c (LdrPEProcessModule): Set name of
	the module into the module text structure.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* ntoskrnl/cc/view.c (CcRosSuggestFreeCacheSegment): Maintain the
	correct reference count.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* include/ntos/mm.h: Added SEC_XXXX defines from 'Windows NT/2000
	Native API Reference'

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* drivers/fs/vfat/ea.c (VfatSetExtendedAttributes): Empty
	placeholder for extended attribute functions.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* drivers/fs/vfat/finfo.c (VfatSetAllocationSizeInformation):
	Added function to set allocation size.

2002-08-14  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* apps/tests/sectest/sectest.c (main): Fixed formatting.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/i386/page.c (MmSetPageProtect): Fixed
	behaviour when called on the system address space.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/anonmem.c: Moved functions relating to
	areas created with NtAllocateVirtualMemory to a 
	seperate file.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/section.c (MmQuerySectionView): Implemented
	NtQueryVirtualMemory for section views.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/section.c (MmAccessFaultSectionView,
	MmNotPresentFaultSectionView, MmProtectSectionView,
	MmMapViewOfSegment, MmAlterViewAttributes): Implemented 
	NtProtectVirtualMemory for section views.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/ke/main.c: Removed SEH test code.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* lib/ntdll/ldr/utils.c (LdrFixupImports): Remove the readonly
	protection from the IAT before writing to it.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* lib/ntdll/ldr/utils.c (LdrAdjustDllName): Properly null terminate
	the base name of the DLL.

2002-08-10  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/ldr/loader.c (LdrPEProcessModule): Set the text segment
	of modules to readonly after loading.

2002-08-09  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* ntoskrnl/ke/i386/usertrap.c (print_user_address): Copy
	the LDR variable from the right address.

2002-08-09  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* apps/tests/thread/thread.c (main): Test suspend and
	resume functionality.

2002-08-08  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/mm/section (NtQuerySection): Return the
	right result length.

2002-08-08  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* ntoskrnl/ke/apc.c (KiDeliverUserApc): Deliver all present
	APCs; release the APC spinlock while acccessing user memory.

2002-08-08  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* 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  <chorns@users.sourceforge.net>

	* 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  <chorns@users.sourceforge.net>

	* Makefile (install_before): Install system.hiv to correct location.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* ntoskrnl/ps/process.c (NtCreateProcess): Duplicate the
	process desktop handle as well.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* ntoskrnl/se/token.c: Don't call the ZwXXX variant of
	system calls when in system context.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* lib/user32/windows/defwnd.c: Implemented some more of the
	default window handler.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* lib/user32/misc/stubs.c: Removed some stubs to seperate files.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* lib/user32/user32.def: Export ScreenToClient otherwise we
	get problems when code in user32 tries to call it.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* include/win32k/region.h: Added prototypes for some missing
	region functions.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* include/win32k/ntuser.h: Added prototypes for some missing
	NtUserXXX functions.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* include/user32/wininternal.h: Added some constants for
	private GetDCEx styles that WINE needs.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* include/user32/callback.h: Fixed callbacks for messages with
	parameters.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* include/messages.h: Added some missing WM_XXX constants.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* drivers/dd/ide/makefile: Compiling with debugging messages
	needs libgcc to be linked in.

2002-07-04  David Welch  <welch@computer2.darkstar.org>

	* 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  <welch@computer2.darkstar.org>

	* Makefile: Build the GUI startup application.
	* subsys/system/gstart/gstart.c: Application to start up
	the GUI.

2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* tools/helper.mk: Make an import library a proper target
	depending on the .def file.

2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* subsys/win32k/ntuser/window.c (NtUserGetWindowLong): Began
	implementation.

2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* subsys/win32k/misc/object.c (ObmCreateHandle): Return the
	correct handle value.

2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* subsys/win32k/makefile: Make win32k depend on the file containing
	the service table. 

2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* 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  <welch@whitehall1-5.seh.ox.ac.uk>

	* lib/user32/windows/message.c (CallWindowProcA, CallWindowProcW):
	Convert message to Unicode or ASCII if necessary.

2002-06-18  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* 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  <welch@whitehall1-5.seh.ox.ac.uk>

	* include/structs.h: Added Unicode and ASCII versions of
	CREATESTRUCT.

2002-06-16  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* tools/helper.mk: Make the install target depend on all the
	files to be installed.

2002-06-16  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* 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  <welch@whitehall1-5.seh.ox.ac.uk>

	* drivers/dd/null/makefile: Commented out local LDFLAGS as
	these cause bad relocations in the stripped image.

2002-06-16  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* config: Corrected spelling error.

2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* subsys/system/winlogon/winlogon.c (WinMain): Check for
	failure when creating a window system.

2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* 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  <welch@whitehall1-5.seh.ox.ac.uk>

	* 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  <welch@whitehall1-5.seh.ox.ac.uk>

	* 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  <welch@whitehall1-5.seh.ox.ac.uk>

	* lib/user32/misc/winsta.c: Cleaned up indentation.

2002-06-11  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>
	
	* apps/tests/winhello/winhello.c (WinMain, MainWndProc):
	Cleaned up formatting, some more error checks.

2002-06-04  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* ntoskrnl/mm/virtual.c (MmSecureVirtualMemory,
	MmUnsecureVirtualMemory, NtQueryVirtualMemory): Corrected indentation.

2002-06-04  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* ntoskrnl/ke/i386/exp.c (KiDoubleFaultHandler): Print CR3
	correctly.

2002-06-04  David Welch  <welch@whitehall1-5.seh.ox.ac.uk>

	* 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  <welch@cwcom.net>

	* 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  <welch@cwcom.net>

	* Lots of change since the ChangeLog was last updated.

2001-03-18  David Welch  <welch@cwcom.net>

	* 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  <welch@cwcom.net>

	* ntoskrnl/ke/catch.c (KiDispatchException): Implementation of
	exception handling, user-mode only.

2001-03-16  David Welch  <welch@cwcom.net>

	* 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  <welch@cwcom.net>

	* 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  <welch@cwcom.net>

	* ntoskrnl/include/internal/safe.h: Add definitions for handling
	potentially unsafe pointers.

2001-03-16  David Welch  <welch@cwcom.net>

	* 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  <welch@cwcom.net>

	* All task switching is done in software.
	* Beginnings of v86 mode support.

2000-12-22  David Welch  <welch@cwcom.net>

	* ntoskrnl/ps/kill.c (PiTerminateProcessThreads): Drop 
	PiThreadListLock before calling PsTerminateOtherThread

2000-12-16  David Welch  <welch@cwcom.net>

	* 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  <welch@cwcom.net>

	* 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  <welch@cwcom.net>

	* 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  <welch@cwcom.net>

	* 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  <welch@cwcom.net>

	* 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 <welch@cwcom.net>

        * Fixed issue with closing non-existent or already closed
          handle.

2000-01-26  David Welch <welch@cwcom.net>

        * ZwCreateProcess now maps ntdll rather than the user-mode
          code.

1999-09-06  David Welch <welch@cwcom.net>

        * 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 <welch@cwcom.net>

        * 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.









	
