On Tue, Oct 5, 2021 at 2:17 PM Harman Kalra <hka...@marvell.com> wrote:
> +struct rte_intr_handle *rte_intr_instance_alloc(uint32_t flags)
> +{
> +       struct rte_intr_handle *intr_handle;
> +       bool mem_allocator;

Regardless of the currently defined flags, we want to have an ABI
ready for future changes, so if there is a "flags" input parameter, it
must be checked against valid values.
You can build a RTE_INTR_ALLOC_KNOWN_FLAGS define that contains all
valid flags either in a private header or only in this .c file if no
other unit needs it.
Next, in this function:

if ((flags & ~RTE_INTR_ALLOC_KNOWN_FLAGS) != 0) {
    rte_errno = EINVAL;
    return NULL;
}

A check in unit tests is then a good thing to add so that developpers
adding new flag get a CI failure.

This is not a blocker as this API is still experimental, but please
let's do this from the start.


> +
> +       mem_allocator = (flags & RTE_INTR_ALLOC_DPDK_ALLOCATOR) != 0;
> +       if (mem_allocator)
> +               intr_handle = rte_zmalloc(NULL, sizeof(struct 
> rte_intr_handle),
> +                                         0);
> +       else
> +               intr_handle = calloc(1, sizeof(struct rte_intr_handle));


-- 
David Marchand

Reply via email to