[SeaBIOS] [PATCH] Enable shell-like * globing in bootorder entries

Ian Kelling ian at iankelling.org
Wed May 16 05:03:16 CEST 2018


Kevin O'Connor <kevin at koconnor.net> writes:

> On Sun, May 13, 2018 at 11:12:07PM -0400, Ian Kelling wrote:
>> Signed-off-by: Ian Kelling <ian at iankelling.org>
>> ---
>>  src/boot.c | 8 ++++----
>>  1 file changed, 4 insertions(+), 4 deletions(-)
>> 
>> diff --git a/src/boot.c b/src/boot.c
>> index ff705fd..ca64595 100644
>> --- a/src/boot.c
>> +++ b/src/boot.c
>> @@ -91,14 +91,14 @@ glob_prefix(const char *glob, const char *str)
>>      }
>>  }
>>  
>> -// Search the bootorder list for the given glob pattern.
>> +// Search the bootorder glob list for the given device description
>>  static int
>> -find_prio(const char *glob)
>> +find_prio(const char *desc)
>>  {
>> -    dprintf(1, "Searching bootorder for: %s\n", glob);
>> +    dprintf(1, "Searching bootorder for: %s\n", desc);
>>      int i;
>>      for (i = 0; i < BootorderCount; i++)
>> -        if (glob_prefix(glob, Bootorder[i]))
>> +        if (glob_prefix(Bootorder[i], desc))
>>              return i+1;
>>      return -1;
>>  }
>
> Thanks, but I don't think this is correct.  The idea is that the user
> will pass a bootorder list, and that SeaBIOS will see if the devices
> it finds match that list.  So, the SeaBIOS code generates the globs,
> and the user generates the actual device names.
>
> This was done that way because QEMU generates and passes a bootorder
> list to SeaBIOS.  QEMU will generate the actual device names, but
> SeaBIOS generally doesn't have enough information to generate the full
> device names.  So, SeaBIOS globs the QEMU generated device names to
> find a match.
>
> -Kevin

Ahh, now it makes sense. I searched for ways to generate open firmware
device names other than looking in seabios logs, but google gave me
basically nothing. Do you know how this can be done under gnu/linux for
physical (non-virtual) devices?

-- 
Ian Kelling
https://iankelling.org



More information about the SeaBIOS mailing list