New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] The ultimate ros amd64 bringup #361
Commits on Feb 5, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 91c8699 - Browse repository at this point
Copy the full SHA 91c8699View commit details -
[NTOS:MM] Make sure to call MmInitializeProcessAddressSpace() from th…
…e x64 version of MiInitMachineDependent()
Configuration menu - View commit details
-
Copy full SHA for ff1eaad - Browse repository at this point
Copy the full SHA ff1eaadView commit details -
[NTOS:MM] In the x64 version of MmCreateProcessAddressSpace() zero ou…
…t all page table PFNs
Configuration menu - View commit details
-
Copy full SHA for 15a08e8 - Browse repository at this point
Copy the full SHA 15a08e8View commit details -
[NTOS:MM] Fix ViewSize parameter passed to MiInsertVadEx() from MiCre…
…atePebOrTeb() The size is in bytes, not in pages! On x86 we got away with it, since PEB and TEB require only a single page and the 1 passed to MiInsertVadEx() was aligned up to PAGE_SIZE. On x64 this doesn't work, since the size is 2 pages.
Configuration menu - View commit details
-
Copy full SHA for cce3d16 - Browse repository at this point
Copy the full SHA cce3d16View commit details -
[NTOS:MM] On x64 reserve the address range between FFFF800000000000 a…
…nd FFFFF68000000000 in MiInitSystemMemoryAreas()
Configuration menu - View commit details
-
Copy full SHA for 286b2fb - Browse repository at this point
Copy the full SHA 286b2fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 12002d4 - Browse repository at this point
Copy the full SHA 12002d4View commit details -
Configuration menu - View commit details
-
Copy full SHA for 546c05b - Browse repository at this point
Copy the full SHA 546c05bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1bc15af - Browse repository at this point
Copy the full SHA 1bc15afView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1f6d61b - Browse repository at this point
Copy the full SHA 1f6d61bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9e097de - Browse repository at this point
Copy the full SHA 9e097deView commit details -
Configuration menu - View commit details
-
Copy full SHA for aedb9f6 - Browse repository at this point
Copy the full SHA aedb9f6View commit details -
Configuration menu - View commit details
-
Copy full SHA for d139743 - Browse repository at this point
Copy the full SHA d139743View commit details -
[NTOS:MM] Simplify and fix x64 version of MiGetPteForProcess(), fix M…
…mGetPageFileMapping, remove obsolete functions.
Configuration menu - View commit details
-
Copy full SHA for 25064d0 - Browse repository at this point
Copy the full SHA 25064d0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 75e11df - Browse repository at this point
Copy the full SHA 75e11dfView commit details -
Configuration menu - View commit details
-
Copy full SHA for 13ef07a - Browse repository at this point
Copy the full SHA 13ef07aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 03920b1 - Browse repository at this point
Copy the full SHA 03920b1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 235566d - Browse repository at this point
Copy the full SHA 235566dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1e326fb - Browse repository at this point
Copy the full SHA 1e326fbView commit details -
Configuration menu - View commit details
-
Copy full SHA for c4fbc15 - Browse repository at this point
Copy the full SHA c4fbc15View commit details -
[NTOS:KE] Implement KiConvertToGuiThread, KeSwitchKernelStack and sup…
…port for win32k syscalls in KiSystemCallHandler
Configuration menu - View commit details
-
Copy full SHA for 29db059 - Browse repository at this point
Copy the full SHA 29db059View commit details -
[NTOS:KE] Save and restore previous mode in KiZwSystemService and fix…
… restoring the trap frame
Configuration menu - View commit details
-
Copy full SHA for c24203c - Browse repository at this point
Copy the full SHA c24203cView commit details -
Configuration menu - View commit details
-
Copy full SHA for c9d1f6a - Browse repository at this point
Copy the full SHA c9d1f6aView commit details -
Configuration menu - View commit details
-
Copy full SHA for e503f53 - Browse repository at this point
Copy the full SHA e503f53View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9335f8f - Browse repository at this point
Copy the full SHA 9335f8fView commit details
Commits on Feb 10, 2018
-
Configuration menu - View commit details
-
Copy full SHA for 4b4a334 - Browse repository at this point
Copy the full SHA 4b4a334View commit details -
Configuration menu - View commit details
-
Copy full SHA for 945d807 - Browse repository at this point
Copy the full SHA 945d807View commit details -
Configuration menu - View commit details
-
Copy full SHA for a26ae1d - Browse repository at this point
Copy the full SHA a26ae1dView commit details -
[NTOS:KE] Improve kernel stack switching on GUI system calls
To be 100% correct and not rely on assumptions, stack switching can only be done when all previous code - starting with the syscall entry point - is pure asm code, since we can't rely on the C compiler to not use stack addresses in a way that is not transparent. Therefore the new code uses the same mechanism as for normal system calls, returning the address of the asm function KiConvertToGuiThread, which is then called like an Nt* function would be called normally. KiConvertToGuiThread then allocated a new stack, switches to it (which is now fine, since all the code is asm), frees the old stack, calls PsConvertToGuiThread (which now will not try to allocate another stack, since we already have one) and then jumps into the middle of KiSystemCallEntry64, where the system call is handled again. Also simplify KiSystemCallEntry64 a bit by copying the first parameters into the trap frame, avoiding to allocate additional stack space for the call to KiSystemCallHandler, which now overlaps with the space that is allocated for the Nt* function. Finally fix the locations where r10 and r11 are stored, which is TrapFrame->Rcx and TrapFrame->EFlags, based on the situation in user mode.
Configuration menu - View commit details
-
Copy full SHA for bd078ab - Browse repository at this point
Copy the full SHA bd078abView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7749bdc - Browse repository at this point
Copy the full SHA 7749bdcView commit details -
Configuration menu - View commit details
-
Copy full SHA for 177b3e7 - Browse repository at this point
Copy the full SHA 177b3e7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 52721c2 - Browse repository at this point
Copy the full SHA 52721c2View commit details -
Configuration menu - View commit details
-
Copy full SHA for fbec870 - Browse repository at this point
Copy the full SHA fbec870View commit details -
[NTOS:KE] Change the logic of KeSwitchKernelStack and friends to be s…
…tandards conforming The previous version (like the x86 one) used a combination of C and asm code, called from C code to switch the stack. This is problematic, since there is no guarantee what assumptions C code makes about the stack (i.e. it can place any kind of stack pointers into registers or on the stack itself.) The new algorithm returns back to the systemcall entry point in asm, which then calls KiConvertToGuiThread, which is also asm and calls KeSwitchKernelStack ...
Configuration menu - View commit details
-
Copy full SHA for d5bdd7e - Browse repository at this point
Copy the full SHA d5bdd7eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 4351118 - Browse repository at this point
Copy the full SHA 4351118View commit details -
[NDK] Add UCALLOUT_FRAME definition
On x86 there are no assembly constants that give us hints how the structure looks like, but we know the layout, so take the names from the x64/arm version.
Configuration menu - View commit details
-
Copy full SHA for 5b1588c - Browse repository at this point
Copy the full SHA 5b1588cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1dc22b6 - Browse repository at this point
Copy the full SHA 1dc22b6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8366b2c - Browse repository at this point
Copy the full SHA 8366b2cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 29d20df - Browse repository at this point
Copy the full SHA 29d20dfView commit details -
[NDK] Fix the type of KPROCESS::ActiveProcessors
Also fix related logic in KiSwapProcess
Configuration menu - View commit details
-
Copy full SHA for 10e086b - Browse repository at this point
Copy the full SHA 10e086bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 3252ac3 - Browse repository at this point
Copy the full SHA 3252ac3View commit details -
Configuration menu - View commit details
-
Copy full SHA for 66eb02c - Browse repository at this point
Copy the full SHA 66eb02cView commit details -
[NTOS:PS] Fix an issue with PROCESS_DEVICEMAP_INFORMATION size on 64 …
…bit builds The PROCESS_DEVICEMAP_INFORMATION union has 2 fields, one is a handle, the other one is a structure of 36 bytes (independent of architecture). The handle forces 64 bit alignment on 64 bit builds, making the structure 4 bytes bigger than on 32 bit builds. The site is checked in NtQueryInformationProcess (case ProcessDeviceMap). The expected size on x64 is the size of the Query structure without alignment. autocheck correctly passes the site of the Query union member, while smss passes the full size of PROCESS_DEVICEMAP_INFORMATION. Packing the structure is not an option, since it is defined in public headers without packing. Using the original headers sizeof(PROCESS_DEVICEMAP_INFORMATION) is 0x28, sizeof(PROCESS_DEVICEMAP_INFORMATION::Query) is 0x24.
Configuration menu - View commit details
-
Copy full SHA for c93d924 - Browse repository at this point
Copy the full SHA c93d924View commit details
Commits on Feb 11, 2018
-
Configuration menu - View commit details
-
Copy full SHA for c3380ef - Browse repository at this point
Copy the full SHA c3380efView commit details -
[NTOS:PS] On x64 don't fail in NtSetInformationProcess with ProcessUs…
…erModeIOPL information class, instead just don't do anything.
Configuration menu - View commit details
-
Copy full SHA for c249c15 - Browse repository at this point
Copy the full SHA c249c15View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8b48097 - Browse repository at this point
Copy the full SHA 8b48097View commit details -
Configuration menu - View commit details
-
Copy full SHA for e7e7e40 - Browse repository at this point
Copy the full SHA e7e7e40View commit details -
Configuration menu - View commit details
-
Copy full SHA for a9fc91d - Browse repository at this point
Copy the full SHA a9fc91dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 6e0a3be - Browse repository at this point
Copy the full SHA 6e0a3beView commit details -
Configuration menu - View commit details
-
Copy full SHA for f062e2d - Browse repository at this point
Copy the full SHA f062e2dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 21177bb - Browse repository at this point
Copy the full SHA 21177bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for ebe9bc4 - Browse repository at this point
Copy the full SHA ebe9bc4View commit details -
Configuration menu - View commit details
-
Copy full SHA for c8bd63f - Browse repository at this point
Copy the full SHA c8bd63fView commit details -
[HAL] Implement amd64 BIOS call support
The code uses FAST486 to emulate the BIOS code.
Configuration menu - View commit details
-
Copy full SHA for 4c80d83 - Browse repository at this point
Copy the full SHA 4c80d83View commit details -
[VIDEOPRT] Implement support for INT10 on x64 using the newly impleme…
…nted HAL functions.
Configuration menu - View commit details
-
Copy full SHA for 96f3020 - Browse repository at this point
Copy the full SHA 96f3020View commit details