- Open a file in FatiOpenExistingFile by means of FullFAT library.
- Fix incorrect fullfat placement in fasfat.rbuild.
- Hack StreamFileObject to be 5Gb in length instead of 512 bytes. It'll be set to the size of an underlying physical device later.
- Add FF file handle to FCB structure.
svn path=/trunk/; revision=43247
- Add simple and hacky spinlock implementation to HAL and kernel. It treats queued spinlocks as normal spinlocks and does not support debug timeout, but works well enough to expose bugs in spinlock usage.
- Implement KiProcessDeferredReadyList, a simple wrapper around KiDeferredReadyThread.
- Add missing PRCB locking in KiDeferredReadyThread.
- Implement SMP handling in KiRetireDpcList.
- Acquire the spinlock in KeSynchronizeExecution for SMP.
- Stub and export Kii386SpinOnSpinLock -- not used yet.
- Fix locking in KiAcquire/ReleaseDispatcherLockAtDpcLevel -- KeAcquireQueuedSpinLockAtDpcLevel takes the lock queue pointer, not the index.
- "Implement" KiRundownThread for SMP.
- Fix some sanity checks in the SMP context switch code and implement a stubbed SMP case.
- Define SYNCH_LEVEL in asm.h and use it in HAL's KeRaiseIrqlToSynchLevel.
To try the MP kernel on UP (it does not work on multiple processors yet) compile ntkrnlmp, rename it to ntoskrnl and add it to your installation. This requires a HAL with CONFIG_SMP enabled in HAL's spinlock.c and irq.S. Booting with the MP kernel does not work because of a weird regression introduced sometime in the last few months -- it appears MmProbeAndLockPages fails for a user mode stack pointer (no, I have no idea why).
svn path=/trunk/; revision=43244
- Add missing PFN locking to MmFreePagesFromMdl and MiAllocatePoolPages.
- Get rid of MmLockPageUnsafe and MmReferencePageUnsafe. The "safe" routines just forwarded to the unsafe versions -- call them directly instead. Remove unused MmAcquirePageListLock/MmReleasePageListLock.
svn path=/trunk/; revision=43240
- Partially implement a codepath for opening an existing file.
- Implement simple FCB and CCB creation.
- Correctly set FILE_OBJECT fields.
- Allocate space for SECTION_POINTERS.
- Implement some misc in FatQueryInformation.
- The driver goes up to getting a read request for ntdll.dll.
svn path=/trunk/; revision=43239
- Remove _SEH_NO_NATIVE_NLG from msvcrt.rbuild, deprecated long ago.
- Get rid of __NO_CTYPE_INLINES for everything but host tools, deprecated since revision 38052.
- Deprecate and remove _DISABLE_TIDENTS.
svn path=/trunk/; revision=43234
- code ported (rearranged, simplified, fixed memory leaks, removed unneeded variables) from Mesa3D glDirect driver (c) SciTech Software, Inc
- more work needed but 3D text screen saver finally renders at least something
svn path=/trunk/; revision=43232
- Implement WdmAudGetLineInfo for MIXER_GETLINEINFOF_LINEID
- Add a hack for WdmAudGetLineControls for MIXER_GETLINECONTROLSF_ONEBYTYPE
svn path=/trunk/; revision=43231
- Add directory path parsing which tries to find existing FCBs for path names.
- Add a framework for creating DCBs during path dissection. Currently just prints out path names.
- Cleanup fcb.c, Alexey Vlasov's version was great, but it is a bit different from what I want to implement now.
svn path=/trunk/; revision=43225
- Remove all malloc/free usage in the library and substitute them by user-provided FF_Malloc and FF_Free functions.
- Cleanup fullfat.rbuild.
svn path=/trunk/; revision=43221
Prepare sddkver.h for mingw-w64 import:
- Point out the fact that the header is in the public domain.
- Add some missing stuff, including a NTDDI_VERSION sanity check.
- Format fixes, add some comments
svn path=/trunk/; revision=43205
- Add an internal routine for opening root DCB (a stub for now).
- Add code for checking if this is a relative or absolute open. Start implementing absolute opening part.
svn path=/trunk/; revision=43203
- Fix wrong comment in FatiCreate, spotted by Ged Murphy.
- Add some parameters validation to FatiCreate, and a check for volume open request.
- Add node types and a decoding routine.
- Implement VCB locking/unlocking.
svn path=/trunk/; revision=43202
- Start implementing one of the most massive IFS driver routines - IRP_MJ_CREATE handler. Right now it just does some preliminary work, deciphers all options, prepares all variables, prints out debug stuff.
svn path=/trunk/; revision=43199