Commit graph

868 commits

Author SHA1 Message Date
Sir Richard a37a4a9e07 [HAL]: Use Bus Handlers for HalpAssignSlotResources. Warn that current PCI Slot assignment code is frelled.
[HAL]: Add PAGED_CODE();
[HAL]: Fix HALACPI build break.

svn path=/trunk/; revision=47683
2010-06-07 21:26:09 +00:00
Sir Richard 1491820d8d [HAL]: Implement HalAdjustResourceList using Bus Handler support. Previous HAL said this was "deprecated" and faked success. Although correct on ACPI HALs, this is a legacy HALs, so Bus Handlers have a chance to do ajdustment.
svn path=/trunk/; revision=47680
2010-06-07 21:06:16 +00:00
Sir Richard 28bde112e1 [HAL]: Implement HalTranslateBusAddress using Bus Handler support. The old HAL would just return whatever the caller gave (no translation was done). For example, with the new HAL, this now results in the translation of 0xCF800 in I/O space to fail (not sure which driver requests this), because this is not a valid I/O address on PC/AT systems (highest is 0xFFFF).
This change also allows for the PCI driver to override the translation mechanism (which will piggy-back to the system bus translator) with its own. Please test.

svn path=/trunk/; revision=47679
2010-06-07 21:01:53 +00:00
Sir Richard 0ae7a75158 [HAL]: Implement ISA BUS address translation.
svn path=/trunk/; revision=47678
2010-06-07 20:59:46 +00:00
Sir Richard fc0a9b1bef [HAL]: Implement system bus address translation.
svn path=/trunk/; revision=47677
2010-06-07 20:59:00 +00:00
Sir Richard 7ebba8b83c [HAL]: Implement Bus Handler support for HalGetInterruptVector too. The new functionality now includes support for checking against reserved HAL vectors instead of blindling assining IRQLs/Vectors to callers. A warning is printed on the debug log when the old HAL would've returned different values. Please test. If you have issues, the problem is in the DRIVERS, not this code.
svn path=/trunk/; revision=47676
2010-06-07 20:39:11 +00:00
Sir Richard 566408b2d9 [HAL]: Implement PCI Vector/IRQL translation too.
svn path=/trunk/; revision=47675
2010-06-07 20:37:45 +00:00
Sir Richard 6bbba6481b [HALMP]: MP HAL should have HalpDefaultInterruptAffinity too.
svn path=/trunk/; revision=47674
2010-06-07 20:37:19 +00:00
Sir Richard edda414937 [HAL]: Forgot file.
svn path=/trunk/; revision=47673
2010-06-07 20:35:02 +00:00
Sir Richard 1b1d03c8a0 [HAL]: Implement system bus (and ISA) vector/interrupt translation.
svn path=/trunk/; revision=47672
2010-06-07 20:34:41 +00:00
Sir Richard dcde6d79da [HAL]: Use Bus Handler support for HalSetBusDataByOffset. Please report any problems.
svn path=/trunk/; revision=47671
2010-06-07 20:13:05 +00:00
Sir Richard cc500cbf5c [HAL]: First use of bus handler support: HalGetBusDataByOffset now uses bus handlers. Please report any problems.
svn path=/trunk/; revision=47670
2010-06-07 20:10:53 +00:00
Sir Richard e8040d911e [HAL]: I don't like to swear, but F*CK this MiniHAL bullsh*t!
svn path=/trunk/; revision=47668
2010-06-07 18:30:20 +00:00
Sir Richard c2677cf238 [HAL]: Plug in the data from pcidata.c that was committed months ago to display a beautiful enumeration of all PCI devices on the machine. This will allow debug logs not only to contain nearly full hardware information, but also identify the VM the tester/reporter is using (based on the device's subsystem ID).
[HAL]: Display all the warning DPRINTs in-line with the PCI enumeration code, resulting in a much easier to read and comprehensive review of the machine.

svn path=/trunk/; revision=47666
2010-06-07 17:01:56 +00:00
Sir Richard bf8a146243 [HAL]: Implement HalpGetPciBridgeConfig to detect PCI-to-PCI/CardBus bridges, warn if they are found.
[HAL]: Modify the debug messages to be more accurate as to what exactly is unsupported.

svn path=/trunk/; revision=47665
2010-06-07 16:44:12 +00:00
Sir Richard f098f2ae2b [HAL]: Implement partly HalpFixupPciSupportedRanges to detect PCI Bridges, and PCI-to-PCI Bridges. The point is we want buses to be cramped down to the addresses supported by the parent bus/bridge. This is NOT currently done, so we warn users of these systems.
svn path=/trunk/; revision=47664
2010-06-07 16:15:01 +00:00
Sir Richard 9ef2a02386 [HAL]: Detect, check for, and warn about, chipset hacks that need to be applied for the machine.
svn path=/trunk/; revision=47662
2010-06-07 15:34:35 +00:00
Sir Richard 2031c565df [NTOS]: Check registry for our CardList, check if the PCI hardware matches any entry in there that specifies it has full/extended address decoding, and write the registry flag for it.
svn path=/trunk/; revision=47660
2010-06-07 15:09:44 +00:00
Sir Richard 83c3c7abb2 [HAL]: Detect IDE controllers. Their interrupts should not be masked.
svn path=/trunk/; revision=47659
2010-06-07 15:02:49 +00:00
Sir Richard adc324f5c9 [HAL]: Detect, initialize, and create bus handlers for, all PCI buses that are found on the machine.
[HAL]: Detect PCI-to-PCI Bridges, Extended CardBus Addressing, read Chipset Hacks from Registry, and scan for IRQ lines used by PCI Devices. Scan for PCI-IDE controllers, broken Intel PCI Bridges/Controllers. Scan for OHCI and UHCI USB controllers. Warn the user that if any of these are found, the current HAL does not handle certain types of these devices (these checks are based on the ones the Legacy Windows HAL makes).

svn path=/trunk/; revision=47655
2010-06-07 03:23:48 +00:00
Sir Richard 07b14e926d [HAL]: Add missing PCI Bus Handler support functions, used on non-ACPI systems (ISA-PCI support and such).
svn path=/trunk/; revision=47654
2010-06-07 03:19:20 +00:00
Sir Richard e2d5c9d92b [HAL]: Kill debug spew.
svn path=/trunk/; revision=47653
2010-06-07 03:18:51 +00:00
Sir Richard ad1721c016 [HAL]: Bus support in the HAL actually creates a further wedge between the different x86 HALs: There are actually two dinstinct implementations. On the ACPI HAL, the system is assumed not to have things like special ISA, MCA, EISA buses, and a PCI driver is used in combination with the ACPI Interface for PCI Bus support. On non-ACPI systems, the legacy "Bus Handler" library is used, and the HAL provides a core set of CMOS, EISA, ISA, MCA and PCI bus handlers, each with their own routines and specific code. Additionally, PCI IRQ Routing and other PCI bus internals are handled directly by the HAL -- on the ACPI HAL, the PCI Bus support is implemented through a "Fake"/static bus handler, just to keep the functions shared. On ReactOS, both the ACPI and non-ACPI HAL were currently using a mix of both HAL bus handling types, mostly implemented the "ACPI way" (with a fake PCI bus handler and such).
As a result, none of the Hal*Bus HALDISPATCH routines were implemented, which bus drivers expect to find when they're not on ACPI systems (ReactOS today). eVb's new PCI driver was crashing, for example.
       Furthermore, legacy systems suffer, because the ACPI HAL Bus routines (that we currently have) expect perfect ACPI-style-compliant systems, not the legacy crap from the early 90ies. This works fine in VMs and new hardware, but old hardware is left behind.
       This patch basically corrects the first part of the problem, by making the bus handling support separate between ACPI and non-ACPI HALs. For now, the code remains 100% the same in functionality between both.
       However, I have started adding the first few elements:
[HAL]: Implement HalRegisterBusHandler HALDISPATCH routine.
[HAL]: On legacy HALs, register the CMOS, ISA, SYSTEM handlers.
[HAL]: Add cmosbus.c. Stub all bus-specific bus handler routines in the xxxbus.c files.
No real functionality change occurs with this patch, yet.

svn path=/trunk/; revision=47649
2010-06-07 01:09:41 +00:00
Timo Kreuzer 86ed4d64b5 [HAL]
Delete empty folder

svn path=/trunk/; revision=47569
2010-06-04 16:56:14 +00:00
Timo Kreuzer 2b0533a1b0 [HAL]
- Move all amd64 specific files to one amd64 folder
- Compile x86 specific timer code only on x86
- Use KeRegisterInterruptHandler instead of manual idt manipulation
- add missing stubs for amd64

svn path=/trunk/; revision=47565
2010-06-04 10:59:19 +00:00
Timo Kreuzer 32f5fc6eab [HAL]
- Move memory functions from halinit.c to new memory.c
- HalpAllocPhysicalMemory: MemoryFirmwareTemporary -> LoaderFirmwareTemporary (same value, different enum)

svn path=/trunk/; revision=47563
2010-06-04 10:17:55 +00:00
Timo Kreuzer a8d609e19d [HAL]
Include the correct headers for amd64 vs i386

svn path=/trunk/; revision=47557
2010-06-03 23:18:20 +00:00
Stefan Ginsberg f1f3d045d4 [HAL] Fix compiler preprocessor checks for the IRQL masks so other compilers than GCC get proper entries too.
[HAL] Define the HalpHardwareInterrupt macro for MSVC too.
[HAL] Replace IRQL_DEBUG with DBG so we always check for incorrect IRQL on debug. I believe incorrect IRQL raise/lower is a common and serious enough error to always be checked for on debug builds without defining some special debug option.

svn path=/trunk/; revision=47519
2010-06-02 13:59:47 +00:00
Aleksey Bragin 840624212a [HAL]
- Fix a typo.

svn path=/trunk/; revision=47517
2010-06-02 11:26:19 +00:00
Timo Kreuzer 1b8056c3a3 [HAL]
comment out some amd64 specific stuff from rbuild files.

svn path=/trunk/; revision=47254
2010-05-17 14:52:00 +00:00
Aleksey Bragin c6ddd201c7 [HALX86]
- Revert changes to HalpGetPCIData made in r47162. There is no need to introduce ReactOS-specific behavior of this function. It's much better to aim real NT compatibility, and develop your drivers against NT first and only then hack ReactOS.
- Changes to buses scanning are left as they are.

svn path=/trunk/; revision=47169
2010-05-12 09:45:43 +00:00
Cameron Gutman 0a6ca40598 [HAL]
- Return the correct value if the PCI slot number is invalid
- Use the bus number from the PCI BIOS instead of doing a manual probe if we can because it is much more accurate (our probing code doesn't detect buses without devices present)
- Don't probe for devices at invalid locations on PCI type 2 buses
- Check for a valid bus number so we don't return the wrong value

svn path=/trunk/; revision=47162
2010-05-12 02:34:04 +00:00
Cameron Gutman e47ef16223 [USBDRIVER]
- Register the device with the device manager only after it has been successfully allocated to avoid a crash
- A device that failed in xhci_alloc would never get deregistered from the device manager so it would crash when it entered xhci_start with a partially set up device extension
- Define release_adapter to HalPutDmaAdapter to fix a DMA adapter leak
[HAL]
- Export HalPutDmaAdapter

svn path=/trunk/; revision=47139
2010-05-09 11:18:16 +00:00
Timo Kreuzer c100c972c1 [HAL]
- Give mini-hal it's own rbuild file
- fix amd64 rbuild

svn path=/trunk/; revision=46860
2010-04-13 16:26:48 +00:00
Timo Kreuzer 8b6a58978f [HAL]
Fix a possible overflow of the hal heap in HalpMapPhysicalMemory64 and simplify the code.

svn path=/trunk/; revision=46849
2010-04-12 19:39:50 +00:00
Cameron Gutman b270d2cf88 [HAL]
- Remove an unnecessary hack now that PnP manager doesn't suck (as much ;))

svn path=/trunk/; revision=46770
2010-04-07 20:37:13 +00:00
Sir Richard 2f60720f98 [HALACPI]: Implement HalpQueryResources: We take the resource requirements, find the SCI requirement, and convert it into a resource. The ACPI HAL should now report its resoures once the PnP HAL driver model is enabled.
svn path=/trunk/; revision=46664
2010-04-02 06:46:33 +00:00
Sir Richard cbc12bf14d [HALACPI]: Implement querying HALACPI resource requirements. If it exists, the SCI Vector is added to the list as a requirement.
svn path=/trunk/; revision=46663
2010-04-02 06:28:43 +00:00
Sir Richard a22393f57a [HAL]: Whoever came up with this MINIHAL idea...
svn path=/trunk/; revision=46653
2010-04-01 20:54:12 +00:00
Sir Richard 881284946b [HAL]: Move all HAL-specific names to halacpi.c and halpcat.c. This includes the PnP Device Name (e_isa_up vs acpipic_up", the HAL Name, and whether or not the firmware mapper should be disabled (tells I/O Manager to skip legacy detection).
[HAL]: Implement HalpReportUsage! On ACPI, all is implemented, on PC/AT, we don't yet parse the ROM blocks in the registry (but does FreeLDR even put them in?), and I don't think we'll ever enable 16-bit port decoding since FreeLDR never detects ISA vs EISA machines (so we always run as ISA).
[HAL]: Fill out the "????" entries in HalpDefaultIoSpace... more typical Alex "I copied something without knowing what it meant"-magic.


svn path=/trunk/; revision=46652
2010-04-01 20:46:55 +00:00
Sir Richard 87c7a8930b [HAL]: HalpActiveProcessors is KAFFINITY, not LONG. Also, MP HAL lacked it.
svn path=/trunk/; revision=46651
2010-04-01 20:42:43 +00:00
Sir Richard a7d94d59ba [HAL]: Fucken' A, I knew I'd forget one.
svn path=/trunk/; revision=46650
2010-04-01 20:41:46 +00:00
Sir Richard dae14f1215 [HAL]: Smarter .rbuild separation so that ACPI and PC/AT hal don't rebuild the generic library twice. Now generic stays generic, and generic_pcat/acpi are add-on libaries just like generic_up and generic_mp.
svn path=/trunk/; revision=46649
2010-04-01 20:41:04 +00:00
Sir Richard 111a56f09b [HAL]: Split HalReportResouceUsage into per-platform function, since PC/AT HAL and ACPI HAL have different requirements. As a bonus, the ACPI HAL now identifies itself as ACPI Compatible, instead of using the "PC Compatible" moniker.
[HAL]: Implement HalpGetNMICrashFlag so you can do NMI crashes now.
[HAL]: Implement basic HalpRegistryPciDebuggingDeviceInfo for the day someone implements the Kd routines.
[HAL]: HalpInitializePciBus needs to be different between "Bus Handler HALs" (non-ACPI/embedded) and "Non-Bus Handler HALs" (ACPI/x64). On ACPI, all we do is setup the raw PCI Stubs and NMI crashing. PC/AT will need more involved code.

svn path=/trunk/; revision=46647
2010-04-01 19:42:07 +00:00
Timo Kreuzer 4ee89fa8f2 [HAL]
Try to fix build

svn path=/trunk/; revision=46636
2010-04-01 04:19:12 +00:00
Sir Richard 9e478e990f [HALACPI]: Begin rough implementation of the Hal ACPI PnP Driver. Will probably need some changes to the ReactOS PnP Manager to work properly (it is not initialized yet).
[HAL]: Implement helper registry routine.
[HAL]: Implement function to set ACPI mode the "Windows way", which is to enable/disable the firmware mapper. PnP Manager should probably check this in the future.

svn path=/trunk/; revision=46628
2010-03-31 20:58:42 +00:00
Sir Richard d623299da0 [HALACPI]: Implement beginning of HAL ACPI support (HalpSetupAcpiPhase0). Tested on VMWare, where it found the FACP, SRAT, RSDT and MCFG and the ACPI Timer at 1008H. BOOT and DBGP are not found (optional features).
[HALACPI]: Support depends on boot loader creating the ACPI BIOS Multi Node structure in MultiFunctionAdapter in the hardware tree. It seems that FreeLdr does this (wow!) correctly!
[HALACPI]: Implement HAL ACPI Table Cache.
[HALACPI]: HAL ACPI Table Overrides from the boot loader are not supported (doubt FreeLdr does this).
[HALACPI]: The next steps are to write the HAL ACPI PnP Driver and HAL ACPI Power Driver.

svn path=/trunk/; revision=46613
2010-03-31 04:43:39 +00:00
Sir Richard 53b637ba7e [HAL]: Add Phase 0 HAL Heap Allocation/Mapping/Unmapping APIs, remove current broken APIs that depend on Mm having been initialized. These APIs use the HAL Heap that's typically at 0xFFC00000. FreeLDR seems to map this region correctly.
[HAL]: Although currently implemented for ACPI support (to come), these APIs can now also be used to enable DMA in Phase 0 like NT, instead of only in Phase 1 like ReactOS.

svn path=/trunk/; revision=46612
2010-03-31 04:38:20 +00:00
Sir Richard bd4c20220d [HALACPI]: Add some missing signatures.
svn path=/trunk/; revision=46611
2010-03-31 04:34:26 +00:00
Sir Richard 03317815a6 [HALACPI]: Add HAL ACPI header.
svn path=/trunk/; revision=46610
2010-03-31 04:26:04 +00:00
Timo Kreuzer 794e740131 Merge from amd64 branch:
46478
[CRT]
- define _CRTBLD
- rename float_t/double_t/long_double_t to float_s/double_s/long_double_s to avoid name conflicts

46511
[FREELDR]
snprintf -> _snprintf

46534
[CRT]
- Set crt="static" in freeldr, rtl, bmfs, ftfd, rtl, mini_hal
- define "CRTDLL" in ntdll, crtdll, msvcrt, msvcrt20, msvcrt40

46535
[CRT HEADERS]
- add _mingw_mac.h from ming-w64 and include it into _mingw.h
- Update _CRTIMP definition
- Fix definition of _wctype
- onexit is not _CRTIMP

46537
[MINGW]
Update mingw library to mingw-w64 trunk (mingw-w64-src_20100325)

46538
Apply MSVC compilation fix.

46539
[MINGW]
Apply MSVC compilation fixes

svn path=/trunk/; revision=46597
2010-03-30 13:30:36 +00:00
Sir Richard d42e771516 [HALACPI]: Add project, right now it just builds the normal HAL. The idea is to split the generic HAL into legacy (x86 only) and ACPI (x86+ACPI, or x64). Bus handling, reboot/shutdown, PnP, power management (sleep/resume/hibernate), timer, environment variable, debugging, and initialization code is expected to differ between legacy and ACPI, if not more.
svn path=/trunk/; revision=46574
2010-03-29 21:35:31 +00:00
Timo Kreuzer 173013b4d4 [CRT]
- Set crt="static" in freeldr, rtl, bmfs, ftfd, rtl, mini_hal
- define "CRTDLL" in ntdll, crtdll, msvcrt, msvcrt20, msvcrt40

svn path=/branches/ros-amd64-bringup/; revision=46534
2010-03-28 23:06:36 +00:00
Timo Kreuzer 7aab8a308b [HAL]
Update from trunk

svn path=/branches/ros-amd64-bringup/; revision=46531
2010-03-28 22:50:04 +00:00
Timo Kreuzer 67e1375139 [HAL]
Fix rbuild files

svn path=/branches/ros-amd64-bringup/; revision=46469
2010-03-26 16:03:03 +00:00
Timo Kreuzer 42f403f39d Merge trunk head (46467)
svn path=/branches/ros-amd64-bringup/; revision=46468
2010-03-26 15:47:53 +00:00
Timo Kreuzer deac9bacde [HAL]
Add some files for amd64, just enough to make compilation start.

svn path=/trunk/; revision=46455
2010-03-26 00:21:45 +00:00
Timo Kreuzer c20a4b4bb5 fix build
svn path=/trunk/; revision=46448
2010-03-25 19:32:45 +00:00
Timo Kreuzer bcd0ad3405 [HAL]
- Move architecture specific files into appropriate folders
- Move UP specific files into up folder

svn path=/trunk/; revision=46447
2010-03-25 19:23:09 +00:00
Timo Kreuzer 929bbc7b7c [HAL]
UP/MP cleanup:
- remove KxAcquireSpinLock from halp.h, use the one from ntoskrnl instead
- Use generic/spinlock.c in hal_generic_up and hal_generic_mp
- Delete mp/spinlock.c
- Move cmos spinlock functions to spinlock.c to make sure they are compiled for both up and mp
- Move wrappers around fastcall functions to misc.c, as they are identical on up/mp.

svn path=/trunk/; revision=46446
2010-03-25 18:37:59 +00:00
Timo Kreuzer 6fdf4de02b Fix build (1/x)
svn path=/branches/ros-amd64-bringup/; revision=46384
2010-03-24 00:59:16 +00:00
Timo Kreuzer 9df4519b79 Merge trunk HEAD (r46369)
(part 6/6)

svn path=/branches/ros-amd64-bringup/; revision=46380
2010-03-24 00:03:54 +00:00
Timo Kreuzer cbdf28bb6a [HEADERS]
Reintegrate header-work branch. Thanks to hours of boring work on the ddk headers (Most of it done by Amine Khaldi), we have now a decent set, which is still incomplete but already relatively close to latest WDK. A clean rebuild is recommended.

svn path=/trunk/; revision=46155
2010-03-12 23:16:29 +00:00
Hervé Poussineau 8cbf93f23d [freeldr] Don't write twice the delay method and how to read the RTC. Use those in the HAL
svn path=/trunk/; revision=45817
2010-03-03 23:13:06 +00:00
Hervé Poussineau 02f31de4d1 [hal] Add a mini-HAL static library
Mostly the same thing as the real one, except interrupts and DMA

svn path=/trunk/; revision=45809
2010-03-03 21:56:52 +00:00
Timo Kreuzer 9ea495ba33 Create a branch for header work.
svn path=/branches/header-work/; revision=45691
2010-02-26 22:57:55 +00:00
Ged Murphy c5b25b8e9b - Move from using include guards to pragma once.
- Whilst this is non-standard and potentially makes the code less portable, it's supported by both gcc and msvc and should bringg increased compilation speed due to its optimized behaviour (doesn't need to invoke the preprocessor)
- Patch by Amine Khaldi [amine.khaldi@reactos.org]

svn path=/trunk/; revision=45685
2010-02-26 11:43:19 +00:00
Timo Kreuzer b69e24713a [HAL]
- Replace the inline assembly for entering V86 and the actual V86 stub with real assembly. This is neccesary for compiler portability. Also creating 16 bit V86 assembly using 32 bit inline assembly is rather hackish.

svn path=/trunk/; revision=45683
2010-02-26 00:07:22 +00:00
Daniel Reimer 90ce7d8b37 XML Compliance Patch for the RBUILD Files. By Samuel Serapion
svn path=/trunk/; revision=45631
2010-02-20 12:41:24 +00:00
Sir Richard de3d0b9d0c Patch by Daniel Zimmermann <netzimme@aim.com>:
[DDK]: Add PCI_ADDRESS_MEMORY_SPACE.
[HAL]: Use it in HalpAssignPCISlotResources.

svn path=/trunk/; revision=45611
2010-02-18 17:00:09 +00:00
Timo Kreuzer 43108b2dd0 [HAL]
Restore fs in HalpTrap06. Should fix crash on 1st stage with VBox.

svn path=/trunk/; revision=45573
2010-02-11 17:36:57 +00:00
Timo Kreuzer dd6b443e89 [REACTOS] Add asm.h containing macros to make assembly code both GAS and ML compatible at the same time.
[NTOS/HAL] Move trap entry points from C into a GAS/ML compatile assembly file (might need fine tuning for ML). The entries are generated by a shared assembly macro TRAP_ENTRY. Removed KiTrapStub, KiIsV8086TrapSafe, KiIsUserTrapSafe, KiSetSaneSegments, removed segment handling from KiEnter*Trap.
[NTOS] Make KiFastCallEntryHandler and KiSystemServiceHandler FASTCALL and pass the systemcall number in TrapFrame->Eax
[HAL] Use _setjmp/longjmp instead of saving a trapframe in HalpBiosCall

svn path=/trunk/; revision=45565
2010-02-10 23:24:59 +00:00
evb 8e6d54f4b8 - New ARM HAL after 2 nights in the company of a madman.
- Many fixes, more implemented routines, support for ARMv7.
- Some Linux code, marked as GPL, from ARM Ltd in cache.s. All OS use this code.

svn path=/trunk/; revision=45518
2010-02-09 02:26:28 +00:00
Timo Kreuzer 2a4563b90d [HAL]
Add a file, I forgot

svn path=/branches/ros-amd64-bringup/; revision=45499
2010-02-08 15:50:27 +00:00
Timo Kreuzer eb35955f30 Merge trunk head (r45466)
svn path=/branches/ros-amd64-bringup/; revision=45467
2010-02-06 20:36:45 +00:00
Timo Kreuzer ae3d0930ce [HAL]
Add the x86 emulator to x86BiosCall. It can call into int 10 and executes a few instructions.

svn path=/branches/ros-amd64-bringup/; revision=45466
2010-02-06 19:16:23 +00:00
Timo Kreuzer cb79d231d7 [HAL]
- Simplify check for matching kernel/hal
- Remove underscore from _MsgUnimplemented

svn path=/branches/ros-amd64-bringup/; revision=45443
2010-02-06 01:26:52 +00:00
Timo Kreuzer 28c8b7fbec [AMD64]
Switch from underscore prefixed symbols to unprefixed symbols. (MSVC compatibility)

svn path=/branches/ros-amd64-bringup/; revision=45410
2010-02-04 04:58:09 +00:00
Timo Kreuzer e817db75e4 [HAL]
Fix KGDT64 macro name

svn path=/branches/ros-amd64-bringup/; revision=45407
2010-02-04 04:22:58 +00:00
Sir Richard 02c2d27111 [ARM]: Fix the ARM build, hopefully without breaking the x86 build in the process. Sorry buds!
svn path=/trunk/; revision=45368
2010-02-01 03:51:45 +00:00
Aleksey Bragin da2a2649db [FORMATTING]
- Reformat dma.c, no code change.

svn path=/trunk/; revision=45363
2010-01-31 20:35:06 +00:00
Sir Richard 0eef75a032 [HAL]: Add debugging feature to HalpTrap06 error that sometimes happen. Please post/email/IM your trap frame should you see this error.
svn path=/trunk/; revision=45348
2010-01-30 16:40:57 +00:00
Sylvain Petreolle 4d1da2ea5c [HAL]
fix HalEndSystemInterrupt prototype.

svn path=/trunk/; revision=45324
2010-01-29 22:08:09 +00:00
Sylvain Petreolle 26dab4c37d add missing delimiters
svn path=/trunk/; revision=45323
2010-01-29 22:03:56 +00:00
Sir Richard 4e16ca56ce [HAL]: Rewrite IRQL handling. Alex's original code (lately translated to C) was a copy of the MicroChannel (MCA), Checked-Build HAL, an unexplained choice considering MCA is not supported or even available anymore. Windows, on machines with a PIC, uses a mechanism called Lazy IRQL, in which the PIC is only programmed "lazily", meaning that lowering and raising the IRQL does not actually change the interrupt mask. Therefore, lower priority interrupts will still come in at high IRQL. At this point, the HAL will detect this, only now mask the PICs, and lie that the lower interrupt was "spurious", while setting a pending bit. When the IRQL is lowered, the bit is detected, and a software/delayed "INT" is done with the correct IRQ vector number. More details are available in the typical resources.
[HAL]: Implement support for Level interrupts, which are used by certain EISA cards, and more particularly, all PCI hardware. Level interrupts were not previously handled correctly, being treated as edge/latched interrupts instead.
[NTOS/HAL]: Remove VDM Alert KPCR hack (which was buggy). Now the PKTRAP_FRAME is passed as a parameter to HalpEndSoftwareInterrupt/HalEndSystemInterrupt. This also removes the HalpNestedTrap ASM hack, since the call can now be done in C.
[PERF]: On real machines, writing the PIC mask is a relatively expensive I/O operation, and IRQL lower/raise can happen hundreds of times a second. Lazy IRQL provides an important optimization.
[PERF]: Correctly handling level interrupts as level interrupts allows for faster, and more efficient, IRQ handling.

svn path=/trunk/; revision=45320
2010-01-29 21:10:33 +00:00
Sir Richard 38668a867a [HAL]: Mark ECX as clobbered in HalpNestedTrap, otherwise if the compiler decides to store IRQL in ECX, it will then be overriden with our ECX parameter. With this clobber, the compiler will use another register, such as EAX, to hold the IRQL.
svn path=/trunk/; revision=45316
2010-01-29 08:14:51 +00:00
Sir Richard ac9c20ac0f [HAL]: Fix HalpFlushTlb. Thanks to Stefan Ginsberg <stefan100@reactos.org>
svn path=/trunk/; revision=45303
2010-01-28 23:08:04 +00:00
Sir Richard 7509f62a3b [PERF]: Optimize nested interrupt cases (where a pending interrupt exists at the end of a software or system interrupt) just like the old HAL did, by jumping into a second-level handler and completing the outer trap frame instead of the nested trap frame. This saves a lot of cycles in those cases, and they do happen quite often (pending DPC at the end of an interrupt, for example).
[NTOS/HAL]: Rework respective code to handle this by using the VDM Alert field in the KPCR.

svn path=/trunk/; revision=45301
2010-01-28 20:45:45 +00:00
Sir Richard 49ca1be9f3 [HAL]: Implement the profile and clock interrupt trap/handlers in C instead of ASM. This allows the kernel to remove the ugly hacks based on internal knowledge of how the assembly/stack of the HAL is supposed to look like. Everything is now done through a clean C interface.
[NTOS]: Remove said hacks and have a normal C implementation of KeUpdateSystemTime. It exits the interrupt through a soft interrupt exit.
[NTOS]: Implement 4 lines of support code needed to handle interrupts during V8086 mode, which were lacking since we weren't hitting this case yet.
Note that now the KeUpdateSystemTime interface is not "compatible" with Windows anymore. This does not matter, since the only possible caller of KeUpdateSystemTime is a very specific HAL routine that needs a very specific stack layout to actually work, so the chance of anyone calling this API is absolutely zero (no, not even some experimental driver. It's absolutely impossible).

svn path=/trunk/; revision=45276
2010-01-26 21:41:05 +00:00
Sir Richard 92df9a6434 [HAL]: Rewrite all V8086-related code in C instead of ASM. Delete v86.s. Makes uses of new macros and developments in NTOS, but should now only end up getting called at shutdown and for bugchecks.
svn path=/trunk/; revision=45272
2010-01-26 19:41:31 +00:00
Sir Richard 66a3a56604 [HAL]: Move the HalpApcInterrupt and HalpDispatchInterrupt to pic.c now that there is a C-macro to generate such stubs. Remove irq.S from build/sources.
svn path=/trunk/; revision=45267
2010-01-26 16:31:32 +00:00
Sir Richard 219e108e3c [NTOS]: Split the GENERATE_TRAP_HANDLER in two separate macros. The original builds the name of the function (and makes it global), while the TRAP_HANDLER_PROLOG is actually the code.
[NTOS]: Make TRAP_HANDLER_PROLOG handle software traps, in which the interrupt stack must be faked.
[NTOS]: Optimize TRAP_HANDLER_PROLOG by not pushing an error code and then making space on the stack without the error code -- just make space with the error code in the first place (nobody reads the value, so having it zero or garbage isn't important).
[HAL]:  Implement the APC and DPC software interrupt traps in C instead of ASM. Delete all contents of irq.S except the two GENERATE_TRAP_HANDLER stubs.

svn path=/trunk/; revision=45244
2010-01-25 03:00:01 +00:00
Sir Richard ef75d24bac [HAL]: Implement HalEndSystemInterrupt and HalpEndSoftwareInterrupt. Remove more ASM code/tables that aren't unused anymore.
svn path=/trunk/; revision=45243
2010-01-25 01:51:47 +00:00
Sir Richard 461a068032 [HAL]: Implement HalRequestSoftwareInterrupt in C instead of ASM. Remove deprecated ASM code that was unused.
svn path=/trunk/; revision=45241
2010-01-25 01:26:53 +00:00
Sir Richard fdae8b5c9c [HAL]: KfLowerIrql in C instead of ASM. Add the SWInterruptLookUpTable and SWInterruptHandlerTable to the code and keep the same mechanism as the ASM code used.
svn path=/trunk/; revision=45240
2010-01-25 01:20:43 +00:00
Sir Richard 8e91a3a3f9 [HAL]: Okay, this one was my fault, forgot to built the nasty-ass HALMPS. Move the CMOS lock routines to the shared CMOS file.
svn path=/trunk/; revision=45239
2010-01-24 23:57:09 +00:00
Sir Richard 44b79bf92f You really need to get your compiler version shit together. I was told GCC 4.4 is what's used in ReactOS, yet the build server insists on using an old and broken version of GCC that doesn't support half the things we're trying to do here! Hackfix the Mask Table by providing ugly and incomprehensible hex magic numbers for the mappings, if a GCC older than 4.4 is used.
svn path=/trunk/; revision=45238
2010-01-24 23:35:07 +00:00
Sir Richard 1215f71ed8 [HAL]: Implement and document the HalpSpecialDismissTable. Explain how each IRQ should be handled and what the special cases are. Implement said special cases (based on ISA System Architecture, 3rd Edition).
[HAL]: Implement HalBeginSystemInterrupt in C instead of ASM, it jumps into one of the IRQ handlers registered in the HalpSpecialDismissTable.

svn path=/trunk/; revision=45237
2010-01-24 23:30:43 +00:00
Sir Richard f79bc2e7f0 [HAL]: Implement HalEnableSystemInterrupt and HalDisableSystemInterrupt in C instead of ASM.
svn path=/trunk/; revision=45236
2010-01-24 23:21:36 +00:00
Sir Richard 9c976d58e7 [HAL]: Document and implement KiI8259MaskTable in C using actual bit positions. Each mapping is best to the best of my ability.
[HAL]: Implement KfRaiseIrql in C, remove ASM version.

svn path=/trunk/; revision=45235
2010-01-24 23:19:40 +00:00
Sir Richard 575fd458f2 [HAL]: Implement KeGetCurrentIrql, KeRaiseIrqlToDpcLevel, KeRaiseIrqlToSynchLevel, HalClearSoftwareInterrupt in C instead of ASM.
svn path=/trunk/; revision=45234
2010-01-24 23:14:08 +00:00
Sir Richard ab8a8ee784 [HAL] Merge HalpAcquireSystemHardwareSpinLock and HalpReleaseCmosSpinLock from Timo's AMD64 branch, and delete ASM implementations.
svn path=/trunk/; revision=45233
2010-01-24 23:12:30 +00:00
Dmitry Gorbachev 24c017fb93 Fix initialization of PICs.
svn path=/trunk/; revision=45220
2010-01-23 23:39:43 +00:00
Dmitry Gorbachev c88ec84439 Fix build.
svn path=/trunk/; revision=45218
2010-01-23 21:57:15 +00:00
Samuel Serapion 1ac4e0fac7 - commctrl.h: revert a change from 45098 which is incorrect.
- make some floating point math available on x64
- build fixes.

svn path=/branches/ros-amd64-bringup/; revision=45208
2010-01-23 04:18:57 +00:00
Timo Kreuzer 36d8d87a11 [HAL]
Cleanup part 1/x
- Rename each architectures default hal to "hal" and delete the stubbed "hal" module.
- Delete halamd64 (will later reuse the x86 hal)
- Rename "halmp" to "halmps" as it's called on windows
- Set HalInitSystem as entry point
- Move pcibus.c into hal_generic.rbuild
- Use a common .pspec file
- Use a directory.rbuild for halx86 as it was done for the other architectures already
- Move some code from hal_generic to hal_generic_up
- No code change

svn path=/trunk/; revision=45195
2010-01-21 21:05:45 +00:00
Samuel Serapion 351f173762 Fix build.
svn path=/branches/ros-amd64-bringup/; revision=45193
2010-01-21 19:54:40 +00:00
Samuel Serapion d16e5ecdca - Remove old HalpInitPICs
svn path=/branches/ros-amd64-bringup/; revision=45190
2010-01-21 19:40:32 +00:00
Timo Kreuzer 663e3ac4c2 [HAL]
Fix build

svn path=/branches/ros-amd64-bringup/; revision=45189
2010-01-21 19:34:30 +00:00
Timo Kreuzer 5f457606f3 Merge trunk r45185
svn path=/branches/ros-amd64-bringup/; revision=45186
2010-01-21 18:34:48 +00:00
Christoph von Wittich 051cf08911 [HAL]
-header cleanup
-spaces -> tabs in rbuild file

svn path=/trunk/; revision=45183
2010-01-21 13:43:49 +00:00
Sir Richard 819e842b8e [HAL]: The HAL is a mess. Fix build.
svn path=/trunk/; revision=45182
2010-01-21 13:36:30 +00:00
Sir Richard 202f931c4e [HAL]: Initialize the i8259A PIC controllers in C, and add register structures and enumerations to document the bits. These were taken from ISA System Architecture 3rd Edition and EISA System Architecture 2nd Edition by Mindshare.
[HAL]: Add code to detect EISA systems with ELCR (Edge/Level Control Register). Since the current HAL does not support these, warn users about any level/shared interrupts, since they are likely to cause trouble.

svn path=/trunk/; revision=45180
2010-01-21 12:51:13 +00:00
Samuel Serapion 6e80066aad [HAL]
Fix mp and mps builds.

svn path=/branches/ros-amd64-bringup/; revision=45116
2010-01-17 07:56:11 +00:00
Timo Kreuzer 5e5df9a707 Sync to trunk HEAD (r45072)
svn path=/branches/ros-amd64-bringup/; revision=45074
2010-01-14 08:53:42 +00:00
Timo Kreuzer df461e55cc [HAL]
add HalInitializeBios to amd64 exports

svn path=/branches/ros-amd64-bringup/; revision=45072
2010-01-14 07:56:34 +00:00
Timo Kreuzer 4f3a2dfc7e [HAL]
- Move x86 emulator definitions into their own header
- Fix handling of the real mode IDT in x86BiosCall
- Implement HalpBiosDisplayReset
- Fix a copy paste error

svn path=/branches/ros-amd64-bringup/; revision=45047
2010-01-11 19:29:16 +00:00
Eric Kohl ba16f69763 Removed outdated email addresses.
svn path=/trunk/; revision=45020
2010-01-09 22:43:16 +00:00
ReactOS Portable Systems Group 6ce614c110 - Document and define Timer and System Control Ports (0x43, 0x61) as defined in ISA System Architecture 3rd Edition and The Undocumented PC.
- Document PIT access modes, channels and operating modes.
- Rewrite HalHandleNMI to use the System Control Port definitions instead of magic values that were never explained.
- Rewrite HalMakeBeep not to program the PIT with magic hexadecimal values that were not explained anywhere and seem dubious.
- Fix the PIT frequency to match its correct value of ~1.19318MHz which is what every x86 book states and what Linux and all other operating systems use. This is equivalent to one third of the NTSC color burst (subcarrier frequency) used on CGA computers for video output. Previously, the HAL used 1.193167MHz, which is only used by NT and isn't documented anywhere, and in fact appears to be a typo in the NT sources (a less accurate way of dividing the NTSC color burst gives 1.19318167MHz). Somehow, the ReactOS developer of this function must have made the same "typo", by complete coincidence, of course.
- Rewrite part of HalpInitializeClock to use the new definitions. This function was at least somewhat documenting the magic values.


svn path=/trunk/; revision=44991
2010-01-08 04:31:19 +00:00
ReactOS Portable Systems Group 53236395a1 - Restore PROGRAMMER's field correctly.
svn path=/trunk/; revision=44990
2010-01-07 19:08:11 +00:00
Timo Kreuzer f6bd1f70d8 [HAL]
- comment out an ASSERT for now
- add Mdl flag MDL_PAGES_LOCKED
- remove obsolete DriverEntry

svn path=/branches/ros-amd64-bringup/; revision=44983
2010-01-06 23:03:19 +00:00
Timo Kreuzer 4289213dc7 [HAL]
Move x86bios.c into amd64 folder

svn path=/branches/ros-amd64-bringup/; revision=44942
2010-01-05 00:59:00 +00:00
Timo Kreuzer 0926f419e7 [HAL]
Include the correct architecture specific headers

svn path=/branches/ros-amd64-bringup/; revision=44939
2010-01-05 00:14:07 +00:00
Timo Kreuzer c6f200a18b Sync to trunk (r44933)
svn path=/branches/ros-amd64-bringup/; revision=44938
2010-01-05 00:11:08 +00:00
Timo Kreuzer ff2823e543 [HAL]
Remove hacks

svn path=/branches/ros-amd64-bringup/; revision=44936
2010-01-04 22:54:12 +00:00
Timo Kreuzer 77c52a8a4b compile x86Bios functions only for amd64
svn path=/branches/ros-amd64-bringup/; revision=44935
2010-01-04 22:51:34 +00:00
Timo Kreuzer 1ee5ad30ab [HAL]
Implement HalInitializeBios, x86BiosAllocateBuffer, x86BiosFreeBuffer, x86BiosReadMemory and x86BiosWriteMemory
Halfplement x86BiosCall (We don't have the necessary emulator yet)

svn path=/branches/ros-amd64-bringup/; revision=44934
2010-01-04 22:12:18 +00:00
Timo Kreuzer 909e90aceb [HAL]
- Use spinlock.h from ntoskrnl, instead of duplicating the definitions
- Use one spinlock.c, but compiled for 2 static libs (hal_generic_up and hal_generic_mp)
- Move HalpAcquireSystemHardwareSpinLock and HalpReleaseCmosSpinLock to spinlock.c and use the inline functions for the kernel to make Arch happy.

svn path=/branches/ros-amd64-bringup/; revision=44894
2010-01-02 20:03:49 +00:00
Dmitry Gorbachev 3b558d84dd Lift a protection (forgotten in 44842).
svn path=/trunk/; revision=44866
2010-01-02 00:17:37 +00:00
ReactOS Portable Systems Group 126c7209ac NMI Support Patch 7 Build Fixer:
[HAL]: Define HalpNMIInProgress as an external in the HAL private headers.

svn path=/trunk/; revision=44863
2010-01-01 21:07:22 +00:00
ReactOS Portable Systems Group 9e858a7261 NMI Support Patch 7 Straggler:
[HAL]: Piggyback on V8086 handler (don't restore kernel GPF handler) during an NMI, so that we don't enter another fault context during a recursive NMI after display reset. If another NMI does happen, the V8086 GPF handler will just spin.


svn path=/trunk/; revision=44862
2010-01-01 21:05:41 +00:00
ReactOS Portable Systems Group 1b1c2360bb NMI Support Patch 7:
[NTOS]: Improve UNHANDLED_PATH macro with a new "Reason" parameter which displays why the path is unhandled (ie: what the unexpected/unlikely/untested scenario is). This is better than just displaying the current PC which is typically useless.
    [NTOS]: Separate UNHANDLED_PATH from UNHANDLED_V86_PATH which is specifically for paths that are unimplemented due to lack of VDM support.
    [HAL]:  Update to new macros in V8086 support, and handle invalid opcode errors with a debug print (I encountered these when the NMI TSS was being used, since the IOPM was invalid).
    [HAL]:  If the V8086 GPF handler is called outside of V8086 mode, assume an NMI happened around the BIOS Call and just spin forever. We'll piggyback on the V8086 GPF handler during an NMI, in order to avoid the kernel's GPF handler which would attempt to panic/reset the display again (and cause endless NMI recursion/corruption).


svn path=/trunk/; revision=44861
2010-01-01 21:03:22 +00:00
ReactOS Portable Systems Group 6f0ef76efe NMI Support Patch 6:
[HAL]: Fix NMI recursion issues.
    [HAL]: Reset the display during NMI and paint the NMI Screen of Death.

svn path=/trunk/; revision=44860
2010-01-01 20:55:15 +00:00
ReactOS Portable Systems Group 8266b754b6 NMI Support Patch 5:
[HAL]: Do correct TLB flushing for systems with global page support.
    [HAL]: Clean leading whitespace and comments.


svn path=/trunk/; revision=44856
2010-01-01 16:37:34 +00:00
ReactOS Portable Systems Group 61df639e4a NMI Support Patch 4:
[HAL]:  Use Mm headers to support PTE/PDE address translation instead of a hardcoded, homegrown macro. WARNING: The current HAL code is not PAE compatible (as it already wasn't).
    [NTOS]: Define an inline function to set and query an interrupt handler associated with a given IDT vector. This results in much cleaner code as the uglyness of manually setting up an IDT handler isn't duplicated 10 times. Additionally, it fixes some callers which had not been using HalVectorToIDTEntry to make the initial translation.

svn path=/trunk/; revision=44855
2010-01-01 15:09:14 +00:00
Timo Kreuzer d786ac57d2 [HAL]
Don't spin with an interlocked operation.

svn path=/branches/ros-amd64-bringup/; revision=44849
2010-01-01 12:17:24 +00:00
ReactOS Portable Systems Group 040c742cac NMI Support Patch 3:
[HAL]: If the current TSS does not have enough space for an I/O Privilege Map then "borrow" the default TSS while the BIOS Call is in-flight. "Return" it when the BIOS call has ended. Fixes panics during a double fault (since the double fault handler will attempt to clear the display through a Video ROM BIOS Interrupt 10h). Allows NMI panics to do BIOS calls as well (for later).


svn path=/trunk/; revision=44843
2010-01-01 00:03:52 +00:00
ReactOS Portable Systems Group fd1ccbe10c NMI Support Patch 2:
[HAL]: Simplify IDT write-protection handling (always make it R/W and restore it to previous state).
    [HAL]: Avoid two superflous TLB flushes.


svn path=/trunk/; revision=44842
2009-12-31 23:56:40 +00:00
ReactOS Portable Systems Group 2e1b82cf72 NMI Support Patch 1:
[HAL]:  The I/O Permissions Map on a typical Privileged Mode x86 OS is all 0xFF's, so it's quite wasteful to copy-in/out the entire map each single BIOS Call. As an optimization, only save and restore non-0xFF entries.
    [NTOS]: Define and use constants for different IOPM values, instead of using hardcoded values.


svn path=/trunk/; revision=44841
2009-12-31 23:51:26 +00:00
Timo Kreuzer a1bc42e31a [HAL]
Replace the asm implementations of HalpAcquireSystemHardwareSpinLock and HalpReleaseCmosSpinLock with C implementations. The old ones didn't work on SMP, as they were only compiled once as UP.

svn path=/branches/ros-amd64-bringup/; revision=44840
2009-12-31 23:45:36 +00:00
Timo Kreuzer a4123875f0 fix build of halxbox
svn path=/branches/ros-amd64-bringup/; revision=44837
2009-12-31 21:43:20 +00:00
Timo Kreuzer e609c18651 fix spec file for x86
svn path=/branches/ros-amd64-bringup/; revision=44836
2009-12-31 21:31:14 +00:00
Timo Kreuzer 5ec7192b66 [HAL]
- Move the rest from halamd64 to halx86

svn path=/branches/ros-amd64-bringup/; revision=44835
2009-12-31 21:23:01 +00:00
Timo Kreuzer 2a0c1bf649 [HAL]
- rename halmp to halmps
- remove hal_generic_pc
- remove some stuff from halamd64

svn path=/branches/ros-amd64-bringup/; revision=44834
2009-12-31 20:46:45 +00:00
Timo Kreuzer b40509f919 use a directory.rbuild for halx86
svn path=/branches/ros-amd64-bringup/; revision=44833
2009-12-31 19:46:47 +00:00
Timo Kreuzer bda3767dfb [HAL]
some improvements

svn path=/branches/ros-amd64-bringup/; revision=44832
2009-12-31 19:26:37 +00:00
Timo Kreuzer 6d68ae384a [HAL]
- begin integrating halamd64 into halx86
- Move some amd64 specific stuff into halx86
- use hal_generic for amd64, too

svn path=/branches/ros-amd64-bringup/; revision=44831
2009-12-31 16:51:05 +00:00
Timo Kreuzer 18534cb3b7 [HAL]
- fix indentation
- add HalDisableSystemInterrupt and HalEnableSystemInterrupt stubs

svn path=/branches/ros-amd64-bringup/; revision=44830
2009-12-31 16:47:09 +00:00
Timo Kreuzer 54dd2d3fd6 [HAL]
- fix pspec
- entrypoint should be HalInitSystem

svn path=/branches/ros-amd64-bringup/; revision=44829
2009-12-31 15:38:34 +00:00
Timo Kreuzer 773fab1b92 [HAL]
use the pspec for amd64, too

svn path=/branches/ros-amd64-bringup/; revision=44828
2009-12-31 15:31:20 +00:00
Timo Kreuzer 216f7788eb [HAL]
- Raname each architecture's default hal (halup) to "hal" (Windows does that, too) and get rid of the duplicated stub hal.

svn path=/branches/ros-amd64-bringup/; revision=44827
2009-12-31 15:19:17 +00:00
Timo Kreuzer 7e2711ef2a fix a typo
svn path=/branches/ros-amd64-bringup/; revision=44826
2009-12-31 15:12:16 +00:00
Timo Kreuzer 3d53481c23 [HAL]
- Move i386 specific code into i386 folder
- Move up specific code into up folder

svn path=/branches/ros-amd64-bringup/; revision=44825
2009-12-31 14:57:24 +00:00
Timo Kreuzer 2a7cba77ee [HAL]
- Implement architecture specific HalpSetInterruptGate, replacing SetInterruptGate

svn path=/branches/ros-amd64-bringup/; revision=44823
2009-12-31 14:29:50 +00:00
Samuel Serapion 8403dd605f Add definitions for the x86bios emulator.
http://www.geoffchappell.com/viewer.htm?doc=studies/windows/km/hal/api/x86bios/index.htm

svn path=/branches/ros-amd64-bringup/; revision=44807
2009-12-30 07:53:02 +00:00
Timo Kreuzer 0752824a4b Remove the totally broken asm implementation of KeQueryPerformanceCounter and replace it with a much simpler C version using __rdtsc().
svn path=/branches/ros-amd64-bringup/; revision=44795
2009-12-28 17:53:26 +00:00
Samuel Serapion aea03eb5bf Implement HalpInitPICs
svn path=/branches/ros-amd64-bringup/; revision=44791
2009-12-28 06:38:19 +00:00
Samuel Serapion d2c55015f1 [rbuild]
- Fix make install.
- Fix mkhive command.
- Automatically generate reactos.dff using the installfile and installbase attributes found in rbuild files.
-- Fixes race to grab reactos.dff on concurrent builds in the same tree.
-- Makes the result of make install, make livecd and make bootcd the same(some modules arent in reactos.dff but have installfile/base attributes, which means they got intto livecd/install but not bootcd!)
-- Works really great with rosapps/rostests.
-- Downside is some files now exist inside and outside the generated cab file, maybe this could be useful if we wanted to have a package that contained reactos and an app that installed it from livecd... just thinking out loud...

svn path=/branches/ros-amd64-bringup/; revision=44762
2009-12-26 06:07:38 +00:00
Samuel Serapion 42610c6d93 -Remove hacks for older gcc versions.
-Black list gcc below 4.4.2
-Black list ld below 20091119.
-99.99% Based on bug 4810
-Speeds up my build by 3 minutes

svn path=/branches/ros-amd64-bringup/; revision=44550
2009-12-12 15:41:43 +00:00
Timo Kreuzer 3ab9af72ac - merge r44429
- fix hal_generic_amd64.rbuild
- add missing files

svn path=/trunk/; revision=44430
2009-12-06 02:44:06 +00:00
Samuel Serapion 07bd1f96bd Sync to trunk (r44371)
svn path=/branches/ros-amd64-bringup/; revision=44372
2009-12-03 07:26:32 +00:00
Stefan Ginsberg a8286c3821 - Documentative amendment to 44115: It incorrectly stated that the commit added "init(i)al support for PCI and ISA interrupts". What was added is (disabled) initial support for ISA, EISA and PCI configurations that require level-triggered interrupts (we only support edge-triggered interrupts right now) and PCI IRQ routing, along with proper handling of IRQ13.
svn path=/trunk/; revision=44121
2009-11-12 21:46:52 +00:00
Stefan Ginsberg c02b96254e - Add inital support for PCI and ISA interrupts.
- Use different register allocation to be more efficient on certain systems.
- Add tables and initial code for Lazy IRQL support.

svn path=/trunk/; revision=44115
2009-11-11 22:29:16 +00:00
Stefan Ginsberg 662ba31e98 - Fix HalDisableSystemInterrupt -- it doesn't return anything.
- Fix VideoPortEnable/DisableInterrupt -- they should only fail if the driver didn't provide an ISR (documented).

svn path=/trunk/; revision=44085
2009-11-10 23:00:51 +00:00
Timo Kreuzer 81a17fc8f4 add missing file
svn path=/branches/ros-amd64-bringup/; revision=44072
2009-11-10 03:36:57 +00:00
Timo Kreuzer 843b9ee1eb Merge trunk HEAD (r44067)
svn path=/branches/ros-amd64-bringup/; revision=44069
2009-11-10 02:40:48 +00:00
Stefan Ginsberg ccd3b00fd2 - Fix unsigned/signed compare, spotted by Christoph
svn path=/trunk/; revision=44062
2009-11-09 23:07:04 +00:00
Stefan Ginsberg a9f0dd5a8d - Implement the generic bus handler support and initialization.
- Add missing hack flags for ACPI hacks.
- Add the hack flags to the registry.

svn path=/trunk/; revision=44061
2009-11-09 22:59:49 +00:00
Stefan Ginsberg afd1ab1b6d - HAL uses HARDWARE_PTE, not MMPTE_HARDWARE, so remove broken SMP fix
svn path=/trunk/; revision=44033
2009-11-08 22:17:05 +00:00
Stefan Ginsberg aaad231bf1 - Fix work around for the cmpxchg8b lock errata work around -- don't set write protection if the kernel hasn't set it yet. Move the code out to HalpBiosDisplayReset so we can keep track of this. Also set the correct bit on SMP systems.
svn path=/trunk/; revision=44032
2009-11-08 21:42:28 +00:00
Stefan Ginsberg 65ebf6adac - Add HAL PCI tables required for future work.
svn path=/trunk/; revision=44022
2009-11-08 00:22:29 +00:00
Stefan Ginsberg c74f994e2f - Refactor stubbed HAL resource report slightly.
- Move the resource routines to their own file instead of sysinfo.c.
- Add missing members to PCIPBUSDATA.
- Kill old, unused generic.rbuild.

svn path=/trunk/; revision=43991
2009-11-06 23:55:08 +00:00
Stefan Ginsberg 422721748d - Finish the work around for the Pentium cmpxchg8b lock errata: We detected the errata and allocated the 7 first IDT entries on a write protected page, but the final piece of the work around, detecting the write fault ti the Invalid Opcode handler, was missing. Implemented this in the page fault handler to detect and dispatch the write fault to the Invalid Opcode handler.
- Fix the "fix" of un-protecting the 7 IDT entries on P5 in HAL's BIOS call code when setting the custom Invalid Opcode handler. The IDT was unprotected but the write protection wasn't reapplied after the BIOS call, breaking the work around.

Other:
- KdDebuggerEnabled is a BOOLEAN, so don't do a dword compare in KeUpdateSystemTime.
- Use better comment for the hack where we always allow page faults to be handled, even if they the fault occured with interrupts disabled.

svn path=/trunk/; revision=43958
2009-11-04 21:57:32 +00:00
Stefan Ginsberg 56a64b9357 - There is no reason to use the Kf* routines for IRQL and Spinlocks directly in HAL -- they are defined to the Kf* versions on x86 anyway, so use the Ke* equivalents exclusively.
svn path=/trunk/; revision=43929
2009-11-02 22:54:02 +00:00
Stefan Ginsberg df4086b261 - Document what the 'NoBuses' member in the PCI_REGISTRY_INFO and PCI_REGISTRY_INFO_INTERNAL structures means to avoid confusion.
svn path=/trunk/; revision=43928
2009-11-02 21:46:41 +00:00
Stefan Ginsberg ae81274578 - Fix a FreeLdr PCI detection bug introduced in revision 10742 5 years ago when PCI detection was added. FindPciBios was setting the HardwareMechanism entry in the PCI_REGISTRY_INFO structure (then called CM_PCI_BUS_DATA) to the wrong register returned from the PCI BIOS: CL instead of AL. CL is the number of the last PCI bus in the system (0 if you only have 1 bus, 1 if you have 2 buses). AL contains bit-fields for PCI characteristics, and HAL checks the 2 first bits to determine the type of the BUS. My VMWare test environment has 2 PCI buses, so the number happened to be correct. This doesn't work if there is only 1 PCI bus, such as in QEMU and Vbox, as we then get an invalid PCI type of 0. Fix this and re-enable the PCI detection in HAL to properly detect the PCI type instead of assuming type 1.
svn path=/trunk/; revision=43924
2009-11-02 21:13:45 +00:00
Stefan Ginsberg 7e3ee3137a - Temporarily disable the new HAL PCI detection code since it fails miserably on the build server.
svn path=/trunk/; revision=43917
2009-11-02 19:03:01 +00:00
Stefan Ginsberg 602db5f2d1 - Fix broken HalpQueryPciRegistryInfo: If it wasn't for the fact that it queried a subkey incorrectly ('ConfigurationData' instead of 'Configuration Data') it was setting up the basic structure correctly but forgot to RETURN IT TO THE CALLER.
- Fixes PCI detection detection as HalpInitializePciStubs no longer has to rely on a 'no info = PCI 1' assumption, making PCI 2 detection possible.
- Add support for querying the CurrentControlSet\Control\PnP\PCI\CardList key and retrieving the card list entries (not used yet). Also add the related keys to hivesys.inf so there is something to query.

svn path=/trunk/; revision=43913
2009-11-02 18:05:07 +00:00
Stefan Ginsberg bb55e9c572 - Fix leftover
svn path=/trunk/; revision=43856
2009-10-30 22:15:50 +00:00
Stefan Ginsberg e90168e57e - Restructure HAL bus routines a bit.
- Fix some incorrect HAL types and add some that were missing.

svn path=/trunk/; revision=43855
2009-10-30 22:07:26 +00:00
Stefan Ginsberg 9f6cba21d3 - Missed this file
svn path=/trunk/; revision=43833
2009-10-29 20:10:29 +00:00
Stefan Ginsberg be8d9f285f - INITIAL_STALL_COUNT makes more sense in decimal (100) than hex (0x64) so define it that way.
- Protect CMOS access with the CMOS spinlock.
- Add CMOS initialization to set up the default value of the CMOS century byte offset (not used yet).
- Stub out profile interrupt support in HAL. Register and stub out the profile interrupt handler, but don't handle it yet as vital parts of the rest of the implementation is missing.
- Fix several bugs in the kernel profile implementation:
  - Don't hardcode to PROFILE_LEVEL when raising IRQL : HAL can override this, so use KiProfileIrql. Also, starting/stopping profile interrupts must be done at the profile IRQL, so don't lower it back before calling HAL, which is now enabled.
  - Fix KeSet/QueryIntervalProfile to properly set/query profile intervals through HAL -- pass the correct structures and handle the ProfileAlignmentFixup case properly, and call HAL when setting the timer interval as the interval may be overridden by it.
  - KeStartProfile returns BOOLEAN to tell if the profile was started or not, just like KeStopProfile.
- Make the interrupt implementation more portable for non-PIC architectures.
- Fix HalSystemVectorDispatchEntry; it returns a type (UCHAR), not TRUE/FALSE (BOOLEAN).
- Begin implementing the framework for querying HAL resource usage (keeping track of internal address space and vector registrations/usage).

svn path=/trunk/; revision=43832
2009-10-29 19:58:41 +00:00
Dmitry Gorbachev 145fbbd116 - Update address of Free Software Foundation.
- Update obsolete LGPL v2 to LGPL v2.1.

svn path=/trunk/; revision=43790
2009-10-27 10:34:16 +00:00
Stefan Ginsberg 838ed7f31a - Replace broken implementation of HalpCalibrateStallExecution with a new implementation by a mysterious HAL ninja and myself. The old implementation calculated the stall count factor incorrectly and produced bogus results that were off by several thousand, and varied by as much for each boot, and can best be described as "rand() made complicated". The new implementation installs its own RTC interrupt handler to accurately calculate the stall scale factor, all done in assembler instead of broken C. Fixes the hang at boot when initializing Uniata as stalls no longer takes 10 times or more as long to execute then they should.
svn path=/trunk/; revision=43789
2009-10-27 01:03:41 +00:00
Timo Kreuzer cc5c0a0816 Merge trunk head (r43756)
svn path=/branches/ros-amd64-bringup/; revision=43759
2009-10-25 22:13:11 +00:00
Timo Kreuzer 51afa0b7be remove unused file
svn path=/trunk/; revision=43758
2009-10-25 22:04:32 +00:00
Stefan Ginsberg 3a16c5a061 - Don't use KeBugCheck(0) -- 0 is an invalid bugcode. Use a proper bugcode, DbgBreakPoint or UNIMPLEMENTED instead depending on how the old call was used.
- Remove some unused and deprecated macros from the network stack that did this.
- fastfat_new: Use FAT_FILE_SYSTEM instead of magic 0x23.

svn path=/trunk/; revision=43673
2009-10-21 17:52:11 +00:00
Dmitry Gorbachev dba912455e [HAL, WIN32K] Add typedef.
svn path=/trunk/; revision=43573
2009-10-18 18:53:13 +00:00
Dmitry Gorbachev 112bc907de [3DTEXT, FREELDR, HAL, MINGW_COMMON, MMDRV, MSGINA, NTOSKRNL] Add extern.
svn path=/trunk/; revision=43572
2009-10-18 18:52:56 +00:00
Timo Kreuzer c269c1f512 [HAL]
- Implement HalpQuery8254Counter
- replace Ke386HaltProcessor() with __halt()
- remove excess #endif

svn path=/branches/ros-amd64-bringup/; revision=43504
2009-10-15 21:40:00 +00:00
Timo Kreuzer cb662b3fc9 Sync to trunk HEAD (r43416)
svn path=/branches/ros-amd64-bringup/; revision=43422
2009-10-12 22:00:47 +00:00
Dmitry Gorbachev ab802377c7 - Remove svn:needs-lock, svn:eol-type, and svn:eol-tyle properties.
- Add missing svn:eol-style properties.

svn path=/trunk/; revision=43389
2009-10-12 03:35:35 +00:00
Stefan Ginsberg 5d5e6d95d9 - Woooops, fix MP hal build.
svn path=/trunk/; revision=43381
2009-10-11 20:40:19 +00:00
Stefan Ginsberg 31c45b85d7 - Stub out DbgKdWriteVirtualMemoryApi, DbgKdReadPhysicalMemoryApi, DbgKdWritePhysicalMemoryApi, DbgKdWriteBreakPointExApi, DbgKdRestoreBreakPointExApi, DbgKdSearchMemoryApi and DbgKdFillMemoryApi cases more properly.
- Fail on physical memory write like we do for read too.
- Don't handle OldVlm1/2 as they appear to be deprecated and unhandled in Windows.
- Implement HalHaltSystem to halt execution in a portable way. Default to xHalHaltSystem, a simple infinite loop, if we get called before HAL has initialized. Use this in KiBugCheckDebugBreak and the system shutdown handler instead of x86/AMD64/ARM intrinsics.
- Don't try to halt the CPU if KeBugCheck has been called 3 times or more -- if this happens, something has gone very wrong, and we shouldn't try to do anything special. Just loop infinitely.
- Fix KiBugCheckDebugBreak -- it shouldn't halt execution when called for the first chance as bugcheck callbacks have not been invoked at this point (nor has the BSOD been displayed). Use SEH to protect against a crash instead of checking KdDebuggerNotPresent as the debugger, if it is present, *could* disconnect while the trap is being handled. Also, don't halt execution if the debugger handled the breakpoint, just break again.
- Don't call MmMapIoSpace from HalpReboot! The reboot might take place at elevated IRQL (as high as HIGH_LEVEL if called from KeBugCheck), and thus can't use any Mm support routines. Use a PTE from the reserved HAL region and map it ourselves instead as done in the BIOS call code.
- Acquire the display ownership in HalReturnToFirmware in case the caller hasn't done so (as done in the KD reboot routine, for example).
- Just include ntndk.h in hal.h instead of including 6 NDK headers (which turns into more than half of the NDK anyway since those headers include other NDK headers).
- Crashing and rebooting from KD now works properly.

svn path=/trunk/; revision=43380
2009-10-11 20:16:45 +00:00
Aleksey Bragin 3f7bed2eae [ntoskrnl]
- Reimplement HalpCalibrateStallExecution which was removed in r24964. Real Windows uses a different algorithm, however existing one seems to work acceptably. This patch is critical for devices support on real hardware. The only downside is that uniata initialization takes a substantial amount of time now, this is going to be investigated. Patch by Daniel Zimmermann.
See issue #4600 for more details.

svn path=/trunk/; revision=43364
2009-10-10 18:22:56 +00:00
Stefan Ginsberg f0c0e70c05 - Convert remaining KEBUGCHECK to KeBugCheck.
- Add HAL_MEMORY_ALLOCATION bug code and use it.

svn path=/trunk/; revision=43282
2009-10-04 14:48:18 +00:00
Stefan Ginsberg 9fdf04b17c ReactOS SMP Bringup Lite:
- Add simple and hacky spinlock implementation to HAL and kernel. It treats queued spinlocks as normal spinlocks and does not support debug timeout, but works well enough to expose bugs in spinlock usage.
- Implement KiProcessDeferredReadyList, a simple wrapper around KiDeferredReadyThread.
- Add missing PRCB locking in KiDeferredReadyThread.
- Implement SMP handling in KiRetireDpcList.
- Acquire the spinlock in KeSynchronizeExecution for SMP.
- Stub and export Kii386SpinOnSpinLock -- not used yet.
- Fix locking in KiAcquire/ReleaseDispatcherLockAtDpcLevel -- KeAcquireQueuedSpinLockAtDpcLevel takes the lock queue pointer, not the index.
- "Implement" KiRundownThread for SMP.
- Fix some sanity checks in the SMP context switch code and implement a stubbed SMP case.
- Define SYNCH_LEVEL in asm.h and use it in HAL's KeRaiseIrqlToSynchLevel.

To try the MP kernel on UP (it does not work on multiple processors yet) compile ntkrnlmp, rename it to ntoskrnl and add it to your installation. This requires a HAL with CONFIG_SMP enabled in HAL's spinlock.c and irq.S. Booting with the MP kernel does not work because of a weird regression introduced sometime in the last few months --  it appears MmProbeAndLockPages fails for a user mode stack pointer (no, I have no idea why).

svn path=/trunk/; revision=43244
2009-09-30 20:30:57 +00:00
Stefan Ginsberg bfc7376cd9 - Remove the remaining __USE_W32API, deprecated for ages.
- Remove _SEH_NO_NATIVE_NLG from msvcrt.rbuild, deprecated long ago.
- Get rid of __NO_CTYPE_INLINES for everything but host tools, deprecated since revision 38052.
- Deprecate and remove _DISABLE_TIDENTS.

svn path=/trunk/; revision=43234
2009-09-30 13:28:51 +00:00
Stefan Ginsberg e7e6699ae1 - Use MAXUINT, MAXULONG, MAXDWORD, MAXULONGLONG and MAXULONGLONG instead of ~0 or casting -1 to unsigned.
- bintype.c: Use INVALID_SET_FILE_POINTER instead of (DWORD)-1.
- irp.c: KsGetNodeIdFromIrp returns KSFILTER_NODE (which is -1).
- basetsd.h: Add missing MAXUINT and MAXULONGLONG.
- typedefs.h: Add MAXULONG for mkhive.
- elf.inc.h and pe.c: Remove incorrect and unneeded MAXULONG define.

svn path=/trunk/; revision=43192
2009-09-27 20:07:43 +00:00
Stefan Ginsberg 8fa95b6a9c - Change CPUID to match the old Ki386Cpuid and take 4 output arguments instead of an array. This way we save some stack when using a dummy cpuid for synchronization and can query only the registers we want in the case we don't want all 4.
- Simplify Ke386GetTr and Ke386GetLocalDescriptorTable to return by value instead of reference.
- Make RDMSR smaller by making it fastcall as rdmsr takes its argument in ecx.
- Fix KiGetCacheInformation -- it only handled the Intel and AMD case.
- Replace Ke386HaltProcessor with __halt.
- KiHaltProcessorDpcRoutine: Always halt the processor for the architectures we support for consistency.
- Clean up x86 and PPC headers from deprecated stuff.
- Fix broken LOCK undefine in v86m_sup.S -- LOCK is used both in a macro and the code, so only undefine it where required and redefine it after it is used (this worked because LOCK was interpreted as lock).

Get rid of KeArch*:
- Rename KeArchInitThreadWithContext to KiInitializeContextThread and use the same name for all architectures.
- Kill KeArchHaltProcessor. Use __halt and KeArmHaltProcessor directly instead.
- Use Ke386FnInit instead of KeArchFnInit -- it is only used for x86.

svn path=/trunk/; revision=43180
2009-09-27 10:09:38 +00:00
Timo Kreuzer f57f4193e5 Merge HAL changes 34743, 34812, 34839, 34917, 35515, 35771, 35902, 35904,
35905, 35906, 35942, 35947, 35948, 35949, 35953, 36013, 36388, 36389, 36570, 37873, 37991, 39151 from amd64 branch

svn path=/trunk/; revision=43173
2009-09-26 21:32:53 +00:00
Stefan Ginsberg 7e11f6d4bc - HAL: Make /W3 friendly
- Everywhere else: Use casts instead of -1U to fix C4146 (this is compatible with both compilers)

svn path=/trunk/; revision=43167
2009-09-26 13:41:57 +00:00
Timo Kreuzer bb296ffa81 Sync with trunk r43123
svn path=/branches/ros-amd64-bringup/; revision=43125
2009-09-23 21:01:57 +00:00
Hervé Poussineau d338a87238 Partly unregress Xbox 1 port. It now fails with INACCESSIBLE_BOOT_DEVICE bugcheck
svn path=/trunk/; revision=43124
2009-09-23 20:59:08 +00:00
Timo Kreuzer f9c2afd00a Sync with trunk r43000
svn path=/branches/ros-amd64-bringup/; revision=43079
2009-09-19 13:58:16 +00:00
Stefan Ginsberg 056eed5ceb - Use msvc intrinsics in HAL instead of Ke386*
svn path=/trunk/; revision=43074
2009-09-18 20:56:49 +00:00
Stefan Ginsberg ea23cd10c2 - Start deprecating TAG()
- Fix inverted tags in prntfont.h, stdunk.h and win32k/objects/font.c

svn path=/trunk/; revision=42915
2009-08-24 17:12:25 +00:00
Stefan Ginsberg 4705fbc38a - Get rid of DECLSPEC_EXPORT from DDK
- "Isolate Hal* #defines, which are absent in WDK, they should not be used in kernel development." No, exactly, and they shouldn't be used in Xbox HAL either

svn path=/trunk/; revision=42807
2009-08-20 13:57:16 +00:00
Dmitry Gorbachev db5b8e29f7 No bug is too trivial to report:
- remove a stray semicolon (bug #4804).

svn path=/trunk/; revision=42789
2009-08-20 06:54:44 +00:00
Stefan Ginsberg ac7daf7ccf - winddk.h: Don't define NTSYSAPI and NTSYSCALLAPI -- this is defined in ntdef.h. Use NTSYSAPI for HalDispatchTable instead of DECLSPEC_IMPORT (see below).
- wdm.h: Properly define NTKERNELAPI.
- ntifs.h: Properly define NTKERNELAPI, and don't redefine NTSYSAPI.
- ntoskrnl: Apply the WDK hack for our headers (and gcc) too. Also redefine NTHALAPI for NDK so we don't auto-import KdComPortInUse -- ld complains about this.
- Apply this for cmlib, csq and rossym too.
- Use this in HAL too, and redefine NTSYSAPI so we don't auto import some structures from the kernel. Also, don't define __declspec(dllimport) to nothing -- this doesn't work with gcc, and doesn't seem to be necessary. I tried building HAL with the WDK and this wasn't an issue.

svn path=/trunk/; revision=42461
2009-08-07 10:45:59 +00:00
Timo Kreuzer 250d69afc8 Sync to trunk head (r42241)
svn path=/branches/ros-amd64-bringup/; revision=42244
2009-07-26 23:21:27 +00:00
Stefan Ginsberg 87b36d171a - Make mp HAL MSC compatible
svn path=/trunk/; revision=42205
2009-07-25 11:44:27 +00:00
Stefan Ginsberg a06a2ab53c - What's the deal with using Iof* and Obf*, Arch?
svn path=/trunk/; revision=41986
2009-07-15 19:40:44 +00:00
ReactOS Portable Systems Group 1554007aa6 KEBUGCHECK was deprecated, so use KeBugCheck
svn path=/trunk/; revision=41915
2009-07-12 10:40:16 +00:00
ReactOS Portable Systems Group ac6394ae92 Don't export the HAL drive letter assignment functions on ARM
The fast mutex functions are in the HAL on non-x86 builds, so don't forward them back to ntos

svn path=/trunk/; revision=41914
2009-07-12 10:39:58 +00:00
ReactOS Portable Systems Group bde8298af7 The Halp* drive assignment stuff doesn't exist on ARM, AFAIK
svn path=/trunk/; revision=41913
2009-07-12 10:39:04 +00:00
ReactOS Portable Systems Group deccae397c Use the pspec, there's no hal_arm.def anymore
svn path=/trunk/; revision=41912
2009-07-12 10:38:26 +00:00
Timo Kreuzer 4135e99ab6 Merge trunk head (r41474)
svn path=/branches/ros-amd64-bringup/; revision=41488
2009-06-20 13:45:51 +00:00
Cameron Gutman e4a0b00377 - Use MmFreeContiguousMemorySpecifyCache to free memory allocated by MmAllocateContiguousMemorySpecifyCache in HalAllocateCommonBuffer
svn path=/trunk/; revision=41248
2009-06-02 01:30:52 +00:00
Timo Kreuzer 1e6ef30c73 Sync trunk head (r41026)
svn path=/branches/ros-amd64-bringup/; revision=41032
2009-05-21 18:39:21 +00:00
KJK::Hyperion def5539079 Supersedes r40538, r40539; RosBE bug fixed with a RosBE-specific hack (-nostdinc removed from BUILTIN_CPPFLAGS in rules.mak)
Rbuild rationalization commit, umpteenth of infinite

modified   tools/rbuild/backend/mingw/mingw.cpp
modified   tools/rbuild/backend/mingw/mingw.h
modified   tools/rbuild/backend/mingw/modulehandler.cpp
modified   tools/rbuild/backend/mingw/modulehandler.h
modified   tools/rbuild/backend/mingw/rules.mak
added      tools/rbuild/compilerdirective.cpp
modified   tools/rbuild/compilerflag.cpp
modified   tools/rbuild/define.cpp
modified   tools/rbuild/include.cpp
modified   tools/rbuild/module.cpp
modified   tools/rbuild/pch.h
modified   tools/rbuild/project.cpp
modified   tools/rbuild/rbuild.dsp
modified   tools/rbuild/rbuild.h
modified   tools/rbuild/rbuild.mak
modified   tools/rbuild/rbuild.vcproj
modified   Makefile
modified   ReactOS-generic.rbuild
   Almost all build rules moved to a makefile.auto include (rules.mak). Size of makefile.auto reduced to about half
   The new rules correctly sort includes, defines and flags in priority order (built-in, project, module type, module, source file)
   The new rules don't duplicate flags anymore. Flag sets are defined once, as makefile variables, and then referred to by variable name
   Compiler-specific flags, includes and defines can now be set, for almost all compilers and tools
   <compilerflag>, <define> and <include> have a new "compiler" attribute, containing a comma-separated list of compilers the directive applies to
   C++ compiler renamed to "cxx", "cpp" now correctly refers to the C preprocessor (or work-alike, built-in preprocessors)
   Drop "overridable" attribute for <define>, as it never worked right
   New <redefine> tag: works like <define>, but undefines the variable before defining it. Several warnings suppressed thanks to it
   Slightly changed rule for resource file; conversion to object file now a separate phase that prints "[CVTRES]"
   Slightly changed definition of ${gas}
   Echo "[AS]" instead of "[GAS]"
   Echo "[RC]" for wrc

modified   include/crt/mingw32/intrin.h
   Now that the correct include paths are passed to the resource compiler, make headers more resource compiler-friendly

modified   dll/directx/wine/ddraw/ddraw.rbuild
   Apply GCC workaround for PSEH

modified   dll/directx/wine/wined3d/wined3d.rbuild
modified   dll/win32/riched20/riched20.rbuild
   -Wno-format no longer required

modified   dll/nls/idndl/idndl.rbuild
modified   dll/nls/idndl_redist/idndl_redist.rbuild
modified   dll/nls/normaliz_redist/normaliz_redist.rbuild
modified   lib/3rdparty/icu4ros/icu4ros.rbuild
modified   lib/nls/idna/idna.rbuild
modified   lib/nls/normalize/normalize.rbuild
modified   lib/nls/scripts/scripts.rbuild
   C++ compiler now identified by "cxx"

modified   drivers/storage/ide/uniata/uniata.rbuild
modified   drivers/wdm/audio/drivers/mpu401/mpu401.rbuild
modified   drivers/wdm/audio/drm/drmk/drmk.rbuild
   Disable exceptions and RTTI for kernel mode C++ code

modified   base/services/umpnpmgr/umpnpmgr.rbuild
modified   dll/cpl/ncpa/ncpa.rbuild
modified   dll/directx/amstream/amstream.rbuild
modified   dll/directx/dinput8/dinput8.rbuild
modified   dll/directx/dinput/dinput.rbuild
modified   dll/directx/qedit/qedit.rbuild
modified   dll/directx/quartz/quartz.rbuild
modified   dll/win32/advapi32/advapi32.rbuild
modified   dll/win32/atl/atl.rbuild
modified   dll/win32/avifil32/avifil32.rbuild
modified   dll/win32/browseui/browseui.rbuild
modified   dll/win32/comcat/comcat.rbuild
modified   dll/win32/crypt32/crypt32.rbuild
modified   dll/win32/hhctrl.ocx/hhctrl.ocx.rbuild
modified   dll/win32/imm32/imm32.rbuild
modified   dll/win32/inetcomm/inetcomm.rbuild
modified   dll/win32/localspl/localspl.rbuild
modified   dll/win32/mlang/mlang.rbuild
modified   dll/win32/msctf/msctf.rbuild
modified   dll/win32/mshtml/mshtml.rbuild
modified   dll/win32/msi/msi.rbuild
modified   dll/win32/mstask/mstask.rbuild
modified   dll/win32/msxml3/msxml3.rbuild
modified   dll/win32/ntmarta/ntmarta.rbuild
modified   dll/win32/objsel/objsel.rbuild
modified   dll/win32/ole32/ole32.rbuild
modified   dll/win32/oleaut32/oleaut32.rbuild
modified   dll/win32/pdh/pdh.rbuild
modified   dll/win32/rpcrt4/rpcrt4.rbuild
modified   dll/win32/shell32/shell32.rbuild
modified   dll/win32/shlwapi/shlwapi.rbuild
modified   dll/win32/urlmon/urlmon.rbuild
modified   dll/win32/wuapi/wuapi.rbuild
modified   include/reactos/idl/idl.rbuild
modified   dll/win32/kernel32/kernel32.rbuild
modified   dll/nls/idndl/idndl.rbuild
modified   lib/nls/idna/idna.rbuild
modified   lib/nls/normalize/normalize.rbuild
modified   lib/nls/scripts/scripts.rbuild
modified   dll/win32/inseng/inseng.rbuild
   Use <redefine> instead of <define> for version macros

modified   base/setup/usetup/usetup.rbuild
modified   base/system/autochk/autochk.rbuild
modified   base/system/smss/smss.rbuild
modified   dll/3rdparty/dxtn/dxtn.rbuild
modified   dll/keyboard/kbda1/kbda1.rbuild
modified   dll/keyboard/kbda2/kbda2.rbuild
modified   dll/keyboard/kbda3/kbda3.rbuild
modified   dll/keyboard/kbdal/kbdal.rbuild
modified   dll/keyboard/kbdarme/kbdarme.rbuild
modified   dll/keyboard/kbdarmw/kbdarmw.rbuild
modified   dll/keyboard/kbdaze/kbdaze.rbuild
modified   dll/keyboard/kbdazel/kbdazel.rbuild
modified   dll/keyboard/kbdbe/kbdbe.rbuild
modified   dll/keyboard/kbdbga/kbdbga.rbuild
modified   dll/keyboard/kbdbgm/kbdbgm.rbuild
modified   dll/keyboard/kbdbgt/kbdbgt.rbuild
modified   dll/keyboard/kbdblr/kbdblr.rbuild
modified   dll/keyboard/kbdbr/kbdbr.rbuild
modified   dll/keyboard/kbdbur/kbdbur.rbuild
modified   dll/keyboard/kbdcan/kbdcan.rbuild
modified   dll/keyboard/kbdcr/kbdcr.rbuild
modified   dll/keyboard/kbdcz1/kbdcz1.rbuild
modified   dll/keyboard/kbdcz/kbdcz.rbuild
modified   dll/keyboard/kbdda/kbdda.rbuild
modified   dll/keyboard/kbddv/kbddv.rbuild
modified   dll/keyboard/kbdes/kbdes.rbuild
modified   dll/keyboard/kbdest/kbdest.rbuild
modified   dll/keyboard/kbdfc/kbdfc.rbuild
modified   dll/keyboard/kbdfi/kbdfi.rbuild
modified   dll/keyboard/kbdfr/kbdfr.rbuild
modified   dll/keyboard/kbdgeo/kbdgeo.rbuild
modified   dll/keyboard/kbdgerg/kbdgerg.rbuild
modified   dll/keyboard/kbdgneo/kbdgneo.rbuild
modified   dll/keyboard/kbdgr/kbdgr.rbuild
modified   dll/keyboard/kbdgrist/kbdgrist.rbuild
modified   dll/keyboard/kbdhe/kbdhe.rbuild
modified   dll/keyboard/kbdheb/kbdheb.rbuild
modified   dll/keyboard/kbdhu/kbdhu.rbuild
modified   dll/keyboard/kbdic/kbdic.rbuild
modified   dll/keyboard/kbdinasa/kbdinasa.rbuild
modified   dll/keyboard/kbdinben/kbdinben.rbuild
modified   dll/keyboard/kbdindev/kbdindev.rbuild
modified   dll/keyboard/kbdinguj/kbdinguj.rbuild
modified   dll/keyboard/kbdinmal/kbdinmal.rbuild
modified   dll/keyboard/kbdir/kbdir.rbuild
modified   dll/keyboard/kbdit/kbdit.rbuild
modified   dll/keyboard/kbdja/kbdja.rbuild
modified   dll/keyboard/kbdkaz/kbdkaz.rbuild
modified   dll/keyboard/kbdko/kbdko.rbuild
modified   dll/keyboard/kbdla/kbdla.rbuild
modified   dll/keyboard/kbdlt1/kbdlt1.rbuild
modified   dll/keyboard/kbdlv/kbdlv.rbuild
modified   dll/keyboard/kbdmac/kbdmac.rbuild
modified   dll/keyboard/kbdne/kbdne.rbuild
modified   dll/keyboard/kbdno/kbdno.rbuild
modified   dll/keyboard/kbdpl1/kbdpl1.rbuild
modified   dll/keyboard/kbdpo/kbdpo.rbuild
modified   dll/keyboard/kbdro/kbdro.rbuild
modified   dll/keyboard/kbdru1/kbdru1.rbuild
modified   dll/keyboard/kbdru/kbdru.rbuild
modified   dll/keyboard/kbdsg/kbdsg.rbuild
modified   dll/keyboard/kbdsk1/kbdsk1.rbuild
modified   dll/keyboard/kbdsk/kbdsk.rbuild
modified   dll/keyboard/kbdsw/kbdsw.rbuild
modified   dll/keyboard/kbdtat/kbdtat.rbuild
modified   dll/keyboard/kbdth0/kbdth0.rbuild
modified   dll/keyboard/kbdth1/kbdth1.rbuild
modified   dll/keyboard/kbdth2/kbdth2.rbuild
modified   dll/keyboard/kbdth3/kbdth3.rbuild
modified   dll/keyboard/kbdtuf/kbdtuf.rbuild
modified   dll/keyboard/kbdtuq/kbdtuq.rbuild
modified   dll/keyboard/kbduk/kbduk.rbuild
modified   dll/keyboard/kbdur/kbdur.rbuild
modified   dll/keyboard/kbdurs/kbdurs.rbuild
modified   dll/keyboard/kbdus/kbdus.rbuild
modified   dll/keyboard/kbdusa/kbdusa.rbuild
modified   dll/keyboard/kbdusl/kbdusl.rbuild
modified   dll/keyboard/kbdusr/kbdusr.rbuild
modified   dll/keyboard/kbdusx/kbdusx.rbuild
modified   dll/keyboard/kbduzb/kbduzb.rbuild
modified   dll/keyboard/kbdvntc/kbdvntc.rbuild
modified   dll/keyboard/kbdycc/kbdycc.rbuild
modified   dll/keyboard/kbdycl/kbdycl.rbuild
modified   dll/ntdll/ntdll.rbuild
modified   dll/win32/crtdll/crtdll.rbuild
modified   dll/win32/dhcpcsvc/dhcpcsvc.rbuild
modified   dll/win32/dnsapi/dnsapi.rbuild
modified   dll/win32/fmifs/fmifs.rbuild
modified   dll/win32/gdi32/gdi32.rbuild
modified   dll/win32/lpk/lpk.rbuild
modified   dll/win32/msvcrt/msvcrt.rbuild
modified   dll/win32/opengl32/opengl32.rbuild
modified   dll/win32/psapi/psapi.rbuild
modified   dll/win32/rasdlg/rasdlg.rbuild
modified   dll/win32/rasman/rasman.rbuild
modified   dll/win32/samlib/samlib.rbuild
modified   dll/win32/shimgvw/shimgvw.rbuild
modified   dll/win32/smdll/smdll.rbuild
modified   dll/win32/twain_32/twain_32.rbuild
modified   dll/win32/uext2/uext2.rbuild
modified   dll/win32/ufat/ufat.rbuild
modified   dll/win32/ufatx/ufatx.rbuild
modified   dll/win32/untfs/untfs.rbuild
modified   dll/win32/user32/user32.rbuild
modified   dll/win32/winspool/winspool.rbuild
modified   dll/win32/ws2_32/ws2_32.rbuild
modified   dll/win32/ws2help/ws2help.rbuild
modified   dll/win32/wshirda/wshirda.rbuild
modified   drivers/directx/dxapi/dxapi.rbuild
modified   drivers/directx/dxgthk/dxgthk.rbuild
modified   hal/halarm/generic/generic.rbuild
modified   hal/halarm/up/halup.rbuild
modified   hal/halppc/generic/generic.rbuild
modified   hal/halppc/up/halup.rbuild
modified   hal/halx86/generic/generic.rbuild
modified   hal/halx86/hal_generic.rbuild
modified   hal/halx86/hal_generic_pc.rbuild
modified   hal/halx86/hal_generic_up.rbuild
modified   hal/halx86/halmp.rbuild
modified   hal/halx86/halup.rbuild
modified   hal/halx86/halxbox.rbuild
modified   lib/3rdparty/libwine/libwine.rbuild
modified   lib/epsapi/epsapi.rbuild
modified   lib/fslib/ext2lib/ext2lib.rbuild
modified   lib/fslib/ntfslib/ntfslib.rbuild
modified   lib/fslib/vfatlib/vfatlib.rbuild
modified   lib/fslib/vfatxlib/vfatxlib.rbuild
modified   lib/ntdllsys/ntdllsys.rbuild
modified   lib/sdk/crt/crt.rbuild
modified   lib/sdk/dxguid/dxguid.rbuild
modified   lib/sdk/nt/nt.rbuild
modified   lib/sdk/strmiids/strmiids.rbuild
modified   lib/sdk/uuid/uuid.rbuild
modified   lib/smlib/smlib.rbuild
modified   lib/win32ksys/win32ksys.rbuild
modified   ntoskrnl/ntoskrnl-generic.rbuild
modified   subsystems/csr/csrsrv/csrsrv.rbuild
modified   subsystems/ntvdm/ntvdm.rbuild
modified   subsystems/win32/csrss/win32csr/win32csr.rbuild
modified   dll/win32/kernel32/kernel32.rbuild
modified   lib/drivers/oskittcp/oskittcp.rbuild
   Goodbye _DISABLE_TIDENTS, __USE_W32API

svn path=/trunk/; revision=40624
2009-04-21 00:33:41 +00:00
KJK::Hyperion 0330bad96d This is why we can't have nice things. Reverting r40538, r40539, due to RosBE differences between Windows and Linux hosts (because RosBE sucks)
svn path=/trunk/; revision=40540
2009-04-16 04:52:16 +00:00
KJK::Hyperion 5a11fa5fa1 Rbuild rationalization commit, umpteenth of infinite
modified   tools/rbuild/backend/mingw/mingw.cpp
modified   tools/rbuild/backend/mingw/mingw.h
modified   tools/rbuild/backend/mingw/modulehandler.cpp
modified   tools/rbuild/backend/mingw/modulehandler.h
modified   tools/rbuild/backend/mingw/rules.mak
added      tools/rbuild/compilerdirective.cpp
modified   tools/rbuild/compilerflag.cpp
modified   tools/rbuild/define.cpp
modified   tools/rbuild/include.cpp
modified   tools/rbuild/module.cpp
modified   tools/rbuild/pch.h
modified   tools/rbuild/project.cpp
modified   tools/rbuild/rbuild.dsp
modified   tools/rbuild/rbuild.h
modified   tools/rbuild/rbuild.mak
modified   tools/rbuild/rbuild.vcproj
modified   Makefile
modified   ReactOS-generic.rbuild
   Almost all build rules moved to a makefile.auto include (rules.mak). Size of makefile.auto reduced to about half
   The new rules correctly sort includes, defines and flags in priority order (built-in, project, module type, module, source file)
   The new rules don't duplicate flags anymore. Flag sets are defined once, as makefile variables, and then referred to by variable name
   Compiler-specific flags, includes and defines can now be set, for almost all compilers and tools
   <compilerflag>, <define> and <include> have a new "compiler" attribute, containing a comma-separated list of compilers the directive applies to
   C++ compiler renamed to "cxx", "cpp" now correctly refers to the C preprocessor (or work-alike, built-in preprocessors)
   Drop "overridable" attribute for <define>, as it never worked right
   New <redefine> tag: works like <define>, but undefines the variable before defining it. Several warnings suppressed thanks to it
   Slightly changed rule for resource file; conversion to object file now a separate phase that prints "[CVTRES]"
   Slightly changed definition of ${gas}
   Echo "[AS]" instead of "[GAS]"
   Echo "[RC]" for wrc

modified   include/crt/mingw32/intrin.h
   Now that the correct include paths are passed to the resource compiler, make headers more resource compiler-friendly

modified   dll/directx/wine/ddraw/ddraw.rbuild
   Apply GCC workaround for PSEH

modified   dll/directx/wine/wined3d/wined3d.rbuild
modified   dll/win32/riched20/riched20.rbuild
   -Wno-format no longer required

modified   dll/nls/idndl/idndl.rbuild
modified   dll/nls/idndl_redist/idndl_redist.rbuild
modified   dll/nls/normaliz_redist/normaliz_redist.rbuild
modified   lib/3rdparty/icu4ros/icu4ros.rbuild
modified   lib/nls/idna/idna.rbuild
modified   lib/nls/normalize/normalize.rbuild
modified   lib/nls/scripts/scripts.rbuild
   C++ compiler now identified by "cxx"

modified   drivers/storage/ide/uniata/uniata.rbuild
modified   drivers/wdm/audio/drivers/mpu401/mpu401.rbuild
modified   drivers/wdm/audio/drm/drmk/drmk.rbuild
   Disable exceptions and RTTI for kernel mode C++ code

modified   base/services/umpnpmgr/umpnpmgr.rbuild
modified   dll/cpl/ncpa/ncpa.rbuild
modified   dll/directx/amstream/amstream.rbuild
modified   dll/directx/dinput8/dinput8.rbuild
modified   dll/directx/dinput/dinput.rbuild
modified   dll/directx/qedit/qedit.rbuild
modified   dll/directx/quartz/quartz.rbuild
modified   dll/win32/advapi32/advapi32.rbuild
modified   dll/win32/atl/atl.rbuild
modified   dll/win32/avifil32/avifil32.rbuild
modified   dll/win32/browseui/browseui.rbuild
modified   dll/win32/comcat/comcat.rbuild
modified   dll/win32/crypt32/crypt32.rbuild
modified   dll/win32/hhctrl.ocx/hhctrl.ocx.rbuild
modified   dll/win32/imm32/imm32.rbuild
modified   dll/win32/inetcomm/inetcomm.rbuild
modified   dll/win32/localspl/localspl.rbuild
modified   dll/win32/mlang/mlang.rbuild
modified   dll/win32/msctf/msctf.rbuild
modified   dll/win32/mshtml/mshtml.rbuild
modified   dll/win32/msi/msi.rbuild
modified   dll/win32/mstask/mstask.rbuild
modified   dll/win32/msxml3/msxml3.rbuild
modified   dll/win32/ntmarta/ntmarta.rbuild
modified   dll/win32/objsel/objsel.rbuild
modified   dll/win32/ole32/ole32.rbuild
modified   dll/win32/oleaut32/oleaut32.rbuild
modified   dll/win32/pdh/pdh.rbuild
modified   dll/win32/rpcrt4/rpcrt4.rbuild
modified   dll/win32/shell32/shell32.rbuild
modified   dll/win32/shlwapi/shlwapi.rbuild
modified   dll/win32/urlmon/urlmon.rbuild
modified   dll/win32/wuapi/wuapi.rbuild
modified   include/reactos/idl/idl.rbuild
modified   dll/win32/kernel32/kernel32.rbuild
modified   dll/nls/idndl/idndl.rbuild
modified   lib/nls/idna/idna.rbuild
modified   lib/nls/normalize/normalize.rbuild
modified   lib/nls/scripts/scripts.rbuild
modified   dll/win32/inseng/inseng.rbuild
   Use <redefine> instead of <define> for version macros

modified   base/setup/usetup/usetup.rbuild
modified   base/system/autochk/autochk.rbuild
modified   base/system/smss/smss.rbuild
modified   dll/3rdparty/dxtn/dxtn.rbuild
modified   dll/keyboard/kbda1/kbda1.rbuild
modified   dll/keyboard/kbda2/kbda2.rbuild
modified   dll/keyboard/kbda3/kbda3.rbuild
modified   dll/keyboard/kbdal/kbdal.rbuild
modified   dll/keyboard/kbdarme/kbdarme.rbuild
modified   dll/keyboard/kbdarmw/kbdarmw.rbuild
modified   dll/keyboard/kbdaze/kbdaze.rbuild
modified   dll/keyboard/kbdazel/kbdazel.rbuild
modified   dll/keyboard/kbdbe/kbdbe.rbuild
modified   dll/keyboard/kbdbga/kbdbga.rbuild
modified   dll/keyboard/kbdbgm/kbdbgm.rbuild
modified   dll/keyboard/kbdbgt/kbdbgt.rbuild
modified   dll/keyboard/kbdblr/kbdblr.rbuild
modified   dll/keyboard/kbdbr/kbdbr.rbuild
modified   dll/keyboard/kbdbur/kbdbur.rbuild
modified   dll/keyboard/kbdcan/kbdcan.rbuild
modified   dll/keyboard/kbdcr/kbdcr.rbuild
modified   dll/keyboard/kbdcz1/kbdcz1.rbuild
modified   dll/keyboard/kbdcz/kbdcz.rbuild
modified   dll/keyboard/kbdda/kbdda.rbuild
modified   dll/keyboard/kbddv/kbddv.rbuild
modified   dll/keyboard/kbdes/kbdes.rbuild
modified   dll/keyboard/kbdest/kbdest.rbuild
modified   dll/keyboard/kbdfc/kbdfc.rbuild
modified   dll/keyboard/kbdfi/kbdfi.rbuild
modified   dll/keyboard/kbdfr/kbdfr.rbuild
modified   dll/keyboard/kbdgeo/kbdgeo.rbuild
modified   dll/keyboard/kbdgerg/kbdgerg.rbuild
modified   dll/keyboard/kbdgneo/kbdgneo.rbuild
modified   dll/keyboard/kbdgr/kbdgr.rbuild
modified   dll/keyboard/kbdgrist/kbdgrist.rbuild
modified   dll/keyboard/kbdhe/kbdhe.rbuild
modified   dll/keyboard/kbdheb/kbdheb.rbuild
modified   dll/keyboard/kbdhu/kbdhu.rbuild
modified   dll/keyboard/kbdic/kbdic.rbuild
modified   dll/keyboard/kbdinasa/kbdinasa.rbuild
modified   dll/keyboard/kbdinben/kbdinben.rbuild
modified   dll/keyboard/kbdindev/kbdindev.rbuild
modified   dll/keyboard/kbdinguj/kbdinguj.rbuild
modified   dll/keyboard/kbdinmal/kbdinmal.rbuild
modified   dll/keyboard/kbdir/kbdir.rbuild
modified   dll/keyboard/kbdit/kbdit.rbuild
modified   dll/keyboard/kbdja/kbdja.rbuild
modified   dll/keyboard/kbdkaz/kbdkaz.rbuild
modified   dll/keyboard/kbdko/kbdko.rbuild
modified   dll/keyboard/kbdla/kbdla.rbuild
modified   dll/keyboard/kbdlt1/kbdlt1.rbuild
modified   dll/keyboard/kbdlv/kbdlv.rbuild
modified   dll/keyboard/kbdmac/kbdmac.rbuild
modified   dll/keyboard/kbdne/kbdne.rbuild
modified   dll/keyboard/kbdno/kbdno.rbuild
modified   dll/keyboard/kbdpl1/kbdpl1.rbuild
modified   dll/keyboard/kbdpo/kbdpo.rbuild
modified   dll/keyboard/kbdro/kbdro.rbuild
modified   dll/keyboard/kbdru1/kbdru1.rbuild
modified   dll/keyboard/kbdru/kbdru.rbuild
modified   dll/keyboard/kbdsg/kbdsg.rbuild
modified   dll/keyboard/kbdsk1/kbdsk1.rbuild
modified   dll/keyboard/kbdsk/kbdsk.rbuild
modified   dll/keyboard/kbdsw/kbdsw.rbuild
modified   dll/keyboard/kbdtat/kbdtat.rbuild
modified   dll/keyboard/kbdth0/kbdth0.rbuild
modified   dll/keyboard/kbdth1/kbdth1.rbuild
modified   dll/keyboard/kbdth2/kbdth2.rbuild
modified   dll/keyboard/kbdth3/kbdth3.rbuild
modified   dll/keyboard/kbdtuf/kbdtuf.rbuild
modified   dll/keyboard/kbdtuq/kbdtuq.rbuild
modified   dll/keyboard/kbduk/kbduk.rbuild
modified   dll/keyboard/kbdur/kbdur.rbuild
modified   dll/keyboard/kbdurs/kbdurs.rbuild
modified   dll/keyboard/kbdus/kbdus.rbuild
modified   dll/keyboard/kbdusa/kbdusa.rbuild
modified   dll/keyboard/kbdusl/kbdusl.rbuild
modified   dll/keyboard/kbdusr/kbdusr.rbuild
modified   dll/keyboard/kbdusx/kbdusx.rbuild
modified   dll/keyboard/kbduzb/kbduzb.rbuild
modified   dll/keyboard/kbdvntc/kbdvntc.rbuild
modified   dll/keyboard/kbdycc/kbdycc.rbuild
modified   dll/keyboard/kbdycl/kbdycl.rbuild
modified   dll/ntdll/ntdll.rbuild
modified   dll/win32/crtdll/crtdll.rbuild
modified   dll/win32/dhcpcsvc/dhcpcsvc.rbuild
modified   dll/win32/dnsapi/dnsapi.rbuild
modified   dll/win32/fmifs/fmifs.rbuild
modified   dll/win32/gdi32/gdi32.rbuild
modified   dll/win32/lpk/lpk.rbuild
modified   dll/win32/msvcrt/msvcrt.rbuild
modified   dll/win32/opengl32/opengl32.rbuild
modified   dll/win32/psapi/psapi.rbuild
modified   dll/win32/rasdlg/rasdlg.rbuild
modified   dll/win32/rasman/rasman.rbuild
modified   dll/win32/samlib/samlib.rbuild
modified   dll/win32/shimgvw/shimgvw.rbuild
modified   dll/win32/smdll/smdll.rbuild
modified   dll/win32/twain_32/twain_32.rbuild
modified   dll/win32/uext2/uext2.rbuild
modified   dll/win32/ufat/ufat.rbuild
modified   dll/win32/ufatx/ufatx.rbuild
modified   dll/win32/untfs/untfs.rbuild
modified   dll/win32/user32/user32.rbuild
modified   dll/win32/winspool/winspool.rbuild
modified   dll/win32/ws2_32/ws2_32.rbuild
modified   dll/win32/ws2help/ws2help.rbuild
modified   dll/win32/wshirda/wshirda.rbuild
modified   drivers/directx/dxapi/dxapi.rbuild
modified   drivers/directx/dxgthk/dxgthk.rbuild
modified   hal/halarm/generic/generic.rbuild
modified   hal/halarm/up/halup.rbuild
modified   hal/halppc/generic/generic.rbuild
modified   hal/halppc/up/halup.rbuild
modified   hal/halx86/generic/generic.rbuild
modified   hal/halx86/hal_generic.rbuild
modified   hal/halx86/hal_generic_pc.rbuild
modified   hal/halx86/hal_generic_up.rbuild
modified   hal/halx86/halmp.rbuild
modified   hal/halx86/halup.rbuild
modified   hal/halx86/halxbox.rbuild
modified   lib/3rdparty/libwine/libwine.rbuild
modified   lib/epsapi/epsapi.rbuild
modified   lib/fslib/ext2lib/ext2lib.rbuild
modified   lib/fslib/ntfslib/ntfslib.rbuild
modified   lib/fslib/vfatlib/vfatlib.rbuild
modified   lib/fslib/vfatxlib/vfatxlib.rbuild
modified   lib/ntdllsys/ntdllsys.rbuild
modified   lib/sdk/crt/crt.rbuild
modified   lib/sdk/dxguid/dxguid.rbuild
modified   lib/sdk/nt/nt.rbuild
modified   lib/sdk/strmiids/strmiids.rbuild
modified   lib/sdk/uuid/uuid.rbuild
modified   lib/smlib/smlib.rbuild
modified   lib/win32ksys/win32ksys.rbuild
modified   ntoskrnl/ntoskrnl-generic.rbuild
modified   subsystems/csr/csrsrv/csrsrv.rbuild
modified   subsystems/ntvdm/ntvdm.rbuild
modified   subsystems/win32/csrss/win32csr/win32csr.rbuild
modified   dll/win32/kernel32/kernel32.rbuild
modified   lib/drivers/oskittcp/oskittcp.rbuild
   Goodbye _DISABLE_TIDENTS, __USE_W32API

svn path=/trunk/; revision=40538
2009-04-16 02:27:50 +00:00
Timo Kreuzer 2c94b2b818 Sync to trunk head (r40091)
svn path=/branches/ros-amd64-bringup/; revision=40093
2009-03-18 17:32:39 +00:00
Dmitry Gorbachev a8274cb5f7 Do not crash on Pentium.
svn path=/trunk/; revision=39959
2009-03-11 20:34:34 +00:00
Stefan Ginsberg 8294273359 - Fix an assembler warning on release build
svn path=/trunk/; revision=39733
2009-02-24 00:48:11 +00:00
Timo Kreuzer f611bc9f3d Sync to trunk r39350.
Usermode is broken. Some idl problem.

svn path=/branches/ros-amd64-bringup/; revision=39352
2009-02-03 22:14:40 +00:00
Timo Kreuzer 5374ad15b8 hal: fix some ULONG/ULONG_PTR issues
svn path=/branches/ros-amd64-bringup/; revision=39151
2009-01-27 21:35:00 +00:00
Stefan Ginsberg dbd86db31e - Deprecate global helper.h -- define the various 'helpful macros' per module
svn path=/trunk/; revision=39092
2009-01-25 16:13:16 +00:00
Timo Kreuzer 3210df5936 Merge 38960 from trunk
svn path=/branches/ros-amd64-bringup/; revision=39071
2009-01-24 22:34:39 +00:00
Stefan Ginsberg f368fdbf9a - Partially revert 29656. NTOS calls HalQuerySystemInformation with HalFrameBufferCachingInformation, and disables PAT and MTRR if it returns success + TRUE. There is no reason this would be needed in ReactOS at the moment, so revert to old behaviour.
svn path=/trunk/; revision=39001
2009-01-21 17:10:16 +00:00
Stefan Ginsberg dc7184e73f Fix the completely retarded implementation of KdComPortInUse.
The original definition of this variable seems to have been based on the retarded type in the serial.sys source sample, which defines it as:

extern PUCHAR *KdComPortInUse;

This, somehow, works in MSVC, but gcc complains about the lack of import specifier (KdComPortInUse is exported by HAL).
This was 'fixed' by adding the import specifier to ros.
So instead of: PUCHAR *KdComPortInUse;
We ended up with: NTHALAPI PUCHAR *KdComPortInUse;
Which becomes 3 dereferences instead of 2, which is incorrect. This was 'fixed' by hacking the variable in HAL too.
Use "extern PUCHAR NTHALAPI KdComPortInUse" to be compatible with both compilers, remove the HAL hacks, and fix the usage of the variable.

Fixes the serial.sys crash when booted with _WINKD_ + kdcom from Windows 2003, as kdcom would (due to the HAL hack) set the internal 'pointer' to the port value, and serial would end up dereferencing the port address

svn path=/trunk/; revision=38960
2009-01-19 23:22:22 +00:00
Stefan Ginsberg f233dab1ee - Remove unnecessary allowwarnings="true"
svn path=/trunk/; revision=38948
2009-01-19 18:08:28 +00:00
Timo Kreuzer f82333b8ea Sync to trunk r38500
svn path=/branches/ros-amd64-bringup/; revision=38502
2009-01-01 22:38:03 +00:00
Timo Kreuzer 9ff809f84c sync to trunk r38300
svn path=/branches/ros-amd64-bringup/; revision=38498
2009-01-01 14:45:53 +00:00
Christoph von Wittich 82cffd5af5 fix some more typos
svn path=/trunk/; revision=38345
2008-12-25 12:27:47 +00:00
Timo Kreuzer 1f9c4940d2 Introduce new config flag BUILD_MP. Compile MP kernel and hal only when this is set to 1 to save us some time and space.
svn path=/trunk/; revision=38270
2008-12-22 15:23:08 +00:00
Timo Kreuzer c5456baba1 Fix hal build
svn path=/branches/ros-amd64-bringup/; revision=37991
2008-12-10 01:26:44 +00:00
Timo Kreuzer 26b6703525 sync trunk head (r37928)
svn path=/branches/ros-amd64-bringup/; revision=37931
2008-12-08 08:30:30 +00:00
Dmitry Gorbachev c63a203efa Put inline functions into header files.
svn path=/trunk/; revision=37921
2008-12-07 23:40:23 +00:00
Timo Kreuzer 5fca453788 STDCALL->NTAPI
svn path=/branches/ros-amd64-bringup/; revision=37873
2008-12-06 08:02:11 +00:00
Timo Kreuzer d00a945f03 sync to trunk head (37853) (except rbuild changes)
This breaks everything. Sorry, but it has to be done.
Will fix ASAP.

svn path=/branches/ros-amd64-bringup/; revision=37867
2008-12-05 15:30:17 +00:00
Dmitry Gorbachev 620e4cad34 Silence compiler warnings (5/11).
svn path=/trunk/; revision=37827
2008-12-03 17:31:38 +00:00
Stefan Ginsberg 37ba4af619 - Deprecate STDCALL from HAL
svn path=/trunk/; revision=37755
2008-11-29 23:16:39 +00:00
Samuel Serapion 353e29a6a9 - Merge to trunk r37270.
- Modified rbuild files to conform to trunk.
- Added spec file for bzip2
- Covert user32 to use pspec and use it for WIN64 specific exports.
- Added liboldnames in rbuild, needed to fix explorer build.
- Comented out code in mingw startup lib that requires linking to kernel32 (mostly security cookie code, which is not used).
- Remove unneeded stubs from amd64stubs.c
- i386 builds again, explorer crashes, need to investigate further.

svn path=/branches/ros-amd64-bringup/; revision=37279
2008-11-10 13:52:28 +00:00
Aleksey Bragin abb8c42552 Juan Sánchez Jurado <juan.s.jurado@gmail.com>
- Fixed HAL DMA problem that caused floppy driver not to work (the point was that function had to copy the read sector back to the MDL buffer and it was not doing that because of the problem with braces, broken in rev is 24464).
See issue #2287 for more details.

svn path=/trunk/; revision=37254
2008-11-09 08:23:16 +00:00
KJK::Hyperion 5f616878c9 Remove all <file> entries for spec/pspec files that don't define any stubs (for real this time)
svn path=/trunk/; revision=37144
2008-11-01 23:11:38 +00:00
Timo Kreuzer 1ba34e4317 sync to trunk head (37079)
svn path=/branches/ros-amd64-bringup/; revision=37088
2008-10-30 09:59:28 +00:00
Colin Finck 291486f5d6 Don't decide whether to preprocess .spec files based on Kernel-Mode vs. User-Mode, but on the file extension.
.pspec files are preprocessed now, while .spec files aren't. A change like this was already done in the amd64 branch before KJK rewrote the .spec stuff in rbuild.

- Renamed currently preprocessed .spec files to .pspec and changed that in the .rbuild files appropriately
- Renamed "IsWineModule" to "IsSpecDefinitionFile",  the new name is more appropriate
- Removed some checks for uppercased file extensions, we neither use them in our tree nor it will totally work as we only support them in a few places

Commit dedicated to Timo ;-)

svn path=/trunk/; revision=37070
2008-10-29 16:42:03 +00:00
Samuel Serapion 20e0231813 - Sync to trunk 36919.
- Modified a few rbuild files to conform to trunk rbuild.

svn path=/branches/ros-amd64-bringup/; revision=36924
2008-10-24 19:20:07 +00:00