[DDK]

- Use FORCEINLINE where appropriate

    • -1
    • +1
    /trunk/reactos/sdk/include/ddk/rxstruc.h
[CDFS]

- Reduce stack usage by manipulating UNICODE_STRINGS we are given instead of copying it a gazillion times

- Do not assume said strings are null-terminated

[KERNEL32_WINETEST]

- Guard page and ATL thunks tests work fine. Enable them.

ROSTESTS-155 #resolve

[NTOS/MM]

- Arch striking again : take everywhere into account the +1 offset introduced in r72988

CORE-12047

[NTOS/MM]

- Let the zero page thread decide itself whether it is active or not.

- Raise the low memory limit for our good old balancer

- Allow the balancer thread to wait for a page to be freed, with a lower limit than for "regular" page faults

- Let ARM3 notify RosMm when a page gets freed

CORE-12047 #comment Whole patch got in in r72988, 72989 and 72990

    • -21
    • +46
    /trunk/reactos/ntoskrnl/mm/balance.c
    • -2
    • +10
    /trunk/reactos/ntoskrnl/mm/ARM3/pfnlist.c
    • -0
    • +2
    /trunk/reactos/ntoskrnl/mm/ARM3/zeropage.c
[NTOS/MM]

Miscellaneous fixes for legacy Mm section implementation

- Always allocate a private page for IMAGE_SCN_CNT_UNINITIALIZED_DATA

- Make sure a shared page is present before writing on a COW mapping and making a private copy.

- Fix a race condition : when paging out a file section, old Mm lists all of the process maps, removing them one after the other and lowering the page reference count in the process. Sometimes a page fault occur in the process, the mapping is added, but the page refcount is not bumped because it requires locking the corresponding segment. Manage page refcount under segment lock.

CORE-12047

    • -106
    • +102
    /trunk/reactos/ntoskrnl/mm/section.c
[NTOS/MM]

- Do not allocate zeroed pagefile entries for legacy Mm

CORE-12047

[FASTFAT]

- Acquire Paging IO Resource shared when performing paged writes

Greenlighted by Pierre and tests.

CORE-12184 #resolve

[KDGDB]

- Fix a stupid typo, causing all threads to have the same backtrace.

    • -1
    • +0
    /trunk/reactos/drivers/base/kdgdb/i386_sup.c
[SDK/GCC_INTRIN]

- Update __invlpg instrinsic for x86_64 compatibility

[KDGDB]

- Better report kernel stack (real back traces for all threads!)

- Support reporting loaded libraries (== drivers, hal, etc.). You can even debug KDGDB inside KDGDB :-)

- A few improvements here and there

CORE-8531

    • -5
    • +7
    /trunk/reactos/drivers/base/kdgdb/kdpacket.c
    • -36
    • +46
    /trunk/reactos/drivers/base/kdgdb/i386_sup.c
    • -139
    • +197
    /trunk/reactos/drivers/base/kdgdb/gdb_input.c
    • -92
    • +122
    /trunk/reactos/drivers/base/kdgdb/gdb_send.c
    • -7
    • +13
    /trunk/reactos/drivers/base/kdgdb/kdgdb.h
[NTOS/MM]

- Shuffle parameter chacks in NtMapViewOfSection to make kmtest pass more of them

- Restore previously lost check on ZeroBits against 21. Use the architecture specific define

- Better check for ZeroBits and ViewSize

    • -22
    • +27
    /trunk/reactos/ntoskrnl/mm/ARM3/section.c
[WIN32SS/USER32]

- Do not mask exceptions from WndProc. If this makes programs crash, fine, fix it, but DON'T HIDE BUGS.

- Use a wrappper (like wine does) to handle procs with bad calling conventions

ROSTESTS-155 : Please retest, user32 got in the way and masked the exception handler the wine test installed

    • -0
    • +56
    /trunk/reactos/win32ss/user/user32/windows/wndproc_fixup.S
[NTOS/MM]

- Do not assert on transitions PTEs, we handle them just fine

ROSTESTS-155

    • -3
    • +2
    /trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c
[NTOS/MM]

- Properly chain events when reading a page from disk, aka don't wait on events allocated on the stack of another thread

- Use proper type pointers, compilers sometimes help making things right

    • -29
    • +41
    /trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c
[NTOS/MM]

- NtQuerySection : Add initial support for ARM3 sections

    • -41
    • +99
    /trunk/reactos/ntoskrnl/mm/section.c
[NTOS/MM]

- Addendum to r72472 : address nodes are not VADs for the base section AVL table

CORE-11900

    • -1
    • +1
    /trunk/reactos/ntoskrnl/mm/ARM3/vadnode.c
[NTOS/MM]

- Keep the control area as being created through the whole creation process in MmCreateArm3Section

- Use the segment length to find a suitable place for SEC_BASED sections

- Properly remove the global section node when deleting a based section

