ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
September 2011
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
20 participants
399 discussions
Start a n
N
ew thread
[tkreuzer] 53710: [FREELDR] - Improve List_PaToVa, making the code cleaner - Dereference LoaderBlock->Extension only after WinLdrSetProcessorContext, since its in kernel address space
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu Sep 15 11:27:27 2011 New Revision: 53710 URL:
http://svn.reactos.org/svn/reactos?rev=53710&view=rev
Log: [FREELDR] - Improve List_PaToVa, making the code cleaner - Dereference LoaderBlock->Extension only after WinLdrSetProcessorContext, since its in kernel address space Modified: trunk/reactos/boot/freeldr/freeldr/windows/conversion.c trunk/reactos/boot/freeldr/freeldr/windows/winldr.c Modified: trunk/reactos/boot/freeldr/freeldr/windows/conversion.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/windo…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/windows/conversion.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/windows/conversion.c [iso-8859-1] Thu Sep 15 11:27:27 2011 @@ -45,38 +45,32 @@ #endif VOID -List_PaToVa(LIST_ENTRY *ListEntry) +List_PaToVa(PLIST_ENTRY ListHeadPa) { - LIST_ENTRY *ListHead = ListEntry; - LIST_ENTRY *Next = ListEntry->Flink; - LIST_ENTRY *NextPA; + PLIST_ENTRY EntryPa, NextPa; - //Print(L"\n\nList_Entry: %X, First Next: %X\n", ListEntry, Next); - // - // Walk through the whole list - // - if (Next != NULL) + /* List must be properly initialized */ + ASSERT(ListHeadPa->Flink != 0); + ASSERT(ListHeadPa->Blink != 0); + + /* Loop the list in physical address space */ + EntryPa = ListHeadPa->Flink; + while (EntryPa != ListHeadPa) { - while (Next != PaToVa(ListHead)) - { - NextPA = VaToPa(Next); - //Print(L"Current: %X, Flink: %X, Blink: %X\n", Next, NextPA->Flink, NextPA->Blink); + /* Save the physical address of the next entry */ + NextPa = EntryPa->Flink; - NextPA->Flink = PaToVa((PVOID)NextPA->Flink); - NextPA->Blink = PaToVa((PVOID)NextPA->Blink); + /* Convert the addresses of this entry */ + EntryPa->Flink = PaToVa(EntryPa->Flink); + EntryPa->Blink = PaToVa(EntryPa->Blink); - //Print(L"After converting Flink: %X, Blink: %X\n", NextPA->Flink, NextPA->Blink); + /* Go to the next entry */ + EntryPa = NextPa; + } - Next = NextPA->Flink; - } - - // - // Finally convert first Flink/Blink - // - ListEntry->Flink = PaToVa((PVOID)ListEntry->Flink); - if (ListEntry->Blink) - ListEntry->Blink = PaToVa((PVOID)ListEntry->Blink); - } + /* Finally convert the list head */ + ListHeadPa->Flink = PaToVa(ListHeadPa->Flink); + ListHeadPa->Blink = PaToVa(ListHeadPa->Blink); } // This function converts only Child->Child, and calls itself for each Sibling Modified: trunk/reactos/boot/freeldr/freeldr/windows/winldr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/windo…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/windows/winldr.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/windows/winldr.c [iso-8859-1] Thu Sep 15 11:27:27 2011 @@ -569,6 +569,7 @@ PLDR_DATA_TABLE_ENTRY KernelDTE, HalDTE, KdComDTE = NULL; KERNEL_ENTRY_POINT KiSystemStartup; LPCSTR SystemRoot; + TRACE("LoadAndBootWindowsCommon()\n"); /* Convert BootPath to SystemRoot */ SystemRoot = strstr(BootPath, "\\"); @@ -631,11 +632,11 @@ /* Map pages and create memory descriptors */ WinLdrSetupMemoryLayout(LoaderBlock); + /* Set processor context */ + WinLdrSetProcessorContext(); + /* Save final value of LoaderPagesSpanned */ LoaderBlock->Extension->LoaderPagesSpanned = LoaderPagesSpanned; - - /* Set processor context */ - WinLdrSetProcessorContext(); TRACE("Hello from paged mode, KiSystemStartup %p, LoaderBlockVA %p!\n", KiSystemStartup, LoaderBlockVA);
13 years, 3 months
1
0
0
0
[tkreuzer] 53709: [FREELDR/HAL/NDK] - Move some shared constants (HYPERSPACE_BASE, MM_HAL_VA_START, APIC_BASE) to NDK to avoid duplicating them, also fix wrong values for amd64 - Map the hal addres...
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu Sep 15 10:46:02 2011 New Revision: 53709 URL:
http://svn.reactos.org/svn/reactos?rev=53709&view=rev
Log: [FREELDR/HAL/NDK] - Move some shared constants (HYPERSPACE_BASE, MM_HAL_VA_START, APIC_BASE) to NDK to avoid duplicating them, also fix wrong values for amd64 - Map the hal address space in amd64 freeldr - Fix use of uninitialized variable (HighPart of PHYSICAL_ADDRESS) in HalpAcpiCopyBiosTable - Fix some MSVC and amd64 warnings Modified: trunk/reactos/boot/freeldr/freeldr/arch/amd64/winldr.c trunk/reactos/boot/freeldr/freeldr/include/arch/amd64/amd64.h trunk/reactos/boot/freeldr/freeldr/include/reactos.h trunk/reactos/hal/halx86/acpi/halacpi.c trunk/reactos/hal/halx86/apic/apic.h trunk/reactos/hal/halx86/apic/apictrap.S trunk/reactos/hal/halx86/generic/memory.c trunk/reactos/hal/halx86/include/halp.h trunk/reactos/include/ndk/amd64/ketypes.h trunk/reactos/include/ndk/i386/ketypes.h Modified: trunk/reactos/boot/freeldr/freeldr/arch/amd64/winldr.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/arch/amd64/winldr.c [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/arch/amd64/winldr.c [iso-8859-1] Thu Sep 15 10:46:02 2011 @@ -235,22 +235,30 @@ BOOLEAN WinLdrMapSpecialPages() { - /* Map the PCR page */ - if (!MempMapSinglePage(KIP0PCRADDRESS, PcrBasePage * PAGE_SIZE)) - { - ERR("Could not map PCR @ %lx\n", PcrBasePage); - return FALSE; - } - - /* Map KI_USER_SHARED_DATA */ - if (!MempMapSinglePage(KI_USER_SHARED_DATA, (PcrBasePage+1) * PAGE_SIZE)) - { - ERR("Could not map KI_USER_SHARED_DATA\n"); - return FALSE; - } + PHARDWARE_PTE PpeBase, PdeBase, PteBase; + + /* Map the PCR page */ + if (!MempMapSinglePage(KIP0PCRADDRESS, PcrBasePage * PAGE_SIZE)) + { + ERR("Could not map PCR @ %lx\n", PcrBasePage); + return FALSE; + } + + /* Map KI_USER_SHARED_DATA */ + if (!MempMapSinglePage(KI_USER_SHARED_DATA, (PcrBasePage+1) * PAGE_SIZE)) + { + ERR("Could not map KI_USER_SHARED_DATA\n"); + return FALSE; + } /* Map the APIC page */ WinLdrpMapApic(); + + /* Map the page tables for 4 MB HAL address space. */ + PpeBase = MempGetOrCreatePageDir(PxeBase, VAtoPXI(MM_HAL_VA_START)); + PdeBase = MempGetOrCreatePageDir(PpeBase, VAtoPPI(MM_HAL_VA_START)); + MempGetOrCreatePageDir(PdeBase, VAtoPDI(MM_HAL_VA_START)); + MempGetOrCreatePageDir(PdeBase, VAtoPDI(MM_HAL_VA_START + 2 * 1024 * 1024)); return TRUE; } Modified: trunk/reactos/boot/freeldr/freeldr/include/arch/amd64/amd64.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/inclu…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/arch/amd64/amd64.h [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/include/arch/amd64/amd64.h [iso-8859-1] Thu Sep 15 10:46:02 2011 @@ -36,14 +36,6 @@ #define VAtoPDI(va) ((((ULONG64)va) >> PDI_SHIFT) & 0x1FF) #define VAtoPTI(va) ((((ULONG64)va) >> PTI_SHIFT) & 0x1FF) -#define HYPERSPACE_BASE 0xfffff70000000000ULL -#define HAL_BASE 0xffffffff80000000ULL -#define APIC_BASE 0xFFFFFFFFFFFE0000ULL - -#define APIC_PHYS_BASE 0xfee00000 - -#define NUM_PAGES_KERNEL - #ifndef ASM VOID FrLdrSetupGdtIdt(VOID); Modified: trunk/reactos/boot/freeldr/freeldr/include/reactos.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/inclu…
============================================================================== --- trunk/reactos/boot/freeldr/freeldr/include/reactos.h [iso-8859-1] (original) +++ trunk/reactos/boot/freeldr/freeldr/include/reactos.h [iso-8859-1] Thu Sep 15 10:46:02 2011 @@ -40,8 +40,6 @@ ((p) >> PFN_SHIFT) #define STARTUP_BASE 0xC0000000 -#define HAL_BASE 0xFFC00000 -#define APIC_BASE 0xFFFE0000 #define LowMemPageTableIndex 0 #define StartupPageTableIndex (STARTUP_BASE >> 22) Modified: trunk/reactos/hal/halx86/acpi/halacpi.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/acpi/halacpi.c?…
============================================================================== --- trunk/reactos/hal/halx86/acpi/halacpi.c [iso-8859-1] (original) +++ trunk/reactos/hal/halx86/acpi/halacpi.c [iso-8859-1] Thu Sep 15 10:46:02 2011 @@ -100,11 +100,11 @@ { /* Phase 0: Convert to pages and use the HAL heap */ PageCount = BYTES_TO_PAGES(Size); - PhysAddress.LowPart = HalpAllocPhysicalMemory(LoaderBlock, - 0x1000000, - PageCount, - FALSE); - if (PhysAddress.LowPart) + PhysAddress.QuadPart = HalpAllocPhysicalMemory(LoaderBlock, + 0x1000000, + PageCount, + FALSE); + if (PhysAddress.QuadPart) { /* Map it */ CachedTable = HalpMapPhysicalMemory64(PhysAddress, PageCount); @@ -217,7 +217,7 @@ } else { - /* To find tables, we need the RSDT */ + /* To find tables, we need the RSDT */ Rsdt = HalpAcpiGetTable(LoaderBlock, RSDT_SIGNATURE); if (Rsdt) { @@ -342,7 +342,7 @@ ASSERT(Header); /* How many pages do we need? */ - PageCount = BYTES_TO_PAGES(Header->Length); + PageCount = BYTES_TO_PAGES(Header->Length); if (PageCount != 2) { /* We assumed two, but this is not the case, free the current mapping */ @@ -546,7 +546,7 @@ PCONFIGURATION_COMPONENT_DATA Next = NULL; PCM_PARTIAL_RESOURCE_LIST ResourceList; PACPI_BIOS_MULTI_NODE NodeData; - ULONG NodeLength; + SIZE_T NodeLength; PFN_NUMBER PageCount; PVOID MappedAddress; PHYSICAL_ADDRESS PhysicalAddress; @@ -605,12 +605,11 @@ PageCount = BYTES_TO_PAGES(NodeLength); /* Allocate the memory */ - PhysicalAddress.HighPart = 0; - PhysicalAddress.LowPart = HalpAllocPhysicalMemory(LoaderBlock, - 0x1000000, - PageCount, - FALSE); - if (PhysicalAddress.LowPart) + PhysicalAddress.QuadPart = HalpAllocPhysicalMemory(LoaderBlock, + 0x1000000, + PageCount, + FALSE); + if (PhysicalAddress.QuadPart) { /* Map it if the allocation worked */ MappedAddress = HalpMapPhysicalMemory64(PhysicalAddress, PageCount); @@ -741,7 +740,7 @@ MmUnmapIoSpace(MappedAddress, TableLength << PAGE_SHIFT); } - /* Cache the RSDT */ + /* Cache the RSDT */ HalpAcpiCacheTable(&Rsdt->Header); /* Check for compatible loader block extension */ @@ -825,7 +824,7 @@ HalpNumaInitializeStaticConfiguration(LoaderBlock); /* Initialize hotplug through the SRAT */ - HalpDynamicSystemResourceConfiguration(LoaderBlock); + HalpDynamicSystemResourceConfiguration(LoaderBlock); DPRINT1("ACPI SRAT at 0x%p\n", HalpAcpiSrat); if (HalpAcpiSrat) { @@ -843,14 +842,14 @@ HaliAcpiTimerInit(0, 0); /* Do we have a low stub address yet? */ - if (!HalpLowStubPhysicalAddress.LowPart) + if (!HalpLowStubPhysicalAddress.QuadPart) { /* Allocate it */ - HalpLowStubPhysicalAddress.LowPart = HalpAllocPhysicalMemory(LoaderBlock, - 0x100000, - 1, - FALSE); - if (HalpLowStubPhysicalAddress.LowPart) + HalpLowStubPhysicalAddress.QuadPart = HalpAllocPhysicalMemory(LoaderBlock, + 0x100000, + 1, + FALSE); + if (HalpLowStubPhysicalAddress.QuadPart) { /* Map it */ HalpLowStub = HalpMapPhysicalMemory64(HalpLowStubPhysicalAddress, 1); Modified: trunk/reactos/hal/halx86/apic/apic.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/apic/apic.h?rev…
============================================================================== --- trunk/reactos/hal/halx86/apic/apic.h [iso-8859-1] (original) +++ trunk/reactos/hal/halx86/apic/apic.h [iso-8859-1] Thu Sep 15 10:46:02 2011 @@ -1,7 +1,6 @@ #ifdef _M_AMD64 -#define APIC_BASE 0xFFFFFFFFFEE00000ULL -#define IOAPIC_BASE 0xFFFFFFFFFEE01000ULL // checkme +#define IOAPIC_BASE 0xFFFFFFFFFFFE1000ULL // checkme #define ZERO_VECTOR 0x00 // IRQL 00 #define APC_VECTOR 0x3D // IRQL 01 #define APIC_SPURIOUS_VECTOR 0x3f @@ -18,7 +17,6 @@ #define TprToIrql(Tpr) ((KIRQL)(Tpr >> 4)) #define CLOCK2_LEVEL CLOCK_LEVEL #else -#define APIC_BASE 0xFFFE0000 #define IOAPIC_BASE 0xFFFE1000 // checkme #define ZERO_VECTOR 0x00 // IRQL 00 #define APIC_SPURIOUS_VECTOR 0x1f Modified: trunk/reactos/hal/halx86/apic/apictrap.S URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/apic/apictrap.S…
============================================================================== --- trunk/reactos/hal/halx86/apic/apictrap.S [iso-8859-1] (original) +++ trunk/reactos/hal/halx86/apic/apictrap.S [iso-8859-1] Thu Sep 15 10:46:02 2011 @@ -34,7 +34,7 @@ push rax lea rax, HackEoiReturn[rip] push rax - mov dword ptr [HEX(0FFFFFFFFFEE000B0)], 0 + mov dword ptr [HEX(0FFFFFFFFFFFE00B0)], 0 iretq HackEoiReturn: ret Modified: trunk/reactos/hal/halx86/generic/memory.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/generic/memory.…
============================================================================== --- trunk/reactos/hal/halx86/generic/memory.c [iso-8859-1] (original) +++ trunk/reactos/hal/halx86/generic/memory.c [iso-8859-1] Thu Sep 15 10:46:02 2011 @@ -13,8 +13,7 @@ #include <debug.h> /* Share with Mm headers? */ -#define MM_HAL_VA_START (PVOID)0xFFC00000 -#define MM_HAL_HEAP_START (PVOID)((ULONG_PTR)MM_HAL_VA_START + (1024 * 1024)) +#define MM_HAL_HEAP_START (PVOID)(MM_HAL_VA_START + (1024 * 1024)) /* GLOBALS *******************************************************************/ @@ -25,14 +24,15 @@ /* PRIVATE FUNCTIONS *********************************************************/ -ULONG +ULONG_PTR NTAPI HalpAllocPhysicalMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock, - IN ULONG MaxAddress, - IN ULONG PageCount, + IN ULONG_PTR MaxAddress, + IN PFN_NUMBER PageCount, IN BOOLEAN Aligned) { - ULONG UsedDescriptors, Alignment, PhysicalAddress; + ULONG UsedDescriptors, Alignment; + ULONG_PTR PhysicalAddress; PFN_NUMBER MaxPage, BasePage; PLIST_ENTRY NextEntry; PMEMORY_ALLOCATION_DESCRIPTOR MdBlock, NewBlock, FreeBlock; @@ -87,7 +87,7 @@ /* Okay, now get a descriptor */ NewBlock = &HalpAllocationDescriptorArray[HalpUsedAllocDescriptors]; - NewBlock->PageCount = PageCount; + NewBlock->PageCount = (ULONG)PageCount; NewBlock->BasePage = MdBlock->BasePage + Alignment; NewBlock->MemoryType = LoaderHALCachedMemory; @@ -103,8 +103,8 @@ { /* Get the next descriptor */ FreeBlock = &HalpAllocationDescriptorArray[UsedDescriptors]; - FreeBlock->PageCount = MdBlock->PageCount - Alignment - PageCount; - FreeBlock->BasePage = MdBlock->BasePage + Alignment + PageCount; + FreeBlock->PageCount = MdBlock->PageCount - Alignment - (ULONG)PageCount; + FreeBlock->BasePage = MdBlock->BasePage + Alignment + (ULONG)PageCount; /* One more */ HalpUsedAllocDescriptors++; @@ -120,8 +120,8 @@ else { /* Consume memory from this block */ - MdBlock->BasePage += PageCount; - MdBlock->PageCount -= PageCount; + MdBlock->BasePage += (ULONG)PageCount; + MdBlock->PageCount -= (ULONG)PageCount; /* Insert the descriptor */ InsertTailList(&MdBlock->ListEntry, &NewBlock->ListEntry); @@ -137,10 +137,10 @@ PVOID NTAPI HalpMapPhysicalMemory64(IN PHYSICAL_ADDRESS PhysicalAddress, - IN ULONG PageCount) + IN PFN_NUMBER PageCount) { PHARDWARE_PTE PointerPte; - ULONG UsedPages = 0; + PFN_NUMBER UsedPages = 0; PVOID VirtualAddress, BaseAddress; /* Start at the current HAL heap base */ @@ -205,13 +205,13 @@ VOID NTAPI HalpUnmapVirtualAddress(IN PVOID VirtualAddress, - IN ULONG PageCount) + IN PFN_NUMBER PageCount) { PHARDWARE_PTE PointerPte; ULONG i; /* Only accept valid addresses */ - if (VirtualAddress < MM_HAL_VA_START) return; + if (VirtualAddress < (PVOID)MM_HAL_VA_START) return; /* Align it down to page size */ VirtualAddress = (PVOID)((ULONG_PTR)VirtualAddress & ~(PAGE_SIZE - 1)); Modified: trunk/reactos/hal/halx86/include/halp.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/include/halp.h?…
============================================================================== --- trunk/reactos/hal/halx86/include/halp.h [iso-8859-1] (original) +++ trunk/reactos/hal/halx86/include/halp.h [iso-8859-1] Thu Sep 15 10:46:02 2011 @@ -639,18 +639,27 @@ // // Memory routines // +ULONG_PTR +NTAPI +HalpAllocPhysicalMemory( + IN PLOADER_PARAMETER_BLOCK LoaderBlock, + IN ULONG_PTR MaxAddress, + IN PFN_NUMBER PageCount, + IN BOOLEAN Aligned +); + PVOID NTAPI HalpMapPhysicalMemory64( IN PHYSICAL_ADDRESS PhysicalAddress, - IN ULONG NumberPage + IN PFN_NUMBER PageCount ); VOID NTAPI HalpUnmapVirtualAddress( IN PVOID VirtualAddress, - IN ULONG NumberPages + IN PFN_NUMBER NumberPages ); /* sysinfo.c */ @@ -736,22 +745,6 @@ NTAPI HalpReleaseCmosSpinLock( VOID -); - -ULONG -NTAPI -HalpAllocPhysicalMemory( - IN PLOADER_PARAMETER_BLOCK LoaderBlock, - IN ULONG MaxAddress, - IN ULONG PageCount, - IN BOOLEAN Aligned -); - -PVOID -NTAPI -HalpMapPhysicalMemory64( - IN PHYSICAL_ADDRESS PhysicalAddress, - IN ULONG PageCount ); NTSTATUS @@ -852,8 +845,8 @@ #ifdef _M_AMD64 #define KfLowerIrql KeLowerIrql #define KiEnterInterruptTrap(TrapFrame) /* We do all neccessary in asm code */ -#define KiEoiHelper() return -#define HalBeginSystemInterrupt(Irql, Vector, OldIrql) TRUE +#define KiEoiHelper(TrapFrame) return /* Just return to the caller */ +#define HalBeginSystemInterrupt(Irql, Vector, OldIrql) (KeRaiseIrql(Irql, OldIrql), TRUE) #ifndef CONFIG_SMP /* On UP builds, spinlocks don't exist at IRQL >= DISPATCH */ #define KiAcquireSpinLock(SpinLock) Modified: trunk/reactos/include/ndk/amd64/ketypes.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/amd64/ketypes.…
============================================================================== --- trunk/reactos/include/ndk/amd64/ketypes.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/amd64/ketypes.h [iso-8859-1] Thu Sep 15 10:46:02 2011 @@ -162,6 +162,9 @@ // HAL Variables // #define INITIAL_STALL_COUNT 100 +#define HYPERSPACE_BASE 0xfffff70000000000ULL +#define MM_HAL_VA_START 0xFFFFFFFFFFC00000ULL /* This is Vista+ */ +#define APIC_BASE 0xFFFFFFFFFFFE0000ULL // // IOPM Definitions Modified: trunk/reactos/include/ndk/i386/ketypes.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/i386/ketypes.h…
============================================================================== --- trunk/reactos/include/ndk/i386/ketypes.h [iso-8859-1] (original) +++ trunk/reactos/include/ndk/i386/ketypes.h [iso-8859-1] Thu Sep 15 10:46:02 2011 @@ -136,6 +136,13 @@ // HAL Variables // #define INITIAL_STALL_COUNT 100 +#ifdef PAE +#define HYPERSPACE_BASE 0xc0400000 +#else +#define HYPERSPACE_BASE 0xc0800000 +#endif +#define MM_HAL_VA_START 0xFFC00000 +#define APIC_BASE 0xFFFE0000 // // IOPM Definitions
13 years, 3 months
1
0
0
0
[tkreuzer] 53708: [GDI32] Improve GdiAllocBatchCommand formatting and fix MSVC warnings
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Thu Sep 15 10:12:20 2011 New Revision: 53708 URL:
http://svn.reactos.org/svn/reactos?rev=53708&view=rev
Log: [GDI32] Improve GdiAllocBatchCommand formatting and fix MSVC warnings Modified: trunk/reactos/dll/win32/gdi32/include/gdi32p.h Modified: trunk/reactos/dll/win32/gdi32/include/gdi32p.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/gdi32/include/gd…
============================================================================== --- trunk/reactos/dll/win32/gdi32/include/gdi32p.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/gdi32/include/gdi32p.h [iso-8859-1] Thu Sep 15 10:12:20 2011 @@ -298,7 +298,7 @@ USHORT Cmd) { PTEB pTeb; - ULONG ulSize; + USHORT cjSize; PGDIBATCHHDR pHdr; /* Get a pointer to the TEB */ @@ -318,45 +318,23 @@ } /* Get the size of the entry */ - switch(Cmd) - { - case GdiBCPatBlt: - ulSize = 0; - break; - case GdiBCPolyPatBlt: - ulSize = 0; - break; - case GdiBCTextOut: - ulSize = 0; - break; - case GdiBCExtTextOut: - ulSize = 0; - break; - case GdiBCSetBrushOrg: - ulSize = 0; - break; - case GdiBCExtSelClipRgn: - ulSize = 0; - break; - case GdiBCSelObj: - ulSize = sizeof(GDIBSOBJECT); - break; - case GdiBCDelRgn: - ulSize = sizeof(GDIBSOBJECT); - break; - case GdiBCDelObj: - ulSize = sizeof(GDIBSOBJECT); - break; - default: - return NULL; - } + if (Cmd == GdiBCPatBlt) cjSize = 0; + else if (Cmd == GdiBCPolyPatBlt) cjSize = 0; + else if (Cmd == GdiBCTextOut) cjSize = 0; + else if (Cmd == GdiBCExtTextOut) cjSize = 0; + else if (Cmd == GdiBCSetBrushOrg) cjSize = 0; + else if (Cmd == GdiBCExtSelClipRgn) cjSize = 0; + else if (Cmd == GdiBCSelObj) cjSize = sizeof(GDIBSOBJECT); + else if (Cmd == GdiBCDelRgn) cjSize = sizeof(GDIBSOBJECT); + else if (Cmd == GdiBCDelObj) cjSize = sizeof(GDIBSOBJECT); + else cjSize = 0; /* Unsupported operation */ - if (ulSize == 0) return NULL; + if (cjSize == 0) return NULL; /* Check if the buffer is full */ if ((pTeb->GdiBatchCount >= GDI_BatchLimit) || - ((pTeb->GdiTebBatch.Offset + ulSize) > GDIBATCHBUFSIZE)) + ((pTeb->GdiTebBatch.Offset + cjSize) > GDIBATCHBUFSIZE)) { /* Call win32k, the kernel will call NtGdiFlushUserBatch to flush the current batch */ @@ -367,12 +345,12 @@ pHdr = (PVOID)((PUCHAR)pTeb->GdiTebBatch.Buffer + pTeb->GdiTebBatch.Offset); /* Update Offset and batch count */ - pTeb->GdiTebBatch.Offset += ulSize; + pTeb->GdiTebBatch.Offset += cjSize; pTeb->GdiBatchCount++; /* Fill in the core fields */ pHdr->Cmd = Cmd; - pHdr->Size = ulSize; + pHdr->Size = cjSize; return pHdr; }
13 years, 3 months
1
0
0
0
[tkreuzer] 53707: [NTOSKRNL] - Fix MSVC warning about signed/unsigned comparison.
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Sep 14 14:01:41 2011 New Revision: 53707 URL:
http://svn.reactos.org/svn/reactos?rev=53707&view=rev
Log: [NTOSKRNL] - Fix MSVC warning about signed/unsigned comparison. Modified: trunk/reactos/ntoskrnl/fsrtl/fastio.c Modified: trunk/reactos/ntoskrnl/fsrtl/fastio.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/fsrtl/fastio.c?re…
============================================================================== --- trunk/reactos/ntoskrnl/fsrtl/fastio.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/fsrtl/fastio.c [iso-8859-1] Wed Sep 14 14:01:41 2011 @@ -198,8 +198,8 @@ if (IoStatus->Status != STATUS_END_OF_FILE) { - ASSERT(FcbHeader->FileSize.QuadPart >= - FileOffset->QuadPart + IoStatus->Information); + ASSERT((ULONGLONG)FcbHeader->FileSize.QuadPart >= + (FileOffset->QuadPart + IoStatus->Information)); } } else @@ -219,8 +219,8 @@ if (Result == TRUE) { ASSERT((IoStatus->Status == STATUS_END_OF_FILE) || - ((LONGLONG)(FileOffset->QuadPart + IoStatus->Information) <= - FcbHeader->FileSize.QuadPart)); + ((FileOffset->QuadPart + IoStatus->Information) <= + (ULONGLONG)FcbHeader->FileSize.QuadPart)); } }
13 years, 3 months
1
0
0
0
[tkreuzer] 53706: [SHELL32] A DialogProc returns INT_PTR, not BOOL
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Wed Sep 14 06:28:11 2011 New Revision: 53706 URL:
http://svn.reactos.org/svn/reactos?rev=53706&view=rev
Log: [SHELL32] A DialogProc returns INT_PTR, not BOOL Modified: trunk/reactos/dll/win32/shell32/drive.cpp Modified: trunk/reactos/dll/win32/shell32/drive.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/drive.cp…
============================================================================== --- trunk/reactos/dll/win32/shell32/drive.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/drive.cpp [iso-8859-1] Wed Sep 14 06:28:11 2011 @@ -32,7 +32,7 @@ } HWPAGE_DISPLAYMODE, *PHWPAGE_DISPLAYMODE; typedef -BOOLEAN +BOOLEAN (NTAPI *INITIALIZE_FMIFS)( IN PVOID hinstDll, IN DWORD dwReason, @@ -55,7 +55,7 @@ ); typedef -VOID +VOID (NTAPI *FORMAT_EX)( IN PWCHAR DriveRoot, IN FMIFS_MEDIA_FLAG MediaFlag, @@ -67,7 +67,7 @@ ); typedef -VOID +VOID (NTAPI *CHKDSK)( IN PWCHAR DriveRoot, IN PWCHAR Format, @@ -234,7 +234,7 @@ bChkdskSuccess = FALSE; SendDlgItemMessageW(hwndDlg, 14002, PBM_SETRANGE, 0, MAKELPARAM(0, 100)); pContext->Chkdsk(szDrive, szFs, bCorrectErrors, TRUE, FALSE, bScanDrive, NULL, NULL, ChkdskCallback); - + ChkdskDrvDialog = NULL; pContext->Result = bChkdskSuccess; bChkdskSuccess = FALSE; @@ -563,7 +563,7 @@ break; case 14001: dwSize = sizeof(szPath); - if (RegGetValueW(HKEY_LOCAL_MACHINE, + if (RegGetValueW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\MyComputer\\DefragPath", NULL, RRF_RT_REG_EXPAND_SZ, @@ -588,7 +588,7 @@ break; case 14002: dwSize = sizeof(szPath); - if (RegGetValueW(HKEY_LOCAL_MACHINE, + if (RegGetValueW(HKEY_LOCAL_MACHINE, L"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\MyComputer\\BackupPath", NULL, RRF_RT_REG_EXPAND_SZ, @@ -692,7 +692,7 @@ if (!wcslen(szName)) { /* FIXME - * check if disk is a really a local hdd + * check if disk is a really a local hdd */ i = LoadStringW(shell32_hInstance, IDS_DRIVE_FIXED, szName, sizeof(szName)/sizeof(WCHAR)-6); if (i > 0 && i < (sizeof(szName)/sizeof(WCHAR)) - 6) @@ -766,7 +766,7 @@ ClusterSize = 32768; else if (TotalNumberOfBytes->QuadPart <= (4096LL * 1024LL * 1024LL)) ClusterSize = 8192; - else + else return FALSE; } else if (!wcsicmp(szFs, L"FAT32")) @@ -783,7 +783,7 @@ ClusterSize = 8192; else if (TotalNumberOfBytes->QuadPart <= (32768LL * 1024LL * 1024LL)) ClusterSize = 16384; - else + else return FALSE; } else if (!wcsicmp(szFs, L"NTFS")) @@ -1156,8 +1156,8 @@ } -BOOL -CALLBACK +INT_PTR +CALLBACK FormatDriveDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { PFORMAT_DRIVE_CONTEXT pContext; @@ -1261,7 +1261,7 @@ * SHFormatDrive (SHELL32.@) */ -DWORD +DWORD WINAPI SHFormatDrive(HWND hwnd, UINT drive, UINT fmtID, UINT options) {
13 years, 3 months
1
0
0
0
[tkreuzer] 53705: [PSDK] Use CHAR instead of char in STRRET structure (as documented in MSDN). Fixes compilation of shell32 with MSVC.
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Tue Sep 13 21:20:46 2011 New Revision: 53705 URL:
http://svn.reactos.org/svn/reactos?rev=53705&view=rev
Log: [PSDK] Use CHAR instead of char in STRRET structure (as documented in MSDN). Fixes compilation of shell32 with MSVC. Modified: trunk/reactos/include/psdk/shtypes.idl Modified: trunk/reactos/include/psdk/shtypes.idl URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/shtypes.idl?r…
============================================================================== --- trunk/reactos/include/psdk/shtypes.idl [iso-8859-1] (original) +++ trunk/reactos/include/psdk/shtypes.idl [iso-8859-1] Tue Sep 13 21:20:46 2011 @@ -66,7 +66,7 @@ { [case(STRRET_WSTR)][string] LPWSTR pOleStr; /* OLESTR that will be freed */ [case(STRRET_OFFSET)] UINT uOffset; /* Offset into SHITEMID (ANSI) */ - [case(STRRET_CSTR)] char cStr[MAX_PATH]; /* ANSI Buffer */ + [case(STRRET_CSTR)] CHAR cStr[MAX_PATH]; /* ANSI Buffer */ } DUMMYUNIONNAME; } STRRET, *LPSTRRET; cpp_quote("#include <poppack.h>")
13 years, 3 months
1
0
0
0
[tkreuzer] 53704: [HAL] Fix amd64 build
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Tue Sep 13 14:44:47 2011 New Revision: 53704 URL:
http://svn.reactos.org/svn/reactos?rev=53704&view=rev
Log: [HAL] Fix amd64 build Modified: trunk/reactos/hal/halx86/amd64/halinit.c trunk/reactos/hal/halx86/amd64/processor.c trunk/reactos/hal/halx86/apic/apic.c trunk/reactos/hal/halx86/apic/apic.h trunk/reactos/hal/halx86/apic/apictrap.S Modified: trunk/reactos/hal/halx86/amd64/halinit.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/amd64/halinit.c…
============================================================================== --- trunk/reactos/hal/halx86/amd64/halinit.c [iso-8859-1] (original) +++ trunk/reactos/hal/halx86/amd64/halinit.c [iso-8859-1] Tue Sep 13 14:44:47 2011 @@ -19,7 +19,7 @@ /* PRIVATE FUNCTIONS *********************************************************/ /* FUNCTIONS *****************************************************************/ - +#if 0 VOID NTAPI HalpInitProcessor( @@ -49,4 +49,5 @@ } +#endif Modified: trunk/reactos/hal/halx86/amd64/processor.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/amd64/processor…
============================================================================== --- trunk/reactos/hal/halx86/amd64/processor.c [iso-8859-1] (original) +++ trunk/reactos/hal/halx86/amd64/processor.c [iso-8859-1] Tue Sep 13 14:44:47 2011 @@ -27,26 +27,6 @@ } /* FUNCTIONS *****************************************************************/ - -/* - * @implemented - */ -VOID -NTAPI -HalInitializeProcessor(IN ULONG ProcessorNumber, - IN PLOADER_PARAMETER_BLOCK LoaderBlock) -{ - /* Set default stall count */ - KeGetPcr()->StallScaleFactor = INITIAL_STALL_COUNT; - - /* Update the interrupt affinity and processor mask */ - InterlockedBitTestAndSet((PLONG)&HalpActiveProcessors, ProcessorNumber); - InterlockedBitTestAndSet((PLONG)&HalpDefaultInterruptAffinity, - ProcessorNumber); - - /* Register routines for KDCOM */ - //HalpRegisterKdSupportFunctions(); -} /* * @implemented Modified: trunk/reactos/hal/halx86/apic/apic.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/apic/apic.c?rev…
============================================================================== --- trunk/reactos/hal/halx86/apic/apic.c [iso-8859-1] (original) +++ trunk/reactos/hal/halx86/apic/apic.c [iso-8859-1] Tue Sep 13 14:44:47 2011 @@ -18,7 +18,9 @@ #include "apic.h" void HackEoi(void); +#ifndef _M_AMD64 #define APIC_LAZY_IRQL +#endif /* GLOBALS ********************************************************************/ @@ -393,9 +395,10 @@ /* Set the IRQL from the PCR */ ApicWrite(APIC_TPR, IrqlToTpr(KeGetPcr()->Irql)); - +#ifdef APIC_LAZY_IRQL /* Save the new hard IRQL in the IRR field */ KeGetPcr()->IRR = KeGetPcr()->Irql; +#endif } UCHAR @@ -549,6 +552,7 @@ /* SOFTWARE INTERRUPT TRAPS ***************************************************/ +#ifndef _M_AMD64 VOID DECLSPEC_NORETURN FASTCALL @@ -598,7 +602,6 @@ KiEoiHelper(TrapFrame); } -#ifndef _M_AMD64 VOID DECLSPEC_NORETURN FASTCALL Modified: trunk/reactos/hal/halx86/apic/apic.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/apic/apic.h?rev…
============================================================================== --- trunk/reactos/hal/halx86/apic/apic.h [iso-8859-1] (original) +++ trunk/reactos/hal/halx86/apic/apic.h [iso-8859-1] Tue Sep 13 14:44:47 2011 @@ -15,7 +15,8 @@ #define APIC_PROFILE_VECTOR 0xFD // IRQL 31 #define APIC_NMI_VECTOR 0xFF #define IrqlToTpr(Irql) (Irql << 4) -#define TprToIrql(Tpr) (Tpr >> 4) +#define TprToIrql(Tpr) ((KIRQL)(Tpr >> 4)) +#define CLOCK2_LEVEL CLOCK_LEVEL #else #define APIC_BASE 0xFFFE0000 #define IOAPIC_BASE 0xFFFE1000 // checkme Modified: trunk/reactos/hal/halx86/apic/apictrap.S URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/apic/apictrap.S…
============================================================================== --- trunk/reactos/hal/halx86/apic/apictrap.S [iso-8859-1] (original) +++ trunk/reactos/hal/halx86/apic/apictrap.S [iso-8859-1] Tue Sep 13 14:44:47 2011 @@ -14,19 +14,45 @@ #include <ksamd64.inc> #include <trapamd64.inc> #define KI_PUSH_FAKE_ERROR_CODE TF_PUSH_FAKE_ERROR_CODE +.code + +TRAP_ENTRY HalpClockInterrupt, KI_PUSH_FAKE_ERROR_CODE +TRAP_ENTRY HalpProfileInterrupt, KI_PUSH_FAKE_ERROR_CODE + PUBLIC ApicSpuriousService +ApicSpuriousService: + iret + +PUBLIC HackEoi +HackEoi: + xor rax, rax + mov ax, ss + push rax + push rsp + pushfq + mov ax, cs + push rax + lea rax, HackEoiReturn[rip] + push rax + mov dword ptr [HEX(0FFFFFFFFFEE000B0)], 0 + iretq +HackEoiReturn: + ret + #else #include <ks386.inc> #include <internal/i386/asmmacro.S> -PUBLIC _ApicSpuriousService -#endif - .code -#ifndef _M_AMD64 +TRAP_ENTRY HalpClockInterrupt, KI_PUSH_FAKE_ERROR_CODE +TRAP_ENTRY HalpProfileInterrupt, KI_PUSH_FAKE_ERROR_CODE TRAP_ENTRY HalpTrap0D, 0 TRAP_ENTRY HalpApcInterrupt, KI_PUSH_FAKE_ERROR_CODE TRAP_ENTRY HalpDispatchInterrupt, KI_PUSH_FAKE_ERROR_CODE + +PUBLIC _ApicSpuriousService +_ApicSpuriousService: + iret // VBox APIC needs an iret more or less directly following the EOI PUBLIC _HackEoi @@ -40,16 +66,9 @@ ret #endif -TRAP_ENTRY HalpClockInterrupt, KI_PUSH_FAKE_ERROR_CODE -TRAP_ENTRY HalpProfileInterrupt, KI_PUSH_FAKE_ERROR_CODE -FUNC ApicSpuriousService -#ifdef _M_AMD64 - .ENDPROLOG -#endif - int 3 - iret -ENDFUNC ApicSpuriousService + + END
13 years, 3 months
1
0
0
0
[tkreuzer] 53703: [NTOSKRNL] Fix a DPRINT
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Tue Sep 13 13:28:49 2011 New Revision: 53703 URL:
http://svn.reactos.org/svn/reactos?rev=53703&view=rev
Log: [NTOSKRNL] Fix a DPRINT Modified: trunk/reactos/ntoskrnl/ke/i386/irqobj.c Modified: trunk/reactos/ntoskrnl/ke/i386/irqobj.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ke/i386/irqobj.c?…
============================================================================== --- trunk/reactos/ntoskrnl/ke/i386/irqobj.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ke/i386/irqobj.c [iso-8859-1] Tue Sep 13 13:28:49 2011 @@ -171,7 +171,7 @@ if (HalBeginSystemInterrupt(HIGH_LEVEL, TrapFrame->ErrCode, &OldIrql)) { /* Warn user */ - DPRINT1("\n\x7\x7!!! Unexpected Interrupt %02lx !!!\n"); + DPRINT1("\n\x7\x7!!! Unexpected Interrupt 0x%02lx !!!\n", TrapFrame->ErrCode); /* Now call the epilogue code */ KiExitInterrupt(TrapFrame, OldIrql, FALSE); @@ -228,7 +228,7 @@ FASTCALL KiChainedDispatch(IN PKTRAP_FRAME TrapFrame, IN PKINTERRUPT Interrupt) -{ +{ KIRQL OldIrql; BOOLEAN Handled; PLIST_ENTRY NextEntry, ListHead; @@ -245,7 +245,7 @@ ListHead = &Interrupt->InterruptListEntry; NextEntry = ListHead; /* The head is an entry! */ while (TRUE) - { + { /* Check if this interrupt's IRQL is higher than the current one */ if (Interrupt->SynchronizeIrql > Interrupt->Irql) { @@ -304,7 +304,7 @@ FASTCALL KiInterruptTemplateHandler(IN PKTRAP_FRAME TrapFrame, IN PKINTERRUPT Interrupt) -{ +{ /* Enter interrupt frame */ KiEnterInterruptTrap(TrapFrame);
13 years, 3 months
1
0
0
0
[akhaldi] 53702: [SHELL32] * Merge r53700. Point 3 in bug 6481 was fixed by fixing the parser (at line 414) to use only ', ' as the delimiter, to match Windows behavior.
by akhaldi@svn.reactos.org
Author: akhaldi Date: Tue Sep 13 13:13:35 2011 New Revision: 53702 URL:
http://svn.reactos.org/svn/reactos?rev=53702&view=rev
Log: [SHELL32] * Merge r53700. Point 3 in bug 6481 was fixed by fixing the parser (at line 414) to use only ',' as the delimiter, to match Windows behavior. Modified: trunk/reactos/ (props changed) trunk/reactos/dll/win32/shell32/control.cpp Propchange: trunk/reactos/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Sep 13 13:13:35 2011 @@ -8,5 +8,5 @@ /branches/reactx/reactos:49994-49995 /branches/ros-amd64-bringup:36852 /branches/ros-amd64-bringup/reactos:34711-34712,34741,34743,34770,34780-34782,34803,34812,34839,34842,34864,34870,34874,34877,34908-34909,34917,34965,35323-35324,35347-35348,35361,35436,35509,35515,35588,35655,35683,35739,35746,35762,35771,35777,35781,35789,35805,35823,35827,35902,35904-35906,35942,35947-35949,35952-35953,35966,36011-36013,36172,36360,36380,36388-36389,36393,36397,36443,36445,36475,36502-36503,36505,36570,36614,36852,36898-36899,36930,36936,36949,36951,36958,36961,36964,36969,36972,36987-36988,36990,36992,37019,37322-37323,37333-37334,37434,37472,37475,37536,37820-37821,37868-37869,37873,37990-37991,38013-38014,38092,38100,38148-38151,38264-38265,38268,38355,39151,39333,39335,39345,39639,40120,40122-40123,40125,40127-40128,40155,40247,40324,40608,40753,40926-40928,40986-40987,40989,40991,40993,40995-40996,41000-41001,41027-41030,41044-41045,41047-41050,41052,41070,41082-41086,41097-41098,41101,41449,41479-41480,41483-41485,41499-41500,41502,41531,41536,41540,41546-41547,41549,43080,43426,43451,43454,43506,43566,43574,43598,43600-43602,43604-43605,43677,43682,43757,43775,43836,43838-43840,43852,43857-43858,43860,43905-43907,43952,43954,43965,43969,43979,43981,43992,44002,44036-44037,44039-44040,44044-44045,44053,44065,44095,44123,44143-44144,44205,44238,44257,44259,44294,44338-44339,44385,44389,44391,44426,44460,44467-44468,44470-44471,44499,44501,44503-44504,44506,44510-44512,44521,44523-44526,44530,44540,44601,44634,44639,44772,44818,45124,45126-45127,45430,46394,46404,46478,46511,46523-46524,46526,46534-46535,46537-46539,46589,46805,46868,47472,47846-47847,47878,47882 -/branches/shell32_new-bringup:51893-53652,53661 +/branches/shell32_new-bringup:51893-53652,53661,53700 /branches/tcp-rewrite-branch:48720,48840-48841,49424-49426,49454 Modified: trunk/reactos/dll/win32/shell32/control.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/control.…
============================================================================== --- trunk/reactos/dll/win32/shell32/control.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/control.cpp [iso-8859-1] Tue Sep 13 13:13:35 2011 @@ -27,11 +27,15 @@ unsigned i; CPlApplet* next; - for (i = 0; i < applet->count; i++) { - if (!applet->info[i].dwSize) continue; + for (i = 0; i < applet->count; i++) + { + if (!applet->info[i].dwSize) + continue; applet->proc(applet->hWnd, CPL_STOP, i, applet->info[i].lData); } - if (applet->proc) applet->proc(applet->hWnd, CPL_EXIT, 0L, 0L); + if (applet->proc) + applet->proc(applet->hWnd, CPL_EXIT, 0L, 0L); + FreeLibrary(applet->hModule); next = applet->next; HeapFree(GetProcessHeap(), 0, applet); @@ -50,66 +54,75 @@ applet->hWnd = hWnd; - if (!(applet->hModule = LoadLibraryW(cmd))) { + if (!(applet->hModule = LoadLibraryW(cmd))) + { WARN("Cannot load control panel applet %s\n", debugstr_w(cmd)); - goto theError; - } - if (!(applet->proc = (APPLET_PROC)GetProcAddress(applet->hModule, "CPlApplet"))) { + goto theError; + } + if (!(applet->proc = (APPLET_PROC)GetProcAddress(applet->hModule, "CPlApplet"))) + { WARN("Not a valid control panel applet %s\n", debugstr_w(cmd)); - goto theError; - } - if (!applet->proc(hWnd, CPL_INIT, 0L, 0L)) { + goto theError; + } + if (!applet->proc(hWnd, CPL_INIT, 0L, 0L)) + { WARN("Init of applet has failed\n"); - goto theError; - } - if ((applet->count = applet->proc(hWnd, CPL_GETCOUNT, 0L, 0L)) == 0) { + goto theError; + } + if ((applet->count = applet->proc(hWnd, CPL_GETCOUNT, 0L, 0L)) == 0) + { WARN("No subprogram in applet\n"); - goto theError; + goto theError; } applet = (CPlApplet *)HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, applet, sizeof(*applet) + (applet->count - 1) * sizeof(NEWCPLINFOW)); - for (i = 0; i < applet->count; i++) { - ZeroMemory(&newinfo, sizeof(newinfo)); - newinfo.dwSize = sizeof(NEWCPLINFOW); - applet->info[i].dwSize = sizeof(NEWCPLINFOW); + for (i = 0; i < applet->count; i++) + { + ZeroMemory(&newinfo, sizeof(newinfo)); + newinfo.dwSize = sizeof(NEWCPLINFOW); + applet->info[i].dwSize = sizeof(NEWCPLINFOW); /* proc is supposed to return a null value upon success for * CPL_INQUIRE and CPL_NEWINQUIRE * However, real drivers don't seem to behave like this * So, use introspection rather than return value */ - applet->proc(hWnd, CPL_NEWINQUIRE, i, (LPARAM)&newinfo); - if (newinfo.hIcon == 0) { - applet->proc(hWnd, CPL_INQUIRE, i, (LPARAM)&info); - if (info.idIcon == 0 || info.idName == 0) { - WARN("Couldn't get info from sp %u\n", i); - applet->info[i].dwSize = 0; - } else { - /* convert the old data into the new structure */ - applet->info[i].dwFlags = 0; - applet->info[i].dwHelpContext = 0; - applet->info[i].lData = info.lData; - applet->info[i].hIcon = LoadIconW(applet->hModule, - MAKEINTRESOURCEW(info.idIcon)); - LoadStringW(applet->hModule, info.idName, - applet->info[i].szName, sizeof(applet->info[i].szName) / sizeof(WCHAR)); - LoadStringW(applet->hModule, info.idInfo, - applet->info[i].szInfo, sizeof(applet->info[i].szInfo) / sizeof(WCHAR)); - applet->info[i].szHelpFile[0] = '\0'; - } - } - else - { - CopyMemory(&applet->info[i], &newinfo, newinfo.dwSize); - if (newinfo.dwSize != sizeof(NEWCPLINFOW)) - { + applet->proc(hWnd, CPL_NEWINQUIRE, i, (LPARAM)&newinfo); + if (newinfo.hIcon == 0) + { + applet->proc(hWnd, CPL_INQUIRE, i, (LPARAM)&info); + if (info.idIcon == 0 || info.idName == 0) + { + WARN("Couldn't get info from sp %u\n", i); + applet->info[i].dwSize = 0; + } + else + { + /* convert the old data into the new structure */ + applet->info[i].dwFlags = 0; + applet->info[i].dwHelpContext = 0; + applet->info[i].lData = info.lData; + applet->info[i].hIcon = LoadIconW(applet->hModule, + MAKEINTRESOURCEW(info.idIcon)); + LoadStringW(applet->hModule, info.idName, + applet->info[i].szName, sizeof(applet->info[i].szName) / sizeof(WCHAR)); + LoadStringW(applet->hModule, info.idInfo, + applet->info[i].szInfo, sizeof(applet->info[i].szInfo) / sizeof(WCHAR)); + applet->info[i].szHelpFile[0] = '\0'; + } + } + else + { + CopyMemory(&applet->info[i], &newinfo, newinfo.dwSize); + if (newinfo.dwSize != sizeof(NEWCPLINFOW)) + { applet->info[i].dwSize = sizeof(NEWCPLINFOW); lstrcpyW(applet->info[i].szName, newinfo.szName); lstrcpyW(applet->info[i].szInfo, newinfo.szInfo); lstrcpyW(applet->info[i].szHelpFile, newinfo.szHelpFile); - } - } + } + } } applet->next = panel->first; @@ -145,20 +158,25 @@ RECT rc; GetClientRect(panel->hWnd, &rc); - for (applet = panel->first; applet; applet = applet->next) { - for (i = 0; i < applet->count; i++) { - if (!applet->info[i].dwSize) continue; - if (x + XSTEP >= rc.right - rc.left) { - x = (XSTEP-XICON)/2; - y += YSTEP; - } - if (cx >= x && cx < x + XICON && cy >= y && cy < y + YSTEP) { - *papplet = applet; - *psp = i; - return TRUE; - } - x += XSTEP; - } + for (applet = panel->first; applet; applet = applet->next) + { + for (i = 0; i < applet->count; i++) + { + if (!applet->info[i].dwSize) + continue; + if (x + XSTEP >= rc.right - rc.left) + { + x = (XSTEP-XICON)/2; + y += YSTEP; + } + if (cx >= x && cx < x + XICON && cy >= y && cy < y + YSTEP) + { + *papplet = applet; + *psp = i; + return TRUE; + } + x += XSTEP; + } } return FALSE; } @@ -176,25 +194,33 @@ hdc = (wParam) ? (HDC)wParam : BeginPaint(panel->hWnd, &ps); hOldFont = SelectObject(hdc, GetStockObject(ANSI_VAR_FONT)); GetClientRect(panel->hWnd, &rc); - for (applet = panel->first; applet; applet = applet->next) { - for (i = 0; i < applet->count; i++) { - if (x + XSTEP >= rc.right - rc.left) { - x = 0; - y += YSTEP; - } - if (!applet->info[i].dwSize) continue; - DrawIcon(hdc, x + (XSTEP-XICON)/2, y, applet->info[i].hIcon); - txtRect.left = x; - txtRect.right = x + XSTEP; - txtRect.top = y + YICON; - txtRect.bottom = y + YSTEP; - DrawTextW(hdc, applet->info[i].szName, -1, &txtRect, - DT_CENTER | DT_VCENTER); - x += XSTEP; - } - } + + for (applet = panel->first; applet; applet = applet->next) + { + for (i = 0; i < applet->count; i++) + { + if (x + XSTEP >= rc.right - rc.left) + { + x = 0; + y += YSTEP; + } + if (!applet->info[i].dwSize) + continue; + DrawIcon(hdc, x + (XSTEP-XICON)/2, y, applet->info[i].hIcon); + txtRect.left = x; + txtRect.right = x + XSTEP; + txtRect.top = y + YICON; + txtRect.bottom = y + YSTEP; + DrawTextW(hdc, applet->info[i].szName, -1, &txtRect, + DT_CENTER | DT_VCENTER); + x += XSTEP; + } + } + SelectObject(hdc, hOldFont); - if (!wParam) EndPaint(panel->hWnd, &ps); + if (!wParam) + EndPaint(panel->hWnd, &ps); + return 0; } @@ -203,15 +229,20 @@ unsigned i; CPlApplet* applet; - if (Control_Localize(panel, (short)LOWORD(lParam), (short)HIWORD(lParam), &applet, &i)) { - if (up) { - if (panel->clkApplet == applet && panel->clkSP == i) { - applet->proc(applet->hWnd, CPL_DBLCLK, i, applet->info[i].lData); - } - } else { - panel->clkApplet = applet; - panel->clkSP = i; - } + if (Control_Localize(panel, (short)LOWORD(lParam), (short)HIWORD(lParam), &applet, &i)) + { + if (up) + { + if (panel->clkApplet == applet && panel->clkSP == i) + { + applet->proc(applet->hWnd, CPL_DBLCLK, i, applet->info[i].lData); + } + } + else + { + panel->clkApplet = applet; + panel->clkSP = i; + } } return 0; } @@ -219,31 +250,35 @@ static LRESULT WINAPI Control_WndProc(HWND hWnd, UINT wMsg, WPARAM lParam1, LPARAM lParam2) { - CPanel* panel = (CPanel*)GetWindowLongPtrW(hWnd, 0); - - if (panel || wMsg == WM_CREATE) { - switch (wMsg) { - case WM_CREATE: - Control_WndProc_Create(hWnd, (CREATESTRUCTW*)lParam2); - return 0; - case WM_DESTROY: - { - CPlApplet* applet = panel->first; - while (applet) - applet = Control_UnloadApplet(applet); - } - PostQuitMessage(0); - break; - case WM_PAINT: - return Control_WndProc_Paint(panel, lParam1); - case WM_LBUTTONUP: - return Control_WndProc_LButton(panel, lParam2, TRUE); - case WM_LBUTTONDOWN: - return Control_WndProc_LButton(panel, lParam2, FALSE); -/* EPP case WM_COMMAND: */ -/* EPP return Control_WndProc_Command(mwi, lParam1, lParam2); */ - } - } + CPanel* panel = (CPanel*)GetWindowLongPtrW(hWnd, 0); + + if (panel || wMsg == WM_CREATE) + { + switch (wMsg) + { + case WM_CREATE: + Control_WndProc_Create(hWnd, (CREATESTRUCTW*)lParam2); + return 0; + + case WM_DESTROY: + { + CPlApplet* applet = panel->first; + while (applet) + applet = Control_UnloadApplet(applet); + + PostQuitMessage(0); + }; break; + + case WM_PAINT: + return Control_WndProc_Paint(panel, lParam1); + case WM_LBUTTONUP: + return Control_WndProc_LButton(panel, lParam2, TRUE); + case WM_LBUTTONDOWN: + return Control_WndProc_LButton(panel, lParam2, FALSE); + /* EPP case WM_COMMAND: */ + /* EPP return Control_WndProc_Command(mwi, lParam1, lParam2); */ + } + } return DefWindowProcW(hWnd, wMsg, lParam1, lParam2); } @@ -271,15 +306,19 @@ CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hWnd, NULL, hInst, panel); - if (!panel->hWnd) return; - - if (!panel->first) { - /* FIXME appName & message should be localized */ - MessageBoxW(panel->hWnd, L"Cannot load any applets", appName, MB_OK); - return; - } - - while (GetMessageW(&msg, panel->hWnd, 0, 0)) { + + if (!panel->hWnd) + return; + + if (!panel->first) + { + /* FIXME appName & message should be localized */ + MessageBoxW(panel->hWnd, L"Cannot load any applets", appName, MB_OK); + return; + } + + while (GetMessageW(&msg, panel->hWnd, 0, 0)) + { TranslateMessage(&msg); DispatchMessageW(&msg); } @@ -298,12 +337,14 @@ *p++ = '\\'; wcscpy(p, wszAllCpl); - if ((h = FindFirstFileW(buffer, &fd)) != INVALID_HANDLE_VALUE) { - do { - wcscpy(p, fd.cFileName); - Control_LoadApplet(hWnd, buffer, panel); - } while (FindNextFileW(h, &fd)); - FindClose(h); + if ((h = FindFirstFileW(buffer, &fd)) != INVALID_HANDLE_VALUE) + { + do + { + wcscpy(p, fd.cFileName); + Control_LoadApplet(hWnd, buffer, panel); + } while (FindNextFileW(h, &fd)); + FindClose(h); } Control_DoInterface(panel, hWnd, hInst); @@ -360,68 +401,92 @@ CloseHandle(hMutex); return; } + + TRACE("[shell32, Control_DoLaunch] wszCmd = %ws\n", wszCmd); + end = wcscpy(buffer, wszCmd); - for (;;) { - ch = *end; - if (ch == '"') quoted = !quoted; - if (!quoted && (ch == ' ' || ch == ',' || ch == '\0')) { - *end = '\0'; - if (beg) { - if (*beg == '@') { - sp = atoiW(beg + 1); - spSet = TRUE; - } else if (*beg == '\0') { + for (;;) + { + ch = *end; + if (ch == '"') + quoted = !quoted; + + if (!quoted && (ch == ',' || ch == '\0')) + { + *end = '\0'; + if (beg) + { + if (*beg == '@') + { + sp = atoiW(beg + 1); + spSet = TRUE; + } + else if (*beg == '\0') + { + sp = 0; + spSet = TRUE; + } + else + { + extraPmts = beg; + } + } + + if (ch == '\0') break; + beg = end + 1; + if (ch == ' ') + while (end[1] == ' ') + end++; + } + end++; + } + while ((ptr = StrChrW(buffer, '"'))) + memmove((LPVOID)ptr, ptr+1, wcslen(ptr)*sizeof(WCHAR)); + + while ((ptr = StrChrW(extraPmts, '"'))) + memmove((LPVOID)ptr, ptr+1, wcslen(ptr)*sizeof(WCHAR)); + + TRACE("[shell32, Control_DoLaunch] cmd %s, extra %s, sp %d\n", debugstr_w(buffer), debugstr_w(extraPmts), sp); + + Control_LoadApplet(hWnd, buffer, panel); + + if (panel->first) + { + CPlApplet* applet = panel->first; + + TRACE("[shell32, Control_DoLaunch] applet->count %d, applet->info[sp].szName %ws\n", applet->count, applet->info[sp].szName); + + assert(applet && applet->next == NULL); + if (sp >= applet->count) + { + WARN("Out of bounds (%u >= %u), setting to 0\n", sp, applet->count); sp = 0; - spSet = TRUE; - } else { - extraPmts = beg; - } - } - if (ch == '\0') break; - beg = end + 1; - if (ch == ' ') while (end[1] == ' ') end++; - } - end++; - } - while ((ptr = StrChrW(buffer, '"'))) - memmove((LPVOID)ptr, ptr+1, wcslen(ptr)*sizeof(WCHAR)); - - while ((ptr = StrChrW(extraPmts, '"'))) - memmove((LPVOID)ptr, ptr+1, wcslen(ptr)*sizeof(WCHAR)); - - TRACE("cmd %s, extra %s, sp %d\n", debugstr_w(buffer), debugstr_w(extraPmts), sp); - - Control_LoadApplet(hWnd, buffer, panel); - - if (panel->first) { - CPlApplet* applet = panel->first; - - assert(applet && applet->next == NULL); - if (sp >= applet->count) { - WARN("Out of bounds (%u >= %u), setting to 0\n", sp, applet->count); - sp = 0; - } - - if ((extraPmts) && extraPmts[0] &&(!spSet)) - { - while ((lstrcmpiW(extraPmts, applet->info[sp].szName)) && (sp < applet->count)) - sp++; - - if (sp >= applet->count) - { - ReleaseMutex(hMutex); - CloseHandle(hMutex); - Control_UnloadApplet(applet); - HeapFree(GetProcessHeap(), 0, buffer); - return; - } - } - if (applet->info[sp].dwSize) { - if (!applet->proc(applet->hWnd, CPL_DBLCLK, sp, applet->info[sp].lData)) - applet->proc(applet->hWnd, CPL_STARTWPARMSA, sp, (LPARAM)extraPmts); - } - Control_UnloadApplet(applet); - } + } + + if ((extraPmts) && extraPmts[0] && (!spSet)) + { + while ((lstrcmpiW(extraPmts, applet->info[sp].szName)) && (sp < applet->count)) + sp++; + + if (sp >= applet->count) + { + ReleaseMutex(hMutex); + CloseHandle(hMutex); + Control_UnloadApplet(applet); + HeapFree(GetProcessHeap(), 0, buffer); + return; + } + } + + if (applet->info[sp].dwSize) + { + if (!applet->proc(applet->hWnd, CPL_DBLCLK, sp, applet->info[sp].lData)) + applet->proc(applet->hWnd, CPL_STARTWPARMSA, sp, (LPARAM)extraPmts); + } + + Control_UnloadApplet(applet); + } + ReleaseMutex(hMutex); CloseHandle(hMutex); HeapFree(GetProcessHeap(), 0, buffer); @@ -440,9 +505,14 @@ memset(&panel, 0, sizeof(panel)); - if (!cmd || !*cmd) { + if (!cmd || !*cmd) + { + TRACE("[shell32, Control_RunDLLW] Calling Control_DoWindow\n"); Control_DoWindow(&panel, hWnd, hInst); - } else { + } + else + { + TRACE("[shell32, Control_RunDLLW] Calling Control_DoLaunch\n"); Control_DoLaunch(&panel, hWnd, cmd); } } @@ -455,10 +525,12 @@ { DWORD len = MultiByteToWideChar(CP_ACP, 0, cmd, -1, NULL, 0 ); LPWSTR wszCmd = (LPWSTR)HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + if (wszCmd && MultiByteToWideChar(CP_ACP, 0, cmd, -1, wszCmd, len )) { Control_RunDLLW(hWnd, hInst, wszCmd, nCmdShow); } + HeapFree(GetProcessHeap(), 0, wszCmd); }
13 years, 3 months
1
0
0
0
[tkreuzer] 53701: [NTOSKRNL] Cleanup amd64/ke.h a bit, add KiUserTrap()
by tkreuzer@svn.reactos.org
Author: tkreuzer Date: Tue Sep 13 13:12:38 2011 New Revision: 53701 URL:
http://svn.reactos.org/svn/reactos?rev=53701&view=rev
Log: [NTOSKRNL] Cleanup amd64/ke.h a bit, add KiUserTrap() Modified: trunk/reactos/ntoskrnl/include/internal/amd64/ke.h Modified: trunk/reactos/ntoskrnl/include/internal/amd64/ke.h URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
============================================================================== --- trunk/reactos/ntoskrnl/include/internal/amd64/ke.h [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/include/internal/amd64/ke.h [iso-8859-1] Tue Sep 13 13:12:38 2011 @@ -241,14 +241,21 @@ DbgPrint("KiEndInterrupt is unimplemented\n"); } +BOOLEAN +FORCEINLINE +KiUserTrap(IN PKTRAP_FRAME TrapFrame) +{ + /* Anything else but Ring 0 is Ring 3 */ + return !!(TrapFrame->SegCs & MODE_MASK); +} + #define Ki386PerfEnd(x) struct _KPCR; -VOID -FASTCALL -KiInitializeTss(IN PKTSS Tss, IN UINT64 Stack); - +//VOID KiInitializeTss(IN PKTSS Tss, IN UINT64 Stack); + +VOID KiSwitchToBootStack(IN ULONG_PTR InitialStack); VOID KiDivideErrorFault(VOID); VOID KiDebugTrapOrFault(VOID); VOID KiNmiInterrupt(VOID); @@ -274,52 +281,21 @@ VOID KiDpcInterrupt(VOID); VOID KiIpiInterrupt(VOID); -VOID -KiGdtPrepareForApplicationProcessorInit(ULONG Id); -VOID -Ki386InitializeLdt(VOID); -VOID -Ki386SetProcessorFeatures(VOID); - -VOID -NTAPI -KiGetCacheInformation(VOID); - -BOOLEAN -NTAPI -KiIsNpxPresent( - VOID -); - -BOOLEAN -NTAPI -KiIsNpxErrataPresent( - VOID -); - -VOID -NTAPI -KiSetProcessorType(VOID); - -ULONG -NTAPI -KiGetFeatureBits(VOID); - -VOID -NTAPI -KiInitializeCpuFeatures(VOID); +VOID KiGdtPrepareForApplicationProcessorInit(ULONG Id); +VOID Ki386InitializeLdt(VOID); +VOID Ki386SetProcessorFeatures(VOID); +VOID KiGetCacheInformation(VOID); +VOID KiSetProcessorType(VOID); +ULONG KiGetFeatureBits(VOID); +VOID KiInitializeCpuFeatures(VOID); ULONG KeAllocateGdtSelector(ULONG Desc[2]); VOID KeFreeGdtSelector(ULONG Entry); -VOID -NtEarlyInitVdm(VOID); -VOID -KeApplicationProcessorInitDispatcher(VOID); -VOID -KeCreateApplicationProcessorIdleThread(ULONG Id); - -VOID -NTAPI +VOID NtEarlyInitVdm(VOID); +VOID KeApplicationProcessorInitDispatcher(VOID); +VOID KeCreateApplicationProcessorIdleThread(ULONG Id); + +VOID Ke386InitThreadWithContext(PKTHREAD Thread, PKSYSTEM_ROUTINE SystemRoutine, PKSTART_ROUTINE StartRoutine, @@ -330,7 +306,6 @@ #ifdef _NTOSKRNL_ /* FIXME: Move flags above to NDK instead of here */ VOID -NTAPI KiThreadStartup(PKSYSTEM_ROUTINE SystemRoutine, PKSTART_ROUTINE StartRoutine, PVOID StartContext,
13 years, 3 months
1
0
0
0
← Newer
1
...
18
19
20
21
22
23
24
...
40
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Results per page:
10
25
50
100
200