On Wednesday 31 January 2018 18:53:19 Andy Shevchenko wrote: > On Wed, Jan 31, 2018 at 6:46 PM, <Mario.Limonciello@xxxxxxxx> wrote: > > >> > for allocation: ..._alloc_request() > >> > for filling: _fill_request() / _prepare_request() > >> > > >> > or alike. > >> > > >> > _set_arguments() not good enough to me. > >> > >> Ok. Then we need to stick with 5 arguments... What about name > >> dell_fill_request()? E.g. > >> > >> struct calling_interface_buffer buffer; > >> dell_fill_request(&buffer, 0x2, 0, 0, 0); > >> ret = dell_send_request(&buffer, CLASS_INFO, SELECT_RFKILL); > >> > > > > The other alternative is to just define the input of the structure immediately with > > an initializer, no multi argument filler function. Like this: > > Either would work for me, though one comment below. > > > - struct calling_interface_buffer buffer; > > > > + struct calling_interface_buffer buffer = {CLASS_INFO, > > + SELECT_RFKILL, > > + {0, 0, 0, 0}, > > + {0, 0, 0, 0}}; > > Looking to this approach I would rather provide a macro then. > > #define FILL_REQUEST(a,b,c,d,...) \ // variant FILL_RFKILL_REQUEST(a,b,c,d) > (struct calling_interface_buffer) { \ > ... \ > } > > But then it is macro(s) vs. function(s) debate. Does not matter, I'm fine with either macro or function. > > > - dell_set_arguments(&buffer, 0, 0, 0, 0); > > - ret = dell_send_request(&buffer, CLASS_INFO, SELECT_RFKILL); > > + ret = dell_send_request(&buffer); > -- Pali Rohár pali.rohar@xxxxxxxxx
Attachment:
signature.asc
Description: PGP signature