CORE-11900 #resolve

    • -32
    • +64
    /trunk/reactos/ntoskrnl/mm/ARM3/section.c
[NTOS/MM]

- Fix ZeroBits check in NtMapViewOfSection

- Implement handling MEM_DOS_LIM AllocationType

This fixes all but a few NtMapViewOfSection (due to some temp file not being removed) wine tests + tests from 72468

    • -21
    • +45
    /trunk/reactos/ntoskrnl/mm/ARM3/section.c
[NTDLL_APITEST]

- Add some tests which show how Windows handles the ZeroBits argument

[KDGDB]

- Add a ugly and grotesque hack to give "o" back to RtlAssert so that we actually break on ASSERTs

- Check for the breakpoint instruction for deciding when to move forward the ProgramCounter. This is OK since KD removes all breakpoints set when hitting a soft BP

    • -1
    • +1
    /trunk/reactos/drivers/base/kdgdb/gdb_input.c
    • -0
    • +2
    /trunk/reactos/drivers/base/kdgdb/kdgdb.h
    • -12
    • +19
    /trunk/reactos/drivers/base/kdgdb/kdpacket.c
[KDGDB]

- Implement setting and removing breakpoints

- Implement single-stepping

- Only get past the breakpoint instruction when it comes from RtlpBreakWithStatus

- Implement writing to memory

- Always send the thread raising the exception to GDB to avoid confusing it

- Let GDB find the program counter alone by querying the registers (support was already there before.)

- Properly escape special characters on input

Ladies and gentlemen : the almost-fully functional GDB stub. (still no real multi-process support :-( )

To enable , in CMakeCache.txt :

- Set GDB:BOOL=TRUE

- Set _WINKD_:BOOL=TRUE

- Set KDBG:BOOL=FALSE

To do : give GDB the list of loaded drivers. Loading ntoskrnl.exe symbols at 0x80801000 already does a good enough job.

Default output is on COM1. Can be configure to any othe COM port with usual kernel options.

Hope you'll like it as much as I do ;-)

    • -41
    • +447
    /trunk/reactos/drivers/base/kdgdb/gdb_input.c
    • -1
    • +8
    /trunk/reactos/drivers/base/kdgdb/kdpacket.c
    • -1
    • +0
    /trunk/reactos/drivers/base/kdgdb/kdcom.c
    • -24
    • +0
    /trunk/reactos/drivers/base/kdgdb/i386_sup.c
    • -11
    • +7
    /trunk/reactos/drivers/base/kdgdb/gdb_send.c
    • -3
    • +6
    /trunk/reactos/drivers/base/kdgdb/kdgdb.h
[SERVICES]

- Properly invalidate service handles when closing/freeing them

Dedicated to Hermès and any regression chaser. FalsePositives--

    • -2
    • +5
    /trunk/reactos/base/system/services/rpcserver.c
[NTOS/MM]

- Implement copy on write support in ARM3 page fault handler

CORE-8541 #resolve #comment committed in r72395

    • -0
    • +21
    /trunk/reactos/ntoskrnl/mm/ARM3/miarm.h
    • -21
    • +182
    /trunk/reactos/ntoskrnl/mm/ARM3/pagfault.c
[KDGDB]

- Turn this thing into something useful

- Pretend we are only one process to GDB (making it a kernel-only debugger...) until the GDB team sorts this out

- This is a kernel debugger stub you know. You didn't seriously pretend that recursive functions would be fine, did you ?

[NTOS:KD64]

- Fix build

Pix or it din't happen : https://jira.reactos.org/secure/attachment/36322/source_level_debugging_ros.png

    • -5
    • +9
    /trunk/reactos/drivers/base/kdgdb/kdgdb.h
    • -2
    • +35
    /trunk/reactos/drivers/base/kdgdb/utils.c
    • -5
    • +6
    /trunk/reactos/drivers/base/kdgdb/kdcom.c
    • -16
    • +32
    /trunk/reactos/drivers/base/kdgdb/i386_sup.c
    • -14
    • +18
    /trunk/reactos/drivers/base/kdgdb/kdpacket.c
    • -120
    • +239
    /trunk/reactos/drivers/base/kdgdb/gdb_input.c
    • -9
    • +22
    /trunk/reactos/drivers/base/kdgdb/gdb_send.c
[CDFS_NEW]

- The usual second forgotten file

[NTOS/MM]

- Implement MmProbeAndLockProcessPages

[CDFS_NEW]

- The usual forgotten file

[NEWCC]

- Create section object when creating the file shared cache map

- Map the said section PsInitialSystemProcess address space and map it in kernel space using MmProbeAndLockProcessPages

- Implement CcSetFileSizes on top of MmExtendSection

    • -102
    • +58
    /branches/TransitionPte/ntoskrnl/cache/pinsup.c
[CDFS_NEW]

- "Convert" to PSEH2 + unix compilation friendliness

- Use

  1. … 15 more files in changeset.