public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: Leif Lindholm <leif.lindholm@linaro.org>
Cc: Andrew Fish <afish@apple.com>,
	Michael Kinney <michael.d.kinney@intel.com>,
	"edk2-devel@lists.01.org" <edk2-devel@lists.01.org>
Subject: Re: [RFC] Proposal to add edk2-apps repository
Date: Mon, 3 Dec 2018 18:10:00 +0100	[thread overview]
Message-ID: <95e6cab4-0668-4e0e-75a5-15fb876e1fe5@redhat.com> (raw)
In-Reply-To: <20181203150756.up6iaez5sl25f7fu@bivouac.eciton.net>

On 12/03/18 16:07, Leif Lindholm wrote:
> On Mon, Dec 03, 2018 at 03:11:33PM +0100, Laszlo Ersek wrote:
>> On 11/30/18 07:03, Andrew Fish wrote:
>>> Mike,
>>>
>>> As Krishna points out there are flavors of Apps. Do we want to have
>>> different packages for different flavor of apps, or different dirs in
>>> a more generic App package? Maybe we should define classes of UEFI
>>> Applications in the README.md and give them a place to live.
>>
>> In my opinion, this is absolutely the first step that should be done.
> 
> Yes please.
> 
>> Personally, I've just learned, from this thread, that there are *three*
>> (not two) UEFI application entry point types that edk2 supports.
>>
>> * I've always known about main() -- libc app --, and ShellAppMain() --
>>   shell app. I've always known these because I read about them in
>>   "AppPkg/ReadMe.txt" and "StdLib/ReadMe.txt" years ago. In particular,
>>   compare the description of "Hello" and "Main".
>>
>> * And now MdeModulePkg/Application has been mentioned, in this thread,
>>   where I see UefiMain() as the entry point.
> 
> Well, these are defined by the application .inf though, so "UefiMain"
> is just a common name picked. MdeModulePkg/Application also has
> applications with entry points called 'BootManagerMenuEntry',
> 'SmiHandlerProfileInfoEntrypoint' and 'InitializeUserInterface'. (The
> latter being UiApp.)

Right, I guess I should have referred to the "UefiApplicationEntryPoint"
lib class instead. (I did so below.)

> 
>> I don't recall reading about UefiMain() or UefiApplicationEntryPoint on
>> this list. On the other hand, I remember several discussions where
>> people asked if they could write an application and invoke it from
>> SysPrep#### or similar, and the answer has always been, "oh sorry you
>> can't do that, because the lowest level you can go is ShellAppMain(),
>> and that won't work from SysPrep####".
> 
> Huh? Who claimed that? Where?

Sorry, don't have any specifics, just a lingering (but strong) memory.

> (I suspect the meaning of "Application" has taken on some
> overly-specific meaning for someone if they have claimed such - going
> back to how having a proper definition is clearly quite important.)
> 
> Of course they can. Any EDK2 image itself contains a bunch of .efi
> executables - and there is nothing preventing you from invoking those
> from the shell.

The dependency was the other way around. UEFI_APPLICATION modules built
with ShellCEntryLib would depend on the shell to function, and the shell
was not available when the boot manager launched the apps via SysPrep####.

This argument actually makes sense to me; I'm not positing that
ShellCEntryLib apps "should" work in the above situation. The problem is
that the functional alternative (UefiApplicationEntryPoint) has been
super difficult to learn about (from my personal POV anyway).

> And don't forget most platforms ship without a built-in Shell,

correct

> so there would be no way of running ... anything ... if that was true.

It would be more precise to put this as,

  there would be no way of running any *application*, built with *edk2*,
  directly from the *boot manager*

and that had been my exact mental image until I read this thread.

> Also, it's pretty much the whole point of gnu-efi (combined with doing
> it directly in a normal POSIX environment).

I agree 100%, and I didn't forget about shim, grub, or gnu-efi -- please
note the emphasis on "edk2" in my above reformulation.

Thanks
Laszlo


  reply	other threads:[~2018-12-03 17:10 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-29 17:58 [RFC] Proposal to add edk2-apps repository Kinney, Michael D
2018-11-29 22:41 ` Leif Lindholm
2018-11-30  0:46   ` Kinney, Michael D
2018-11-30  1:44     ` krishnaLee
2018-11-30  3:40       ` Ni, Ruiyu
2018-11-30 15:49         ` Carsey, Jaben
2018-11-30 16:48           ` Kinney, Michael D
2018-12-03  2:01         ` krishnaLee
2018-11-30  6:03       ` Andrew Fish
2018-12-03 14:11         ` Laszlo Ersek
2018-12-03 15:07           ` Leif Lindholm
2018-12-03 17:10             ` Laszlo Ersek [this message]
2018-12-11  7:26               ` David F.
2018-11-30  3:32 ` Ni, Ruiyu
2018-11-30  4:57   ` Kinney, Michael D
2018-12-03 14:21     ` Laszlo Ersek

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=95e6cab4-0668-4e0e-75a5-15fb876e1fe5@redhat.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