u-boot.lists.denx.de archive mirror
 help / color / mirror / Atom feed
From: Mateusz Zalega <m.zalega@samsung.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v2 06/12] USB: gadget: added a saner gadget downloader registration API
Date: Thu, 06 Feb 2014 12:56:58 +0100	[thread overview]
Message-ID: <52F3788A.6080705@samsung.com> (raw)
In-Reply-To: <201402051900.47518.marex@denx.de>

On 02/05/14 19:00, Marek Vasut wrote:
> On Wednesday, February 05, 2014 at 01:40:27 PM, Mateusz Zalega wrote:
> 
> [...]
> 
>>> Are these two new functions called from multiple places at all? If not,
>>> just inline these ll_foo() calls and be done with it. FYI you can also
>>> make macros for these to avoid having to type all these args all around
>>> and duplicating the code.
>>
>> Macros or static inlines, it's all the same
> 
> NAK, what you say is seriously wrong, you should know that by now!
> 
> Macros do not do any kind of typechecking, functions do typechecking.
> Macros are expanded in place during preprocessing, functions are (usually) 
> single-instance.
> 
> etc.

Yeah, and it's all the same if you don't care for typechecking and all
that, which I assumed from _you_ proposing usage of macros here.

>> there's no point in
>> changing that. The symbols aren't visible outside this compilation unit
>> and function calls are, well, inlined.
> 
> It's pointless to have them pulled out so explicitly. Or would you prefer to 
> have each function encapsulated in another function ? This doesn't make does 
> now, does it ?

Pardon?

> What I would like to do is for you to follow the advice in linker_lists.h and 
> produce a small shim over these crude linker lists prototypes there, so that the 
> users here in the g_* world don't have to type the whole linker list macros with 
> all the arguments, which do not ever change for this g_* . Does it make sense 
> please?

It's taken care of by static inlines.

>>>>  static int g_dnl_do_config(struct usb_configuration *c)
>>>>  {
>>>>  
>>>>  	const char *s = c->cdev->driver->name;
>>>>
>>>> -	int ret = -1;
>>>>
>>>>  	debug("%s: configuration: 0x%p composite dev: 0x%p\n",
>>>>
>>>> -	      __func__, c, c->cdev);
>>>> -
>>>> +			__func__, c, c->cdev);
>>>>
>>>>  	printf("GADGET DRIVER: %s\n", s);
>>>>
>>>> -	if (!strcmp(s, "usb_dnl_dfu"))
>>>> -		ret = dfu_add(c);
>>>> -	else if (!strcmp(s, "usb_dnl_ums"))
>>>> -		ret = fsg_add(c);
>>>> -	else if (!strcmp(s, "usb_dnl_thor"))
>>>> -		ret = thor_add(c);
>>>> -
>>>> -	return ret;
>>>> +
>>>> +	struct g_dnl_bind_callback *callback = g_dnl_first_bind_callback();
>>>> +	for (; callback != g_dnl_last_bind_callback(); ++callback)
>>>
>>> callback++ , this is not C++ where the order might matter. Nonetheless,
>>> you do
>>
>> It doesn't matter anyway and can't be supported on Coding Style grounds,
>> don't bug me.
> 
> Can be done on purely statistical grounds, try this:
> 
> $ git grep 'for.*(.* *++[:alnum:]\+ *)' | wc -l
> 13
> $ git grep 'for.*(.* *[:alnum:]\+++ *)' | wc -l
> 183
> 
> Please fix, thank you.

Okay, whatever.

>>> want to use ll_entry_count() and ll_entry_get() with an iterator variable
>>
>> I don't think using ll_entry_get() in this way is possible with current
>> implementation of linker lists. Moreover, there's plenty of code doing
>> just the same already accepted to U-Boot.
> 
> Ah meh, sorry. Seems like someone was messing with the linkerlists and 
> misdesigned it. Dang.

$ git show 42eba

Yeah, it's a pity.

>>> instead to make sure you don't step onto a corrupted field and crash in
>>> some weird way.
>>
>> Linker would have to split sections to make this sort of thing possible.
>> Won't happen.
> 
> Can you please elaborate ?
> [...]
> 

You're guaranteed by the linker, and our setup, that all your
linker-list data will end up in a contiguous block.

-- 
Mateusz Zalega
Samsung R&D Institute Poland

  reply	other threads:[~2014-02-06 11:56 UTC|newest]

