[U-Boot] [PATCH 1/9] disk/part.c: Expose a list of available block drivers
Alexander Graf
agraf at suse.de
Fri Jan 15 02:04:40 CET 2016
On 15.01.16 01:46, Simon Glass wrote:
> Hi Alex,
>
> On 14 January 2016 at 16:33, Alexander Graf <agraf at suse.de> wrote:
>>
>>
>> On 15.01.16 00:11, Simon Glass wrote:
>>> Hi Alexander,
>>>
>>> On 22 December 2015 at 06:57, Alexander Graf <agraf at suse.de> wrote:
>>>> We have a pretty nice and generic interface to ask for a specific block
>>>> device. However, that one is still based around the magic notion that
>>>> we know the driver name.
>>>>
>>>> In order to be able to write fully generic disk access code, expose a list
>>>> of all available block drivers.
>>>>
>>>> Signed-off-by: Alexander Graf <agraf at suse.de>
>>>> ---
>>>> disk/part.c | 25 +++++++++++++++++++++++++
>>>> include/part.h | 2 ++
>>>> 2 files changed, 27 insertions(+)
>>>>
>>>> diff --git a/disk/part.c b/disk/part.c
>>>> index 909712e..5bc64c7 100644
>>>> --- a/disk/part.c
>>>> +++ b/disk/part.c
>>>> @@ -26,6 +26,31 @@ struct block_drvr {
>>>> int (*select_hwpart)(int dev_num, int hwpart);
>>>> };
>>>>
>>>> +const char *available_block_drvrs[] = {
>>>> +#if defined(CONFIG_CMD_IDE)
>>>> + "ide",
>>>> +#endif
>>>> +#if defined(CONFIG_CMD_SATA)
>>>> + "sata",
>>>> +#endif
>>>> +#if defined(CONFIG_CMD_SCSI)
>>>> + "scsi",
>>>> +#endif
>>>> +#if defined(CONFIG_CMD_USB) && defined(CONFIG_USB_STORAGE)
>>>> + "usb",
>>>> +#endif
>>>> +#if defined(CONFIG_MMC)
>>>> + "mmc",
>>>> +#endif
>>>> +#if defined(CONFIG_SYSTEMACE)
>>>> + "ace",
>>>> +#endif
>>>> +#if defined(CONFIG_SANDBOX)
>>>> + "host",
>>>> +#endif
>>>> + NULL,
>>>> +};
>>>
>>> You seem to be duplicating block_drvr[]. Can we not just use that?
>>
>> It would mean that we'd have to make it public then - to me it looked
>> like people kept it static for a reason.
>>
>> However if everyone's happy if I expose it (and the struct definition
>> behind it), I'm certainly more than happy to move to that one instead :).
>
> But you have created a public one which is a copy of part of it, so it
> doesn't seem like much of a benefit :-)
>
> How about adding a function to return the device name of a member?
I wouldn't know the struct size, so I couldn't walk the array, right? :)
> Then you should be able to avoid copying it, and avoid making it
> global.
>
> I'm very interested in your series, and hope to review the rest of it
> (and try it out) soon!
Wait for v2, I'm just polishing it up :). It fixes a good number of
issues on real hardware. I have the code running well on BBB and HiKey now.
Alex
More information about the U-Boot
mailing list