[dpdk-dev] [PATCH v2 01/18] eal: introduce dtor macros
Gaëtan Rivet
gaetan.rivet at 6wind.com
Thu Mar 22 16:56:43 CET 2018
On Thu, Mar 22, 2018 at 09:51:14AM -0400, Neil Horman wrote:
> On Wed, Mar 21, 2018 at 06:15:22PM +0100, Gaetan Rivet wrote:
> > Signed-off-by: Gaetan Rivet <gaetan.rivet at 6wind.com>
> > ---
> > lib/librte_eal/common/include/rte_common.h | 23 +++++++++++++++++++++++
> > 1 file changed, 23 insertions(+)
> >
> > diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
> > index c7803e41c..500fc3adb 100644
> > --- a/lib/librte_eal/common/include/rte_common.h
> > +++ b/lib/librte_eal/common/include/rte_common.h
> > @@ -105,6 +105,29 @@ static void __attribute__((constructor, used)) func(void)
> > static void __attribute__((constructor(prio), used)) func(void)
> >
> > /**
> > + * Run after main() with high priority.
> > + *
> > + * The destructor will be run *before* prioritized destructors.
> > + *
> > + * @param func
> > + * Destructor function name.
> > + */
> > +#define RTE_FINI(func) \
> > +static void __attribute__((destructor, used)) func(void)
> > +
> > +/**
> > + * Run after main() with low priority.
> > + *
> > + * @param func
> > + * Destructor function name.
> > + * @param prio
> > + * Priority number must be above 100.
> > + * Lowest number is the last to run.
> > + */
> > +#define RTE_FINI_PRIO(func, prio) \
> > +static void __attribute__((destructor(prio), used)) func(void)
> > +
> > +/**
> Additionally, it might be nice to further abstract the destructor priority to
> fixed levels so that people aren't always trying to guess what the right magic
> number should be. I.e. create several destructor macros of the form:
> RTE_FINI_<NAME>
>
> Where name is a meaningfull term like FINAL, PMD, EARLY, or some such set that
> implies a priority value encoded within the macro definition. That would also
> eliminate the need to create a BUILD BUG macro if the priority was specified to
> be too low
>
> Neil
>
Good idea, and I agree that we need helpers on this.
Not sure about _FINAL and _EARLY however.
I will propose a patch as a response to this mail, let me know if that's
what you had in mind.
--
Gaëtan Rivet
6WIND
More information about the dev
mailing list