From: Andrew Fish <afish@apple.com>
To: Marvin H?user <Marvin.Haeuser@outlook.com>
Cc: "edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: Help on AutoGen Files
Date: Thu, 19 Jul 2018 11:25:56 -0700 [thread overview]
Message-ID: <C5AE58E7-F421-4DCC-AB81-2879BE5C344D@apple.com> (raw)
In-Reply-To: <VI1PR0801MB1790B40FFFCBAAA75E26B51080520@VI1PR0801MB1790.eurprd08.prod.outlook.com>
Udit,
As Marvin points out the [LibraryClasses] section of the INF file are going to imply the order of the library constructor calls in the AutoGen
Worst case you can demote FpgaInterfaceInit () from being a constructor to just being a public library function that the other lib can call explicitly from its constructor. Maybe that is too drastic and you could must move a function out of FpgaInterfaceInit () and make that function part of the Public library interface?
Thanks,
Andrew Fish
> On Jul 19, 2018, at 11:14 AM, Marvin H?user <Marvin.Haeuser@outlook.com> wrote:
>
> Hey Udit,
>
> You cannot explicitly influence the order of the calls, but implicitly via the dependency tree, which means you need to make SerialPortLib depend on your LibraryClass instance.
> You did not mention which SerialPortLib instance you use, but probably you need to execute FpgaInterfaceInit() earlier in platform code or fork SerialPortLib for now.
>
> Regards,
> Marvin
>
>> -----Original Message-----
>> From: edk2-devel <edk2-devel-bounces@lists.01.org> On Behalf Of Udit
>> Kumar
>> Sent: Thursday, July 19, 2018 9:33 AM
>> To: edk2-devel@lists.01.org
>> Subject: [edk2] Help on AutoGen Files
>>
>> Hi Experts,
>> How I can change the order of initialization in Constructor list of autogen file.
>> In my build system, if I look at
>> MdeModulePkg/Universal/PCD/Pei/Pcd/DEBUG/AutoGen.c
>> Below is function of Library Constructor List
>>
>> VOID
>> EFIAPI
>> ProcessLibraryConstructorList (
>> IN EFI_PEI_FILE_HANDLE FileHandle,
>> IN CONST EFI_PEI_SERVICES **PeiServices
>> )
>> {
>> EFI_STATUS Status;
>>
>> Status = BaseDebugLibSerialPortConstructor ();
>> ASSERT_EFI_ERROR (Status);
>>
>> Status = PeiServicesTablePointerLibConstructor (FileHandle, PeiServices);
>> ASSERT_EFI_ERROR (Status);
>>
>> Status = TimerConstructor ();
>> ASSERT_EFI_ERROR (Status);
>>
>> Status = FpgaInterfaceInit ();
>> ASSERT_EFI_ERROR (Status);
>>
>> }
>>
>>
>> My problem is SerialPortConstructor needs frequency, which can be
>> retrieved after FpgaInterfaceInit() Therefore, my preferred way for this
>> constructor list will be
>> FpgaInterfaceInit() followed by BaseDebugLibSerialPortConstructor()
>>
>> how I can achieve this.
>>
>>
>> Many Thanks
>> Udit
>> _______________________________________________
>> 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
next prev parent reply other threads:[~2018-07-19 18:26 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-19 7:32 Help on AutoGen Files Udit Kumar
2018-07-19 18:14 ` Marvin H?user
2018-07-19 18:25 ` Andrew Fish [this message]
2018-07-20 4:07 ` Udit Kumar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=C5AE58E7-F421-4DCC-AB81-2879BE5C344D@apple.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox