Fix the XMS driver. AH = 08h is supposed to return the size of the
largest free block in AX, and the total amount of *free* memory
in DX.
svn path=/trunk/; revision=67675
Implement VDD user hooks: they are called when a DOS program is started or terminated, and when the VM enters a blocking state or is resumed.
[NTVDM]
- Do some parameter checks and set last errors in VDD memory helpers.
- Fix a bug in VDDInstallIOHook when installing IO hooks: the IoHandlers pointer MUST NEVER be incremented!!
[TESTVDD]: Update my test VDD with tests for the user hooks.
svn path=/trunk/; revision=67671
Use the SDA for storing the request in DosCallDriver.
Rename some more fields we aren't going to use to "Unused..." in the SDA.
svn path=/trunk/; revision=67651
The LMSW instruction doesn't #GP when the program tries to return to real mode.
Rather, it just doesn't happen (the PE bit remains 1).
svn path=/trunk/; revision=67647
- Fix/add a number of macros based on native definitions
- Add "intrinsics" for GNU ARM assembler
- Move trap macros to asmmacro.S
svn path=/trunk/; revision=67639
- Only set the IOSB status if we complete the IRP
- Fix the assert: the caller might want not to complete the IRP nor to queue it (passed down IRPs)
svn path=/trunk/; revision=67636
Add two more flags (mutually exclusive) for IRP context:
- _COMPLETE will cause the IRP to be completed at the end of the dispatch, with the run-time priority boost set by caller
- _QUEUE will cause the IRP to be queued for delayed execution (not yet implemented)
This allows more flexibility for callers that can set the behavior thanks to the flags.
Default behavior is the previous one: by default the IRP is completed at the end of the dispatch
That one should really come to FastFAT...
svn path=/trunk/; revision=67635
- Move stuff from armddk.h to XDK/DDK
- Fix ARM CONTEXT flags
- Add missing KeGetCurrentIrql() for ARM
- Improve some amd64 based definitions
- Use Native math for Int64Sh**Mod32 on ARM
svn path=/trunk/; revision=67631
- Remove unused HYPERSPACE_BASE (which was broken for x86, too)
- Add PAE values for HYPER_SPACE and HYPER_SPACE_END on x86
- Add missing MM_HAL_VA_START and MM_HAL_VA_END for ARM
svn path=/trunk/; revision=67630
Don't force the run-time priority boost in NtfsFsdDispatch(). Some dispatched MJ functions might want to adjust it (MJ_READ/MJ_WRITE/MJ_CREATE).
The same should be actually done in FastFAT. I believe that would help avoiding several code duplications...
svn path=/trunk/; revision=67624