|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC v3 07/13] tables.h: add linker table support
tglx@xxxxxxxxxxxxx,mingo@xxxxxxxxxx,bp@xxxxxxxxx,linux@xxxxxxxxxxxxxxxx,masami.hiramatsu.pt@xxxxxxxxxxx,jbaron@xxxxxxxxxx,heiko.carstens@xxxxxxxxxx,ananth@xxxxxxxxxxxxxxxxxx,anil.s.keshavamurthy@xxxxxxxxx,davem@xxxxxxxxxxxxx,realmz6@xxxxxxxxx,x86@xxxxxxxxxx,luto@xxxxxxxxxxxxxx,keescook@xxxxxxxxxxxx,torvalds@xxxxxxxxxxxxxxxxxxxx,gregkh@xxxxxxxxxxxxxxxxxxx,rusty@xxxxxxxxxxxxxxx,gnomes@xxxxxxxxxxxxxxxxxxx,alan@xxxxxxxxxxxxxxx,dwmw2@xxxxxxxxxxxxx,arnd@xxxxxxxx,ming.lei@xxxxxxxxxxxxx,linux-arch@xxxxxxxxxxxxxxx,benh@xxxxxxxxxxxxxxxxxxx,ananth@xxxxxxxxxx,pebolle@xxxxxxxxxx,fontana@xxxxxxxxxxxxxxx,ciaran.farrell@xxxxxxxx,christopher.denicolo@xxxxxxxx,david.vrabel@xxxxxxxxxx,konrad.wilk@xxxxxxxxxx,mcb30@xxxxxxxx,jgross@xxxxxxxx,andrew.cooper3@xxxxxxxxxx,andriy.shevchenko@xxxxxxxxxxxxxxx,paul.gortmaker@xxxxxxxxxxxxx,xen-devel@xxxxxxxxxxxxxxxxxxx,ak@xxxxxxxxxxxxxxx,pali.rohar@xxxxxxxxx,dvhart@xxxxxxxxxxxxx,platform-driver-x86@xxxxxxxxxxxxxxx,mmarek@xxxxxxxx,linux@xxxxxxxxxxxxxxxxxx,jko!
sina@suse
.cz,korea.drzix@xxxxxxxxx,linux-kbuild@xxxxxxxxxxxxxxx,tony.luck@xxxxxxxxx,akpm@xxxxxxxxxxxxxxxxxxxx,linux-ia64@xxxxxxxxxxxxxxx,linux-arm-kernel@xxxxxxxxxxxxxxxxxxx,linux-sh@xxxxxxxxxxxxxxx,sparclinux@xxxxxxxxxxxxxxx,catalin.marinas@xxxxxxx,will.deacon@xxxxxxx,rostedt@xxxxxxxxxxx,jpoimboe@xxxxxxxxxx
Message-ID: <01FD20B1-E788-4CC6-81CF-BA26F000FFCB@xxxxxxxxx>
On July 27, 2016 4:02:18 PM PDT, "Luis R. Rodriguez" <mcgrof@xxxxxxxxxx> wrote:
>On Tue, Jul 26, 2016 at 12:30:14AM +0900, Masami Hiramatsu wrote:
>> On Fri, 22 Jul 2016 14:24:41 -0700
>> "Luis R. Rodriguez" <mcgrof@xxxxxxxxxx> wrote:
>>
>> > +/**
>> > + * LINKTABLE_RUN_ALL - iterate and run through all entries on a
>linker table
>> > + *
>> > + * @tbl: linker table
>> > + * @func: structure name for the function name we want to call.
>> > + * @args...: arguments to pass to func
>> > + *
>> > + * Example usage:
>> > + *
>> > + * LINKTABLE_RUN_ALL(frobnicator_fns, some_run,);
>> > + */
>> > +#define LINKTABLE_RUN_ALL(tbl, func, args...)
>> > \
>> > +do {
>> > \
>> > + size_t i; \
>> > + for (i = 0; i < LINUX_SECTION_SIZE(tbl); i++) \
>> > + (tbl[i]).func (args); \
>> > +} while (0);
>> > +
>> > +/**
>> > + * LINKTABLE_RUN_ERR - run each linker table entry func and return
>error if any
>> > + *
>> > + * @tbl: linker table
>> > + * @func: structure name for the function name we want to call.
>> > + * @args...: arguments to pass to func
>> > + *
>> > + * Example usage:
>> > + *
>> > + * unsigned int err = LINKTABLE_RUN_ERR(frobnicator_fns,
>some_run,);
>> > + */
>> > +#define LINKTABLE_RUN_ERR(tbl, func, args...)
>> > \
>> > +({
>> > \
>> > + size_t i; \
>> > + int err = 0; \
>> > + for (i = 0; !err && i < LINUX_SECTION_SIZE(tbl); i++) \
>> > + err = (tbl[i]).func (args); \
>> > + err; \
>> > +})
>>
>> These iteration APIs are a bit dangerous, at least for these APIs
>we'd better change
>> name like as FUNCTABLE_RUN etc. because LINKTABLE can contain not
>only function address
>> but also some data (or address of data).
>
>Sure will do, thanks for the review.
>
> Luis
I don't know if they are dangerous. Keep in mind C type checking is still
present.
--
Sent from my Android device with K-9 Mail. Please excuse brevity and formatting.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |