[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