[dpdk-dev] [PATCH v4 03/41] bus/dpaa: add compatibility and helper macros

Shreyansh Jain shreyansh.jain at nxp.com
Tue Sep 19 15:18:48 CEST 2017


On Monday 18 September 2017 08:19 PM, Ferruh Yigit wrote:
> On 9/9/2017 12:20 PM, Shreyansh Jain wrote:
>> From: Hemant Agrawal <hemant.agrawal at nxp.com>
>>
>> Linked list, bit operations and compatibility macros.
>>
>> Signed-off-by: Geoff Thorpe <geoff.thorpe at nxp.com>
>> Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
> 
> <...>
> 
>> diff --git a/drivers/bus/dpaa/include/compat.h b/drivers/bus/dpaa/include/compat.h
>> new file mode 100644
>> index 0000000..a1fd53e
>> --- /dev/null
>> +++ b/drivers/bus/dpaa/include/compat.h
>> @@ -0,0 +1,389 @@
>> +/*-
>> + * This file is provided under a dual BSD/GPLv2 license. When using or
>> + * redistributing this file, you may do so under either license.
> 
> The content of the file looks like for Linux, is the file coming from an
> existing GPL license? If so, is it allowed to add BSD license to this?
> 
>> + *
>> + *   BSD LICENSE
>> + *
>> + * Copyright 2011 Freescale Semiconductor, Inc.
>> + * All rights reserved.
>> + *
>> + * Redistribution and use in source and binary forms, with or without
>> + * modification, are permitted provided that the following conditions are met:
>> + * * Redistributions of source code must retain the above copyright
>> + * notice, this list of conditions and the following disclaimer.
>> + * * Redistributions in binary form must reproduce the above copyright
>> + * notice, this list of conditions and the following disclaimer in the
>> + * documentation and/or other materials provided with the distribution.
>> + * * Neither the name of the above-listed copyright holders nor the
>> + * names of any contributors may be used to endorse or promote products
>> + * derived from this software without specific prior written permission.
>> + *
>> + *   GPL LICENSE SUMMARY
>> + *
>> + * ALTERNATIVELY, this software may be distributed under the terms of the
>> + * GNU General Public License ("GPL") as published by the Free Software
>> + * Foundation, either version 2 of that License or (at your option) any
>> + * later version.
>> + *
>> + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
>> + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
>> + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
>> + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
>> + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
>> + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
>> + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
>> + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
>> + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
>> + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
>> + * POSSIBILITY OF SUCH DAMAGE.
>> + */
> 
> <...>
> 
>> +#ifdef ARRAY_SIZE
>> +#undef ARRAY_SIZE
>> +#endif
>> +#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
> 
> Can re-use RTE_DIM

I can change this. Thanks for highlighting.

> 
> <...>
> 
>> +#define ASSERT(x) do {\
>> +	if (!(x)) \
>> +		rte_panic("DPAA: x"); \
>> +} while (0)
>> +#define DPAA_BUG_ON(x) ASSERT(!(x))
> 
> Can use RTE_ASSERT

I will change this.

> 
> <...>
> 
>> +
>> +#ifndef __DPAA_LIST_H
>> +#define __DPAA_LIST_H
>> +
>> +/****************/
>> +/* Linked-lists */
>> +/****************/
> 
> Do we need to maintain a linked list implementation, why no just use
> sys/queue.h ones as done many places in DPDK?
> 
>> +
>> +struct list_head {
>> +	struct list_head *prev;
>> +	struct list_head *next;
>> +};
>> +
> 
> <...>
> 

The underlying DPAA infrastructure code is shared between kernel and 
userspace. That is why, changing the internal headers (for example, 
using RTE_* queues) is something I want to avoid until absolutely 
necessary. The outer layers (drivers/*/dpaa/<here>) are something I am 
trying to keep as close to possible to DPDK.

-
Shreyansh


More information about the dev mailing list