* 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.
svn path=/trunk/; revision=3331
* 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.
svn path=/trunk/; revision=3327
* 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.
svn path=/trunk/; revision=3324
* 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.
svn path=/trunk/; revision=3323
- EXT2/EXT3 file system support.
- Does not yet support symbolic links or booting from an EXT2/3 partition.
- Fixed bug in UI code.
- Added '%%' format specifier to printf()-like functions.
- Added functions __udivdi3 & __umoddi3 so that 64-bit division is now supported.
- Changed types BYTE, WORD, DWORD, LONG, ULONG to U8, U16, U32, S32, U32
so that you know the size of the variable across different
architectures with different sized words & dwords, etc.
- Types CHAR, UCHAR, PCHAR, PUCHAR, WCHAR, PWCHAR have not been
changed yet (I haven't decided exactly how I'm going to handle unicode)
(isn't this an awesome commit? ;-) Just look at that list of files)
svn path=/trunk/; revision=3318