Thread overview: 127+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-09 14:31 [U-Boot] [PATCH 1/9] mmc: mmc header fix Mateusz Zalega
2014-01-09 14:31 ` [U-Boot] [PATCH 2/9] part: " Mateusz Zalega
2014-01-09 14:31 ` [U-Boot] [PATCH v3 3/9] arm:goni: Update configuration for goni target Mateusz Zalega
2014-01-09 14:31 ` [U-Boot] [PATCH 4/9] arm:goni:dfu Add support for DFU to Goni target Mateusz Zalega
2014-01-10  4:55   ` Jaehoon Chung
2014-01-13 14:45     ` Mateusz Zalega
2014-01-09 14:31 ` [U-Boot] [PATCH 5/9] arm:goni: enable GPT command Mateusz Zalega
2014-01-09 14:31 ` [U-Boot] [PATCH 6/9] arm:goni: enable USB Mass Storage Mateusz Zalega
2014-01-09 14:31 ` [U-Boot] [PATCH v3 7/9] dfu:mmc: raw data write fix Mateusz Zalega
2014-01-10  5:03   ` Jaehoon Chung
2014-01-13 13:34     ` Mateusz Zalega
2014-01-09 14:31 ` [U-Boot] [PATCH 8/9] ums: always initialize mmc before ums_disk_init() Mateusz Zalega
2014-01-10  5:08   ` Jaehoon Chung
2014-01-13 14:39     ` Mateusz Zalega
2014-01-13 14:43       ` Michael Trimarchi
2014-01-13 15:00         ` Mateusz Zalega
2014-01-13 10:16   ` Lukasz Majewski
2014-01-14  0:49   ` Minkyu Kang
2014-01-14 10:55     ` Mateusz Zalega
2014-01-09 14:31 ` [U-Boot] [PATCH 9/9] USB: gadget: added a saner gadget downloader registration API Mateusz Zalega
2014-01-10  8:23   ` Lukasz Majewski
2014-01-13  7:07     ` Heiko Schocher
2014-01-13 10:16   ` Lukasz Majewski
2014-01-10  4:46 ` [U-Boot] [PATCH 1/9] mmc: mmc header fix Jaehoon Chung
2014-02-04 17:02 ` [U-Boot] [PATCH v2 00/12] Series v2 Mateusz Zalega
2014-02-04 17:02   ` [U-Boot] [PATCH v2 01/12] mmc: mmc header fix Mateusz Zalega
2014-02-04 17:02   ` [U-Boot] [PATCH v2 02/12] part: " Mateusz Zalega
2014-02-04 17:02   ` [U-Boot] [PATCH v2 03/12] arm:goni: Update configuration for goni target Mateusz Zalega
2014-02-04 17:02   ` [U-Boot] [PATCH v2 04/12] dfu: fix boards wo USB cable detection Mateusz Zalega
2014-02-22  5:06     ` Marek Vasut
2014-02-04 17:02   ` [U-Boot] [PATCH v2 05/12] am335x: dfu: disable DFU in am335x_evm SPL build Mateusz Zalega
2014-02-04 17:02   ` [U-Boot] [PATCH v2 06/12] USB: gadget: added a saner gadget downloader registration API Mateusz Zalega
2014-02-05  7:13     ` Marek Vasut
2014-02-05 12:40       ` Mateusz Zalega
2014-02-05 18:00         ` Marek Vasut
2014-02-06 11:56           ` Mateusz Zalega [this message]
2014-02-06 19:59             ` Marek Vasut
2014-02-04 17:02   ` [U-Boot] [PATCH v2 07/12] arm:goni:dfu Add support for DFU to Goni target Mateusz Zalega
2014-02-04 17:02   ` [U-Boot] [PATCH v2 08/12] arm:goni: enable GPT command Mateusz Zalega
2014-02-04 17:02   ` [U-Boot] [PATCH v2 09/12] arm:goni: enable USB Mass Storage Mateusz Zalega
2014-02-04 17:02   ` [U-Boot] [PATCH v2 10/12] dfu:mmc: raw data write fix Mateusz Zalega
2014-02-22  5:09     ` Marek Vasut
2014-02-04 17:02   ` [U-Boot] [PATCH v2 11/12] mmc: postponed needless timer initialization Mateusz Zalega
2014-02-04 17:02   ` [U-Boot] [PATCH v2 12/12] ums: always initialize mmc before ums_disk_init() Mateusz Zalega
2014-02-22  5:12     ` Marek Vasut
2014-03-31 15:48 ` [U-Boot] [PATCH v3 00/13] DFU, MMC, Gadget, Goni, misc Mateusz Zalega
2014-03-31 15:49   ` [U-Boot] [PATCH v3 01/13] mmc: mmc header fix Mateusz Zalega
2014-03-31 15:49   ` [U-Boot] [PATCH v3 02/13] part: " Mateusz Zalega
2014-03-31 15:49   ` [U-Boot] [PATCH v3 03/13] arm:goni: Update configuration for goni target Mateusz Zalega
2014-03-31 15:49   ` [U-Boot] [PATCH v3 04/13] dfu: fix boards wo USB cable detection Mateusz Zalega
2014-04-02  6:33     ` Lukasz Majewski
2014-03-31 15:49   ` [U-Boot] [PATCH v3 05/13] am335x: dfu: disable DFU in am335x_evm SPL build Mateusz Zalega
2014-03-31 15:49   ` [U-Boot] [PATCH v3 06/13] USB: gadget: added a saner gadget downloader registration API Mateusz Zalega
2014-03-31 16:14     ` Marek Vasut
2014-04-02  6:35     ` Lukasz Majewski
2014-04-02 22:28       ` Marek Vasut
2014-04-03  7:46         ` Lukasz Majewski
2014-04-03  8:52           ` Marek Vasut
2014-04-11 11:43             ` Mateusz Zalega
2014-04-11 12:02               ` Marek Vasut
2014-04-15 11:04                 ` Mateusz Zalega
2014-04-15 13:26                   ` Marek Vasut
2014-03-31 15:49   ` [U-Boot] [PATCH v3 07/13] arm:goni:dfu Add support for DFU to Goni target Mateusz Zalega
2014-03-31 15:49   ` [U-Boot] [PATCH v3 08/13] arm:goni: enable GPT command Mateusz Zalega
2014-03-31 15:49   ` [U-Boot] [PATCH v3 09/13] arm:goni: enable USB Mass Storage Mateusz Zalega
2014-03-31 15:49   ` [U-Boot] [PATCH v3 10/13] dfu:mmc: raw data write fix Mateusz Zalega
2014-03-31 15:49   ` [U-Boot] [PATCH v3 11/13] mmc: postponed needless timer initialization Mateusz Zalega
2014-03-31 15:49   ` [U-Boot] [PATCH v3 12/13] ums: always initialize mmc before ums_disk_init() Mateusz Zalega
2014-04-02  6:36     ` Lukasz Majewski
2014-03-31 15:49   ` [U-Boot] [PATCH v3 13/13] common: fixed linker-list example Mateusz Zalega
2014-03-31 16:12     ` Marek Vasut
2014-04-01  7:42       ` Lukasz Majewski
2014-04-15 13:06 ` [U-Boot] [PATCH v4 00/13] DFU, MMC, Gadget, Goni, misc Mateusz Zalega
2014-04-15 13:06   ` [U-Boot] [PATCH v4 01/13] mmc: mmc header fix Mateusz Zalega
2014-04-15 13:06   ` [U-Boot] [PATCH v4 02/13] part: " Mateusz Zalega
2014-04-15 13:06   ` [U-Boot] [PATCH v4 03/13] common: fixed linker-list example Mateusz Zalega
2014-04-15 13:36     ` Marek Vasut
2014-04-15 13:06   ` [U-Boot] [PATCH v4 04/13] usb: dfu: fix boards wo USB cable detection Mateusz Zalega
2014-04-15 13:38     ` Marek Vasut
2014-04-15 14:23     ` Lukasz Majewski
2014-04-15 13:06   ` [U-Boot] [PATCH v4 05/13] mmc: postponed needless timer initialization Mateusz Zalega
2014-04-15 13:06   ` [U-Boot] [PATCH v4 06/13] dfu: mmc: raw data write fix Mateusz Zalega
2014-04-15 13:06   ` [U-Boot] [PATCH v4 07/13] ums: always initialize mmc before ums_disk_init() Mateusz Zalega
2014-04-15 14:24     ` Lukasz Majewski
2014-04-15 13:06   ` [U-Boot] [PATCH v4 08/13] am335x: dfu: disable DFU in am335x_evm SPL build Mateusz Zalega
2014-04-15 14:25     ` Lukasz Majewski
2014-04-15 13:06   ` [U-Boot] [PATCH v4 09/13] USB: gadget: added a saner gadget downloader registration API Mateusz Zalega
2014-04-15 13:39     ` Marek Vasut
2014-04-15 14:28     ` Lukasz Majewski
2014-04-16  4:23     ` Jaehoon Chung
2014-04-16  9:25       ` Mateusz Zalega
2014-04-15 13:06   ` [U-Boot] [PATCH v4 10/13] arm: goni: Update configuration for Goni target Mateusz Zalega
2014-04-15 13:06   ` [U-Boot] [PATCH v4 11/13] arm: goni: dfu: Add support for DFU to " Mateusz Zalega
2014-04-15 13:07   ` [U-Boot] [PATCH v4 12/13] arm: goni: enable GPT command Mateusz Zalega
2014-04-15 13:07   ` [U-Boot] [PATCH v4 13/13] arm: goni: enable USB Mass Storage Mateusz Zalega
2014-04-28 19:13 ` [U-Boot] [PATCH v5 00/12] DFU, MMC, Gadget, Goni, misc Mateusz Zalega
2014-04-28 19:13   ` [U-Boot] [PATCH v5 01/12] mmc: mmc header fix Mateusz Zalega
2014-04-30  8:35     ` Lukasz Majewski
2014-04-30 10:02       ` Pantelis Antoniou
2014-05-05  7:45     ` Lukasz Majewski
2014-04-28 19:13   ` [U-Boot] [PATCH v5 02/12] part: " Mateusz Zalega
2014-04-30  8:33     ` Lukasz Majewski
2014-05-05  7:48     ` Lukasz Majewski
2014-04-28 19:13   ` [U-Boot] [PATCH v5 03/12] usb: dfu: fix boards wo USB cable detection Mateusz Zalega
2014-04-30  8:18     ` Marek Vasut
2014-05-05  7:50     ` Lukasz Majewski
2014-04-28 19:13   ` [U-Boot] [PATCH v5 04/12] dfu: mmc: raw data write fix Mateusz Zalega
2014-05-05  8:00     ` Lukasz Majewski
2014-04-28 19:13   ` [U-Boot] [PATCH v5 05/12] dfu: mmc: change offset base handling Mateusz Zalega
2014-05-05  8:03     ` Lukasz Majewski
2014-04-28 19:13   ` [U-Boot] [PATCH v5 06/12] ums: always initialize mmc before ums_disk_init() Mateusz Zalega
2014-05-01 20:03     ` Stephen Warren
2014-05-05  8:05     ` Lukasz Majewski
2014-04-28 19:13   ` [U-Boot] [PATCH v5 07/12] am335x: dfu: disable DFU in am335x_evm SPL build Mateusz Zalega
2014-05-05  8:06     ` Lukasz Majewski
2014-04-28 19:13   ` [U-Boot] [PATCH v5 08/12] USB: gadget: added a saner gadget downloader registration API Mateusz Zalega
2014-05-05  8:07     ` Lukasz Majewski
2014-04-28 19:13   ` [U-Boot] [PATCH v5 09/12] arm: goni: Update configuration for Goni target Mateusz Zalega
2014-04-30 11:24     ` Lukasz Majewski
2014-04-30 11:55       ` Minkyu Kang
2014-05-16  6:53     ` Minkyu Kang
2014-04-28 19:13   ` [U-Boot] [PATCH v5 10/12] arm: goni: dfu: Add support for DFU to " Mateusz Zalega
2014-05-16  6:53     ` Minkyu Kang
2014-04-28 19:13   ` [U-Boot] [PATCH v5 11/12] arm: goni: enable GPT command Mateusz Zalega
2014-05-16  6:53     ` Minkyu Kang
2014-04-28 19:13   ` [U-Boot] [PATCH v5 12/12] arm: goni: enable USB Mass Storage Mateusz Zalega
2014-05-16  6:53     ` Minkyu Kang

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-all 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=52F3788A.6080705@samsung.com \
    --to=m.zalega@samsung.com \
    --cc=u-boot@lists.denx.de \
    /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;
as well as URLs for NNTP newsgroup(s).