[OpenBIOS] [PATCH] arch/ppc/qemu: do not override boot-device if already set
BALATON Zoltan
balaton at eik.bme.hu
Sun May 18 14:28:48 CEST 2014
On Sun, 18 May 2014, Mark Cave-Ayland wrote:
> On 18/05/14 00:18, BALATON Zoltan wrote:
>> Signed-off-by: BALATON Zoltan <balaton at eik.bme.hu>
>
> Obfuscation? ;)
I've copied it from the web archives (I still can't subscribe to the list
by the way). I will correct it in the next version.
>
>> Index: openbios-devel/arch/ppc/qemu/init.c
>> ===================================================================
>> --- openbios-devel/arch/ppc/qemu/init.c (revision 1298)
>> +++ openbios-devel/arch/ppc/qemu/init.c (working copy)
>> @@ -659,7 +689,7 @@
>> char buf[64], qemu_uuid[16];
>> const char *stdin_path, *stdout_path, *boot_path;
>> uint32_t temp = 0;
>> -
>> + char *boot_device;
>> ofmem_t *ofmem = ofmem_arch_get_private();
>>
>> openbios_init();
>> @@ -867,24 +903,28 @@
>> push_str("/options");
>> fword("find-device");
>>
>> - uint16_t boot_device = fw_cfg_read_i16(FW_CFG_BOOT_DEVICE);
>> - switch (boot_device) {
>> - case 'c':
>> - boot_path = "hd";
>> - break;
>> - default:
>> - case 'd':
>> - boot_path = "cd";
>> - break;
>> + /* Setup default boot devices (not overriding user settings) */
>> + fword("boot-device");
>> + boot_device = pop_fstr_copy();
>> + if (strcmp(boot_device, "disk") == 0) {
>
> What is boot-device normally set to if no override is specified?
By default it's set to "disk" in forth/admin/nvram.fs I think.
> pop_fstr_copy() has a little gotcha in that a zero length string becomes a
> NULL on conversion, so generally I tend to use a pattern like this:
>
> if (boot_device && strcmp(boot_device, "disk") == 0) {
> ...
> }
I did not test that the user can set it to "" but if so I agree it's
better to check for a NULL value. I'll test this and send a v2.
> I'm just wondering if we shouldn't always assume that a value exists and is
> non-zero...
So you mean that the default value should also be set when it's empty not
only when not set explicitely? Now I wonder if the default should be
changed to empty instead but I don't know what else would that affect.
Regards,
BALATON Zoltan
More information about the OpenBIOS
mailing list