Timo Kreuzer
951d7d64e8
- implement stub EnableA20
...
- define MachInit to PcMachInit
- use i386 versions of machine dependend code for amd64 -> 13 files / 160 kb less
svn path=/branches/ros-amd64-bringup/; revision=35704
2008-08-27 15:41:38 +00:00
Timo Kreuzer
978a868544
- Convert PortAddress from ULONG to PUCHAR
...
- Fix some int <-> pointer casts
- remove useless #if __i386__
- use %p for pointer sized prints
svn path=/branches/ros-amd64-bringup/; revision=35703
2008-08-27 15:37:36 +00:00
Timo Kreuzer
fb545753be
enhance macros
...
svn path=/branches/ros-amd64-bringup/; revision=35696
2008-08-27 14:16:04 +00:00
Timo Kreuzer
ae14158094
Add Cch functions to strsafe lib.
...
svn path=/branches/ros-amd64-bringup/; revision=35694
2008-08-27 03:03:39 +00:00
Timo Kreuzer
44f8969876
More fixes in strsafe.h
...
svn path=/branches/ros-amd64-bringup/; revision=35693
2008-08-27 03:01:25 +00:00
Timo Kreuzer
68c27c7f46
Fix some strsafe.h definitions.
...
svn path=/branches/ros-amd64-bringup/; revision=35692
2008-08-27 02:08:24 +00:00
Timo Kreuzer
9c0ddbba15
Optimize and shorten StringCxxLength
...
svn path=/branches/ros-amd64-bringup/; revision=35691
2008-08-27 01:47:34 +00:00
Timo Kreuzer
a687a42919
- Rework defines in strsafe a bit.
...
- Implement StringCxxLength()
svn path=/branches/ros-amd64-bringup/; revision=35690
2008-08-27 00:40:10 +00:00
Timo Kreuzer
736cebd3a6
With a few more defines, strsafe.h can now implement all functions Cb/Cch, Ansi/Unicode from a single piece of code. Implement all Cb functions in the lib (depending on the unimplemented inline versions)
...
svn path=/branches/ros-amd64-bringup/; revision=35689
2008-08-26 23:06:18 +00:00
Timo Kreuzer
110717948a
Make kdcom x86 code 64bit compatible and use it for amd64, too. Add a DriverEntry to make ld happy.
...
svn path=/branches/ros-amd64-bringup/; revision=35685
2008-08-26 21:29:31 +00:00
Timo Kreuzer
2730ab38f8
If you change an rbuild file to use an arch-specific .def file, please also provide those .def files.
...
svn path=/branches/ros-amd64-bringup/; revision=35684
2008-08-26 20:58:04 +00:00
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