[dpdk-dev] [PATCH v7 06/21] eal/soc: introduce very essential SoC infra definitions

Shreyansh Jain shreyansh.jain at nxp.com
Thu Nov 10 06:51:55 CET 2016


On Thursday 10 November 2016 09:39 AM, Jianbo Liu wrote:
> On 28 October 2016 at 20:26, Shreyansh Jain <shreyansh.jain at nxp.com> wrote:
>> From: Jan Viktorin <viktorin at rehivetech.com>
>>
>> Define initial structures and functions for the SoC infrastructure.
>> This patch supports only a very minimal functions for now.
>> More features will be added in the following commits.
>>
>> Includes rte_device/rte_driver inheritance of
>> rte_soc_device/rte_soc_driver.
>>
>> Signed-off-by: Jan Viktorin <viktorin at rehivetech.com>
>> Signed-off-by: Shreyansh Jain <shreyansh.jain at nxp.com>
>> Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
>> ---
>>  app/test/Makefile                       |   1 +
>>  app/test/test_soc.c                     |  90 +++++++++++++++++++++
>>  lib/librte_eal/common/Makefile          |   2 +-
>>  lib/librte_eal/common/eal_private.h     |   4 +
>>  lib/librte_eal/common/include/rte_soc.h | 138 ++++++++++++++++++++++++++++++++
>>  5 files changed, 234 insertions(+), 1 deletion(-)
>>  create mode 100644 app/test/test_soc.c
>>  create mode 100644 lib/librte_eal/common/include/rte_soc.h
>>
> ....
>
>
>> +/**
>> + * Utility function to write a SoC device name, this device name can later be
>> + * used to retrieve the corresponding rte_soc_addr using above functions.
>> + *
>> + * @param addr
>> + *     The SoC address
>> + * @param output
>> + *     The output buffer string
>> + * @param size
>> + *     The output buffer size
>> + * @return
>> + *  0 on success, negative on error.
>> + */
>> +static inline void
>> +rte_eal_soc_device_name(const struct rte_soc_addr *addr,
>> +                       char *output, size_t size)
>> +{
>> +       int ret;
>> +
>> +       RTE_VERIFY(addr != NULL);
>> +       RTE_VERIFY(size >= strlen(addr->name));
>
> Is it better to use (size > strlen(addr->name)?

Yes, I missed the '\0' in this.
I will fix this.

>
>> +       ret = snprintf(output, size, "%s", addr->name);
>> +       RTE_VERIFY(ret >= 0);
>> +}
>> +
>> +static inline int
>> +rte_eal_compare_soc_addr(const struct rte_soc_addr *a0,
>> +                        const struct rte_soc_addr *a1)
>> +{
>> +       if (a0 == NULL || a1 == NULL)
>> +               return -1;
>> +
>> +       RTE_VERIFY(a0->name != NULL);
>> +       RTE_VERIFY(a1->name != NULL);
>> +
>> +       return strcmp(a0->name, a1->name);
>> +}
>> +
>> +#endif
>> --
>> 2.7.4
>>
>


-- 
-
Shreyansh


More information about the dev mailing list