Re: [RFC v3 07/13] tables.h: add linker table support
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
- Subject: Re: [RFC v3 07/13] tables.h: add linker table support
- From: "Luis R. Rodriguez" <mcgrof@xxxxxxxxxx>
- Date: Thu, 28 Jul 2016 01:02:18 +0200
- Cc: "Luis R. Rodriguez" <mcgrof@xxxxxxxxxx>, hpa@xxxxxxxxx, 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, jkosina@xxxxxxx, 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
- In-reply-to: <20160726003014.8e0424d2991ec71ad5e0ac5f@kernel.org>
- List-id: <linux-ia64.vger.kernel.org>
- References: <1469222687-1600-1-git-send-email-mcgrof@kernel.org> <1469222687-1600-8-git-send-email-mcgrof@kernel.org> <20160726003014.8e0424d2991ec71ad5e0ac5f@kernel.org>
- User-agent: Mutt/1.5.21 (2010-09-15)
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
--
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Index of Archives]
[Linux Kernel]
[Sparc Linux]
[DCCP]
[Linux ARM]
[Yosemite News]
[Linux SCSI]
[Linux x86_64]
[Linux for Ham Radio]