[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ros-dev
Subject:    Re: [ros-dev] [ros-diffs] [tkreuzer] 35458: Move some architecture
From:       Alex Ionescu <ionucu () videotron ! ca>
Date:       2008-08-19 20:16:37
Message-ID: 7EDAA43F-EFA1-4263-8B21-286D72771572 () videotron ! ca
[Download RAW message or body]

Please rename the function to KiFreeLdrHackKiArchHackHack or something  
like that, and move it away from cpu.c, somewhere like i386/freeldr.c  
to make clear that this function has NOTHING TO DO with how NT should  
boot and is a hack because FreeLDR is a piece of shit that nobody  
seems to want to fix.

On 19-Aug-08, at 12:07 PM, tkreuzer@svn.reactos.org wrote:

> Author: tkreuzer
> Date: Tue Aug 19 14:07:13 2008
> New Revision: 35458
> 
> URL: http://svn.reactos.org/svn/reactos?rev=35458&view=rev
> Log:
> Move some architecture specific code from  
> KiRosPrepareForSystemStartup into KiArchInitSystem, defined for each  
> architecture. Enable KiRosBuildReservedMemoryMap for _M_AMD64
> 
> Modified:
> branches/ros-amd64-bringup/reactos/ntoskrnl/ke/freeldr.c
> branches/ros-amd64-bringup/reactos/ntoskrnl/ke/i386/cpu.c
> branches/ros-amd64-bringup/reactos/ntoskrnl/ke/powerpc/cpu.c
> 
> Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/freeldr.c
> URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/ke/freeldr.c?rev=35458&r1=35457&r2=35458&view=diff
>  = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/freeldr.c  
> [iso-8859-1] (original)
> +++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/freeldr.c  
> [iso-8859-1] Tue Aug 19 14:07:13 2008
> @@ -949,7 +949,7 @@
> /* Build entries for ReactOS memory ranges, which uses ARC  
> Descriptors */
> KiRosBuildOsMemoryMap();
> 
> -#ifdef _M_IX86
> +#if defined(_M_IX86) || defined(_M_AMD64)
> /* Build entries for the reserved map, which uses ARC  
> Descriptors */
> KiRosBuildReservedMemoryMap();
> #endif
> @@ -1266,42 +1266,15 @@
> {
> PLOADER_PARAMETER_BLOCK NtLoaderBlock;
> ULONG size, i = 0, *ent;
> -#if defined(_M_IX86)
> -    PKTSS Tss;
> -    PKGDTENTRY TssEntry;
> -
> -    /* Load the GDT and IDT */
> -     
> Ke386SetGlobalDescriptorTable(*(PKDESCRIPTOR)&KiGdtDescriptor.Limit);
> -     
> Ke386SetInterruptDescriptorTable 
> (*(PKDESCRIPTOR)&KiIdtDescriptor.Limit);
> -
> -    /* Initialize the boot TSS */
> -    Tss = &KiBootTss;
> -    TssEntry = &KiBootGdt[KGDT_TSS / sizeof(KGDTENTRY)];
> -    TssEntry->HighWord.Bits.Type = I386_TSS;
> -    TssEntry->HighWord.Bits.Pres = 1;
> -    TssEntry->HighWord.Bits.Dpl = 0;
> -    TssEntry->BaseLow = (USHORT)((ULONG_PTR)Tss & 0xFFFF);
> -    TssEntry->HighWord.Bytes.BaseMid = (UCHAR)((ULONG_PTR)Tss >> 16);
> -    TssEntry->HighWord.Bytes.BaseHi = (UCHAR)((ULONG_PTR)Tss >> 24);
> -#endif
> -
> -#if defined(_M_PPC)
> -    // Zero bats.  We might have residual bats set that will  
> interfere with
> -    // our mapping of ofwldr.
> -    for (i = 0; i < 4; i++)
> -    {
> -        SetBat(i, 0, 0, 0); SetBat(i, 1, 0, 0);
> -    }
> -    KiSetupSyscallHandler();
> -    DbgPrint("Kernel Power (%08x)\n", LoaderBlock);
> -    DbgPrint("ArchExtra (%08x)!\n", LoaderBlock->ArchExtra);
> -#endif
> 
> /* Save pointer to ROS Block */
> KeRosLoaderBlock = LoaderBlock;
> 
> /* Get debugging function */
> FrLdrDbgPrint = LoaderBlock->FrLdrDbgPrint;
> +
> +    /* Per architecture initialisazion code */
> +    KiArchInitSystem();
> 
> /* Save memory manager data */
> KeMemoryMapRangeCount = 0;
> 
> Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/i386/cpu.c
> URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/ke/i386/cpu.c?rev=35458&r1=35457&r2=35458&view=diff
>  = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/i386/cpu.c  
> [iso-8859-1] (original)
> +++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/i386/cpu.c  
> [iso-8859-1] Tue Aug 19 14:07:13 2008
> @@ -1036,3 +1036,24 @@
> /* Capture the control state */
> KiSaveProcessorControlState(State);
> }
> +
> +VOID
> +KiArchInitSystem()
> +{
> +    PKTSS Tss;
> +    PKGDTENTRY TssEntry;
> +
> +    /* Load the GDT and IDT */
> +     
> Ke386SetGlobalDescriptorTable(*(PKDESCRIPTOR)&KiGdtDescriptor.Limit);
> +     
> Ke386SetInterruptDescriptorTable 
> (*(PKDESCRIPTOR)&KiIdtDescriptor.Limit);
> +
> +    /* Initialize the boot TSS */
> +    Tss = &KiBootTss;
> +    TssEntry = &KiBootGdt[KGDT_TSS / sizeof(KGDTENTRY)];
> +    TssEntry->HighWord.Bits.Type = I386_TSS;
> +    TssEntry->HighWord.Bits.Pres = 1;
> +    TssEntry->HighWord.Bits.Dpl = 0;
> +    TssEntry->BaseLow = (USHORT)((ULONG_PTR)Tss & 0xFFFF);
> +    TssEntry->HighWord.Bytes.BaseMid = (UCHAR)((ULONG_PTR)Tss >> 16);
> +    TssEntry->HighWord.Bytes.BaseHi = (UCHAR)((ULONG_PTR)Tss >> 24);
> +}
> 
> Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/powerpc/cpu.c
> URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/ke/powerpc/cpu.c?rev=35458&r1=35457&r2=35458&view=diff
>  = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/powerpc/cpu.c  
> [iso-8859-1] (original)
> +++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/powerpc/cpu.c  
> [iso-8859-1] Tue Aug 19 14:07:13 2008
> @@ -275,3 +275,19 @@
> /* Capture the control state */
> KiSaveProcessorControlState(State);
> }
> +
> +VOID
> +KiArchInitSystem()
> +{
> +    ULONG i;
> +
> +    // Zero bats.  We might have residual bats set that will  
> interfere with
> +    // our mapping of ofwldr.
> +    for (i = 0; i < 4; i++)
> +    {
> +        SetBat(i, 0, 0, 0); SetBat(i, 1, 0, 0);
> +    }
> +    KiSetupSyscallHandler();
> +    DbgPrint("Kernel Power (%08x)\n", KeRosLoaderBlock);
> +    DbgPrint("ArchExtra (%08x)!\n", KeRosLoaderBlock->ArchExtra);
> +}
> 

Best regards,
Alex Ionescu

_______________________________________________
Ros-dev mailing list
Ros-dev@reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic