Timo Kreuzer
|
52846afa0e
|
fix d3d9.def file and enable d3d8 and d3d9 to fix x86 build
svn path=/branches/ros-amd64-bringup/; revision=35683
|
2008-08-26 20:56:07 +00:00 |
|
Timo Kreuzer
|
405ba26351
|
Start a new strsafe lib. Nothing implemented so far, more something like a framework. The actual function implementation will be in the header, because the ms header allows to inline the functions. It uses recursive include to avoid code duplication. The lib uses these functions to generate the code.
svn path=/branches/ros-amd64-bringup/; revision=35682
|
2008-08-26 20:51:14 +00:00 |
|
Timo Kreuzer
|
500dc4c37a
|
Add D3DFMT_D32_LOCKABLE and D3DFMT_S8_LOCKABLE
svn path=/branches/ros-amd64-bringup/; revision=35668
|
2008-08-26 12:01:58 +00:00 |
|
Timo Kreuzer
|
4d6c63b343
|
#undef Interlocked before implementing the functions on all architectures.
svn path=/branches/ros-amd64-bringup/; revision=35666
|
2008-08-26 11:22:30 +00:00 |
|
Samuel Serapion
|
40b2f18a1c
|
Fix tcpsvcs build.
svn path=/branches/ros-amd64-bringup/; revision=35657
|
2008-08-26 04:12:02 +00:00 |
|
Samuel Serapion
|
69bb41bdc4
|
Remove unneeded msvcrt dependancies(all win32 modules depend on msvcrt already)
dbghelp: Don't use old style parameter lists.
kernel32: Remove stdcall decorations from amd64 asm.
user32: Convert to spec file.
console: Convert to spec file.
Misc WIN64 fixes.
svn path=/branches/ros-amd64-bringup/; revision=35655
|
2008-08-26 02:19:29 +00:00 |
|
Samuel Serapion
|
9abe4eb706
|
More header fixes.
svn path=/branches/ros-amd64-bringup/; revision=35652
|
2008-08-26 00:26:42 +00:00 |
|
Samuel Serapion
|
1a8d9f2429
|
Don't error on non-32bit builds. Still needs port.
svn path=/branches/ros-amd64-bringup/; revision=35651
|
2008-08-25 23:57:51 +00:00 |
|
Samuel Serapion
|
ee74c1b45e
|
Don't add stdcall decorations to amd64 syscalls.
svn path=/branches/ros-amd64-bringup/; revision=35650
|
2008-08-25 23:55:29 +00:00 |
|
Samuel Serapion
|
3fa7c1f193
|
Fix some wrong declarations for 64bits.
svn path=/branches/ros-amd64-bringup/; revision=35645
|
2008-08-25 21:52:05 +00:00 |
|
Timo Kreuzer
|
2cd57c75dc
|
__readcr3() returns an unsigned __int64, fix x86 MmGetPageDirectory accordingly.
svn path=/branches/ros-amd64-bringup/; revision=35644
|
2008-08-25 21:24:18 +00:00 |
|
Samuel Serapion
|
26ac2c8ab5
|
Convert to spec file.
svn path=/branches/ros-amd64-bringup/; revision=35642
|
2008-08-25 20:52:17 +00:00 |
|
Timo Kreuzer
|
17c45a4cd2
|
Move some Pcr init code into KiInitializePcr, use __sldt instead of Ke386SetLocaldescriptorTable, enable KdInitSystem
svn path=/branches/ros-amd64-bringup/; revision=35622
|
2008-08-25 01:30:57 +00:00 |
|
Timo Kreuzer
|
c305ef3554
|
Update stubs file
svn path=/branches/ros-amd64-bringup/; revision=35621
|
2008-08-25 01:06:49 +00:00 |
|
Timo Kreuzer
|
20ad38dd8e
|
It's really not good coding style to pass an OUT parameter "by value" to a macro like Ke386GetGlobalDescriptorTable. The Funny thing is that due to a missing memory barrier this macro actually handled this like a "by value" parameter. Of cause this is totally incorrect and led to the strange results I was experiencing.
Use __sgdt and __sidt instead and remove the old hack.
svn path=/branches/ros-amd64-bringup/; revision=35620
|
2008-08-25 00:25:49 +00:00 |
|
Timo Kreuzer
|
001f91468e
|
- Fix comments and comment out stmxcsr, as it crashes for some reason.
svn path=/branches/ros-amd64-bringup/; revision=35619
|
2008-08-25 00:12:33 +00:00 |
|
Timo Kreuzer
|
3ec5ec2e94
|
Add X86_MSR constants, implement __lgdt, __sgdt, __lldt, __sldt, __ldmxcsr, __stmxcsr, __ltr, __str intrinsics.
svn path=/branches/ros-amd64-bringup/; revision=35618
|
2008-08-25 00:10:15 +00:00 |
|
Timo Kreuzer
|
1274624c6b
|
Implement KiSaveProcessorControlState and KiRestoreProcessorControlState
svn path=/branches/ros-amd64-bringup/; revision=35617
|
2008-08-24 23:51:55 +00:00 |
|
Timo Kreuzer
|
427feb9557
|
merge __readcr and __writecr x86 / x64 definitions, because they are the same. Implement __readdr and __writedr for x64.
svn path=/branches/ros-amd64-bringup/; revision=35616
|
2008-08-24 23:40:42 +00:00 |
|
Timo Kreuzer
|
2e60f5db4f
|
Fix KeGetCurrentPrcb()
svn path=/branches/ros-amd64-bringup/; revision=35588
|
2008-08-24 02:47:44 +00:00 |
|
Timo Kreuzer
|
e73537a4e7
|
Fix __readgsqword, it was using a long internally. Add volatile keyword to segment addressing intrinsics. Add "memory" to clobber list on all those that do write.
svn path=/branches/ros-amd64-bringup/; revision=35587
|
2008-08-24 02:44:29 +00:00 |
|
Timo Kreuzer
|
008f576282
|
stub out SEH, for real this time ;-)
svn path=/branches/ros-amd64-bringup/; revision=35586
|
2008-08-24 02:41:12 +00:00 |
|
Timo Kreuzer
|
4e33928816
|
Implement KiSetProcessorType, KiGetCpuVendor, KiGetFeatureBits, KiGetCacheInformation, KiSetCr0Bits and KiInitializeTss based on x86 implementation. Fix and enable Code in KiInitalizeKernel, enable call to HalInitializeProcessor.
svn path=/branches/ros-amd64-bringup/; revision=35549
|
2008-08-23 02:11:09 +00:00 |
|
Timo Kreuzer
|
5190b92232
|
Fix Ke386SaveFlags and Ke386RestoreFlags. Rename KIDT_INIT's 3rd member to IstIndex and use it in KeInitExceptions.
svn path=/branches/ros-amd64-bringup/; revision=35548
|
2008-08-23 01:31:51 +00:00 |
|
Timo Kreuzer
|
8082ce88e5
|
Setup KUSER_SHARED_DATA.
svn path=/branches/ros-amd64-bringup/; revision=35547
|
2008-08-23 01:19:34 +00:00 |
|
Timo Kreuzer
|
a09e2d91b6
|
Fix __readmsr and __writemsr on amd64
svn path=/branches/ros-amd64-bringup/; revision=35546
|
2008-08-23 01:18:07 +00:00 |
|
Timo Kreuzer
|
71d0b42136
|
LdrPEProcessImportDirectoryEntry: ULONG -> ULONG_PTR to fix imports.
svn path=/branches/ros-amd64-bringup/; revision=35528
|
2008-08-22 13:06:39 +00:00 |
|
Timo Kreuzer
|
c5cef89ee9
|
Fix handling of stack
svn path=/branches/ros-amd64-bringup/; revision=35527
|
2008-08-22 12:20:01 +00:00 |
|
Timo Kreuzer
|
cecff4323b
|
Move KiSystemStartup again to kiinit.c, implement an intermediate function KiInitializeKernelAndGotoIdleLoop that is now called from the asm function KiSetupStackAndInitializeKernel. This way we avoid using "hardcoded" constants.
svn path=/branches/ros-amd64-bringup/; revision=35526
|
2008-08-22 11:13:51 +00:00 |
|
Timo Kreuzer
|
adc315d4cc
|
Fix _interlockedbittest intrinsics. For some strange reason they were working correctly on x86, the compiler seemed to know "what it means". But that doesn't work on amd64, here we need *a as "=m" operand, not a.
svn path=/branches/ros-amd64-bringup/; revision=35525
|
2008-08-22 10:54:47 +00:00 |
|
Timo Kreuzer
|
3c6891fdc8
|
revert my last change, yes it IS a stupid idea to mess with the stack in the middle of a C function....
svn path=/branches/ros-amd64-bringup/; revision=35524
|
2008-08-22 10:07:57 +00:00 |
|
Timo Kreuzer
|
734fd03c81
|
Implement KiSystemStartup in C instead of asm, implement KiSwapStack intrinsic, get rid of KiSetupStackandInitializeKernel, instead do the work in KiSystemStartupReal in C. Move Stack definitions into trap.S and get rid of the whole boot.S file. Comment out the sync loop for the moment and add a comment why it doesn't work (InterlockedBitTestAndSet64 doesn't work correctly).
svn path=/branches/ros-amd64-bringup/; revision=35518
|
2008-08-21 21:16:57 +00:00 |
|
Timo Kreuzer
|
0aaed0f738
|
Update syscall stubs
svn path=/branches/ros-amd64-bringup/; revision=35517
|
2008-08-21 21:10:17 +00:00 |
|
Timo Kreuzer
|
d733da9c08
|
Fix hal build
svn path=/branches/ros-amd64-bringup/; revision=35515
|
2008-08-21 20:24:34 +00:00 |
|
Timo Kreuzer
|
9cc6529e5e
|
Add KeSetCurrentIrql
svn path=/branches/ros-amd64-bringup/; revision=35513
|
2008-08-21 18:15:23 +00:00 |
|
Timo Kreuzer
|
7e667e38c4
|
Implement KxGetCurrentIrql, KxLowerIrql, KxRaiseIrql and KxRaiseIrqlToDpcLevel and use them for the Ke/Kf exports.
svn path=/branches/ros-amd64-bringup/; revision=35512
|
2008-08-21 18:13:42 +00:00 |
|
Timo Kreuzer
|
5e2d40364e
|
fix build ;-)
svn path=/branches/ros-amd64-bringup/; revision=35511
|
2008-08-21 18:10:08 +00:00 |
|
Timo Kreuzer
|
56d9201788
|
Make KeGetCurrentIrql, KeLowerIrql, KfRaiseIrql, KeRaiseIrql, KeRaiseIrqlToDpcLevel and KeRaiseIrqlToSynchLevel intrinsics as in the WDK 2008.
svn path=/branches/ros-amd64-bringup/; revision=35510
|
2008-08-21 18:07:45 +00:00 |
|
Timo Kreuzer
|
c4c7933979
|
On SMP builds SYNCH_LEVEL is (IPI_LEVEL - 2) or 12
svn path=/branches/ros-amd64-bringup/; revision=35509
|
2008-08-21 18:04:23 +00:00 |
|
Timo Kreuzer
|
bebc0f9c06
|
Implement KeGetCurrentIrql as intrinsic.
svn path=/branches/ros-amd64-bringup/; revision=35506
|
2008-08-21 13:33:57 +00:00 |
|
Timo Kreuzer
|
ae1ea8b593
|
Remove private __lidt definition.
svn path=/branches/ros-amd64-bringup/; revision=35505
|
2008-08-21 13:30:39 +00:00 |
|
Timo Kreuzer
|
c00498727e
|
Implement __readcr8, __writecr8, __lidt and __sidt intrinsics.
svn path=/branches/ros-amd64-bringup/; revision=35504
|
2008-08-21 13:30:00 +00:00 |
|
Timo Kreuzer
|
0d5cd90543
|
Fix KiSystemStartupReal, KiGetMachineBootPointers and KiInitializePcr. Add trap.S for ISRs (unimplemented). Add except.c with KiInterruptInitTable and KeInitExceptions, initializing the IDT. Add irql.c for IRQL functions (unimplemented). Update stubs file. Based on info from http://www.msuiche.net/papers/Windows_Vista_64bits_and_unexported_kernel_symbols.pdf. We now reach KiSetupStackAndInitializeKernel, but there's a few things still missing.
svn path=/branches/ros-amd64-bringup/; revision=35496
|
2008-08-20 23:54:52 +00:00 |
|
Timo Kreuzer
|
29e9dfd5d6
|
Also initialize data segment descriptor in the gdt.
svn path=/branches/ros-amd64-bringup/; revision=35495
|
2008-08-20 23:48:28 +00:00 |
|
Timo Kreuzer
|
9576c5f7f6
|
- Add X86_MSR_GSBASE, X86_MSR_KERNEL_GSBASE constants
- Add KIDT_INIT structure for the idt init table
- Add prototypes for ISRs
svn path=/branches/ros-amd64-bringup/; revision=35494
|
2008-08-20 22:55:59 +00:00 |
|
Timo Kreuzer
|
bfb63a8031
|
Setup a page for the Idt and a page for the gdt + tss. Setup the newly created gdt accordingly. Set gdtr and idtr.
svn path=/branches/ros-amd64-bringup/; revision=35493
|
2008-08-20 22:48:47 +00:00 |
|
Timo Kreuzer
|
a215070e56
|
revert my last commit to avoid polluting other files with hack code. I am also not going to need that piece of code for amd64.
svn path=/branches/ros-amd64-bringup/; revision=35492
|
2008-08-20 22:38:23 +00:00 |
|
Timo Kreuzer
|
d4fd437f76
|
- fix usage of InterlockedExchangePointer
- fix ULONG -> pointer cast
svn path=/branches/ros-amd64-bringup/; revision=35461
|
2008-08-19 19:56:28 +00:00 |
|
Timo Kreuzer
|
235811bd2a
|
Update amd64 prototypes for KeGetCurrentIrql, KfRaiseIrql, KfLowerIrql, KeRaiseIrqlToDpcLevel, KeRaiseIrqlToSynchLevel, KeLowerIrql, KeRaiseIrql
svn path=/branches/ros-amd64-bringup/; revision=35460
|
2008-08-19 19:28:12 +00:00 |
|
Timo Kreuzer
|
408520c38c
|
forgot this one
svn path=/branches/ros-amd64-bringup/; revision=35459
|
2008-08-19 19:08:45 +00:00 |
|