Start factoring out compiler support for nested functions (neither CLANG not C++ support it, so we will add some other crazy hacks later ;-))
svn path=/trunk/; revision=62402
- Switch parameters in _SEH3$_RegisterFrame and _SEH3$_RegisterTryLevel (just for consistency)
- rename _SEH3$_RegisterTryLevel macro to _SEH3$_RegisterTryLevel_
- Add TryLevel and HandlerType fields to the scope table, since we'll need these later
- Start factoring out some Clang specific macros
svn path=/trunk/; revision=62393
Add simple clang support to configure.cmp (use "configure clang", which will use ninja as the generator and clang as the compiler)
svn path=/trunk/; revision=62385
- Switch the registration asm functions from a complete custom calling convention to regparm(2), so that it can be used in "returns_twice" based algorithm (required by CLANG, which doesn't support "asm goto" construct)
- Add support for saving all non-volatiles in the registration frame (also required by CLANG, since without asm goto, we cannot give the compiler the required hints to save these registers itself)
svn path=/trunk/; revision=62383
Use a helper function for stopping the VDM (in case we add other steps for that), instead of just setting the flag to TRUE.
svn path=/branches/ntvdm/; revision=62378
Move the GET_NEXT_VDM_COMMAND_DATA structure to a global header, and
rename it to VDM_COMMAND_INFO.
Implement BaseSrvCopyCommand, which moves the BASE_CHECK_VDM structure data
into a new VDM_COMMAND_INFO structure.
Implement BaseSrvFreeVDMInfo which frees a VDM_COMMAND_INFO structure and
everything in it.
svn path=/branches/ntvdm/; revision=62374
- Finally get rid of console output handles in the BIOS.
- Move console text buffer copy from BIOS back into VGA memory (~= revert part of r61542), but do it ONLY when attaching the VGA emulation to the console.
- Fix cursor positioning in BIOS & VGA (work in progress).
- Initialize PS/2 after having setting basic console modes.
- Showing/hiding mouse cursor (see the option in the console menu) is done in while() loops to be sure the cursor is really shown/hidden (based on the return value of ShowConsoleCursor).
svn path=/branches/ntvdm/; revision=62373
Fix download with ftp.exe, the problem was that we didn't switch download mode to binary when needed, because of idiotic defines used that where pointless here. We have this bug since revision 12776...
Patch by Alexander Varnin, see CORE-3682 for details.
CORE-3682 #resolve #comment Committed in revision, cheers ;)
svn path=/trunk/; revision=62372
The RegisterConsoleVDM API (undocumented) allows NTVDM to get a VGA-like text framebuffer hold by the console server. This text framebuffer is unique, per-console (so that changing the active text screen buffer doesn't change the text framebuffer) and exists even if you use a graphics screen buffer.
NTVDM can write in this framebuffer, and when a call to InvalidateConsoleDIBits is done, it is painted on the screen.
Since RegisterConsoleVDM is unimplemented on ReactOS, I start an implementation of this API *inside* NTVDM (that will then be moved to kernel32/winsrv when it will work correctly).
I adapt the code of the VGA emulation to support RegisterConsoleVDM.
svn path=/branches/ntvdm/; revision=62371
Implement a function that creates a pair of event handles - BaseSrvCreatePairWaitHandles.
As already explained in the comments of BaseCheckForVDM (in kernel32), the hParent parameter
is actually an event handle (or more precisely, the client event handle), not a process handle.
svn path=/branches/ntvdm/; revision=62367
- NetUserSetInfo: Implement the info level 22.
- Update the users DACL according to the user flags for the info levels 1, 2, 3, 4, 22 and 1008.
svn path=/trunk/; revision=62364
Make MSVC warning C4020 "Too many actual parameters" an error
CORE-7960 #resolve #comment Committed in revision 62361.
svn path=/trunk/; revision=62361
Get rid of ConsoleInput handles in the BIOS; setting input console modes should be done in the emulator.c module itself (when setting user interface modes), and if a mouse is present, handle it in the ps2.c module.
Next step will be to get rid of ConsoleOutput handle in the BIOS.
svn path=/branches/ntvdm/; revision=62359
* Mark as hotpatchable.
* Uncomment out the hot patching attribute for ShowCursor() now that the feature is supported.
* More will come.
CORE-7959
svn path=/trunk/; revision=62355
* Add support for marking an image as hotpatchable.
[INCLUDES]
* Introduce a way to allow us to mark pretty much any function in our codebase as DECLSPEC_HOTPATCH (not just in Wine modules).
* Fix DECLSPEC_HOTPATCH define and enable this hot patching feature support.
CORE-7959
svn path=/trunk/; revision=62354