[edk2] [PATCH 6/7] ArmPlatformPkg/PrePi; call all constructors by hand

Ard Biesheuvel posted 7 patches 7 years ago
[edk2] [PATCH 6/7] ArmPlatformPkg/PrePi; call all constructors by hand
Posted by Ard Biesheuvel 7 years ago
Call ProcessLibraryConstructorList () to invoke all library constructors
by hand rather than calling only some of them explicitly.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 ArmPlatformPkg/PrePi/PrePi.c | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/ArmPlatformPkg/PrePi/PrePi.c b/ArmPlatformPkg/PrePi/PrePi.c
index a60cafdce45e..76a53bc871d2 100644
--- a/ArmPlatformPkg/PrePi/PrePi.c
+++ b/ArmPlatformPkg/PrePi/PrePi.c
@@ -33,15 +33,9 @@
 UINT64 mSystemMemoryEnd = FixedPcdGet64(PcdSystemMemoryBase) +
                           FixedPcdGet64(PcdSystemMemorySize) - 1;
 
-EFI_STATUS
-EFIAPI
-ExtractGuidedSectionLibConstructor (
-  VOID
-  );
-
-EFI_STATUS
+VOID
 EFIAPI
-LzmaDecompressLibConstructor (
+ProcessLibraryConstructorList (
   VOID
   );
 
@@ -162,8 +156,7 @@ PrePiMain (
   PERF_START (NULL, "PEI", NULL, StartTimeStamp);
 
   // SEC phase needs to run library constructors by hand.
-  ExtractGuidedSectionLibConstructor ();
-  LzmaDecompressLibConstructor ();
+  ProcessLibraryConstructorList ();
 
   // Assume the FV that contains the SEC (our code) also contains a compressed FV.
   Status = DecompressFirstFv ();
-- 
2.11.0

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH 6/7] ArmPlatformPkg/PrePi; call all constructors by hand
Posted by Leif Lindholm 7 years ago
On Thu, Nov 30, 2017 at 03:24:52PM +0000, Ard Biesheuvel wrote:
> Call ProcessLibraryConstructorList () to invoke all library constructors
> by hand rather than calling only some of them explicitly.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> ---
>  ArmPlatformPkg/PrePi/PrePi.c | 13 +++----------
>  1 file changed, 3 insertions(+), 10 deletions(-)
> 
> diff --git a/ArmPlatformPkg/PrePi/PrePi.c b/ArmPlatformPkg/PrePi/PrePi.c
> index a60cafdce45e..76a53bc871d2 100644
> --- a/ArmPlatformPkg/PrePi/PrePi.c
> +++ b/ArmPlatformPkg/PrePi/PrePi.c
> @@ -33,15 +33,9 @@
>  UINT64 mSystemMemoryEnd = FixedPcdGet64(PcdSystemMemoryBase) +
>                            FixedPcdGet64(PcdSystemMemorySize) - 1;
>  
> -EFI_STATUS
> -EFIAPI
> -ExtractGuidedSectionLibConstructor (
> -  VOID
> -  );
> -
> -EFI_STATUS
> +VOID
>  EFIAPI
> -LzmaDecompressLibConstructor (
> +ProcessLibraryConstructorList (
>    VOID
>    );

Hmm ...
Do we need this local declaration?
Is there some header we could use?
If not - could we move it out to PrePi.h?

> @@ -162,8 +156,7 @@ PrePiMain (
>    PERF_START (NULL, "PEI", NULL, StartTimeStamp);
>  
>    // SEC phase needs to run library constructors by hand.
> -  ExtractGuidedSectionLibConstructor ();
> -  LzmaDecompressLibConstructor ();
> +  ProcessLibraryConstructorList ();
>  
>    // Assume the FV that contains the SEC (our code) also contains a compressed FV.
>    Status = DecompressFirstFv ();
> -- 
> 2.11.0
> 
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH 6/7] ArmPlatformPkg/PrePi; call all constructors by hand
Posted by Ard Biesheuvel 7 years ago
On 30 November 2017 at 16:31, Leif Lindholm <leif.lindholm@linaro.org> wrote:
> On Thu, Nov 30, 2017 at 03:24:52PM +0000, Ard Biesheuvel wrote:
>> Call ProcessLibraryConstructorList () to invoke all library constructors
>> by hand rather than calling only some of them explicitly.
>>
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> ---
>>  ArmPlatformPkg/PrePi/PrePi.c | 13 +++----------
>>  1 file changed, 3 insertions(+), 10 deletions(-)
>>
>> diff --git a/ArmPlatformPkg/PrePi/PrePi.c b/ArmPlatformPkg/PrePi/PrePi.c
>> index a60cafdce45e..76a53bc871d2 100644
>> --- a/ArmPlatformPkg/PrePi/PrePi.c
>> +++ b/ArmPlatformPkg/PrePi/PrePi.c
>> @@ -33,15 +33,9 @@
>>  UINT64 mSystemMemoryEnd = FixedPcdGet64(PcdSystemMemoryBase) +
>>                            FixedPcdGet64(PcdSystemMemorySize) - 1;
>>
>> -EFI_STATUS
>> -EFIAPI
>> -ExtractGuidedSectionLibConstructor (
>> -  VOID
>> -  );
>> -
>> -EFI_STATUS
>> +VOID
>>  EFIAPI
>> -LzmaDecompressLibConstructor (
>> +ProcessLibraryConstructorList (
>>    VOID
>>    );
>
> Hmm ...
> Do we need this local declaration?
> Is there some header we could use?

That doesn't appear to be the case, no

> If not - could we move it out to PrePi.h?
>

Yes, that works for me.


>> @@ -162,8 +156,7 @@ PrePiMain (
>>    PERF_START (NULL, "PEI", NULL, StartTimeStamp);
>>
>>    // SEC phase needs to run library constructors by hand.
>> -  ExtractGuidedSectionLibConstructor ();
>> -  LzmaDecompressLibConstructor ();
>> +  ProcessLibraryConstructorList ();
>>
>>    // Assume the FV that contains the SEC (our code) also contains a compressed FV.
>>    Status = DecompressFirstFv ();
>> --
>> 2.11.0
>>
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH 6/7] ArmPlatformPkg/PrePi; call all constructors by hand
Posted by Leif Lindholm 7 years ago
On Thu, Nov 30, 2017 at 04:35:41PM +0000, Ard Biesheuvel wrote:
> On 30 November 2017 at 16:31, Leif Lindholm <leif.lindholm@linaro.org> wrote:
> > On Thu, Nov 30, 2017 at 03:24:52PM +0000, Ard Biesheuvel wrote:
> >> Call ProcessLibraryConstructorList () to invoke all library constructors
> >> by hand rather than calling only some of them explicitly.
> >>
> >> Contributed-under: TianoCore Contribution Agreement 1.1
> >> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> >> ---
> >>  ArmPlatformPkg/PrePi/PrePi.c | 13 +++----------
> >>  1 file changed, 3 insertions(+), 10 deletions(-)
> >>
> >> diff --git a/ArmPlatformPkg/PrePi/PrePi.c b/ArmPlatformPkg/PrePi/PrePi.c
> >> index a60cafdce45e..76a53bc871d2 100644
> >> --- a/ArmPlatformPkg/PrePi/PrePi.c
> >> +++ b/ArmPlatformPkg/PrePi/PrePi.c
> >> @@ -33,15 +33,9 @@
> >>  UINT64 mSystemMemoryEnd = FixedPcdGet64(PcdSystemMemoryBase) +
> >>                            FixedPcdGet64(PcdSystemMemorySize) - 1;
> >>
> >> -EFI_STATUS
> >> -EFIAPI
> >> -ExtractGuidedSectionLibConstructor (
> >> -  VOID
> >> -  );
> >> -
> >> -EFI_STATUS
> >> +VOID
> >>  EFIAPI
> >> -LzmaDecompressLibConstructor (
> >> +ProcessLibraryConstructorList (
> >>    VOID
> >>    );
> >
> > Hmm ...
> > Do we need this local declaration?
> > Is there some header we could use?
> 
> That doesn't appear to be the case, no

Seems like a future opportunity.

> > If not - could we move it out to PrePi.h?
> 
> Yes, that works for me.

OK, if you fold that in, for the series:
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

> >> @@ -162,8 +156,7 @@ PrePiMain (
> >>    PERF_START (NULL, "PEI", NULL, StartTimeStamp);
> >>
> >>    // SEC phase needs to run library constructors by hand.
> >> -  ExtractGuidedSectionLibConstructor ();
> >> -  LzmaDecompressLibConstructor ();
> >> +  ProcessLibraryConstructorList ();
> >>
> >>    // Assume the FV that contains the SEC (our code) also contains a compressed FV.
> >>    Status = DecompressFirstFv ();
> >> --
> >> 2.11.0
> >>
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH 6/7] ArmPlatformPkg/PrePi; call all constructors by hand
Posted by Ard Biesheuvel 7 years ago
On 30 November 2017 at 16:45, Leif Lindholm <leif.lindholm@linaro.org> wrote:
> On Thu, Nov 30, 2017 at 04:35:41PM +0000, Ard Biesheuvel wrote:
>> On 30 November 2017 at 16:31, Leif Lindholm <leif.lindholm@linaro.org> wrote:
>> > On Thu, Nov 30, 2017 at 03:24:52PM +0000, Ard Biesheuvel wrote:
>> >> Call ProcessLibraryConstructorList () to invoke all library constructors
>> >> by hand rather than calling only some of them explicitly.
>> >>
>> >> Contributed-under: TianoCore Contribution Agreement 1.1
>> >> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
>> >> ---
>> >>  ArmPlatformPkg/PrePi/PrePi.c | 13 +++----------
>> >>  1 file changed, 3 insertions(+), 10 deletions(-)
>> >>
>> >> diff --git a/ArmPlatformPkg/PrePi/PrePi.c b/ArmPlatformPkg/PrePi/PrePi.c
>> >> index a60cafdce45e..76a53bc871d2 100644
>> >> --- a/ArmPlatformPkg/PrePi/PrePi.c
>> >> +++ b/ArmPlatformPkg/PrePi/PrePi.c
>> >> @@ -33,15 +33,9 @@
>> >>  UINT64 mSystemMemoryEnd = FixedPcdGet64(PcdSystemMemoryBase) +
>> >>                            FixedPcdGet64(PcdSystemMemorySize) - 1;
>> >>
>> >> -EFI_STATUS
>> >> -EFIAPI
>> >> -ExtractGuidedSectionLibConstructor (
>> >> -  VOID
>> >> -  );
>> >> -
>> >> -EFI_STATUS
>> >> +VOID
>> >>  EFIAPI
>> >> -LzmaDecompressLibConstructor (
>> >> +ProcessLibraryConstructorList (
>> >>    VOID
>> >>    );
>> >
>> > Hmm ...
>> > Do we need this local declaration?
>> > Is there some header we could use?
>>
>> That doesn't appear to be the case, no
>
> Seems like a future opportunity.
>
>> > If not - could we move it out to PrePi.h?
>>
>> Yes, that works for me.
>
> OK, if you fold that in, for the series:
> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
>

Thanks. Pushed as c6e51751e026..73fcbb48665e

I have taken the liberty of reordering this patch with the one that
clones PrePi for Beagle, so this fix is applied to the clone as well.


>> >> @@ -162,8 +156,7 @@ PrePiMain (
>> >>    PERF_START (NULL, "PEI", NULL, StartTimeStamp);
>> >>
>> >>    // SEC phase needs to run library constructors by hand.
>> >> -  ExtractGuidedSectionLibConstructor ();
>> >> -  LzmaDecompressLibConstructor ();
>> >> +  ProcessLibraryConstructorList ();
>> >>
>> >>    // Assume the FV that contains the SEC (our code) also contains a compressed FV.
>> >>    Status = DecompressFirstFv ();
>> >> --
>> >> 2.11.0
>> >>
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.01.org
>> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel