[PATCH v1 05/14] net/zxdh: add tables dump address ops

Stephen Hemminger stephen at networkplumber.org
Mon Feb 10 18:33:04 CET 2025


On Mon, 10 Feb 2025 09:48:50 +0800
Bingbin Chen <chen.bingbin at zte.com.cn> wrote:

> +
> +#define ZXDH_INIT_D_NODE(ptr, pdata) \
> +	do {\
> +		ZXDH_D_NODE *temp_ptr = ptr;\
> +		(temp_ptr)->data = pdata;\
> +		(temp_ptr)->prev = NULL;\
> +		(temp_ptr)->next = NULL;\
> +	} while (0)
> +
> +#define ZXDH_INIT_RBT_TN(p_tn, p_newkey) \
> +	do {\
> +		ZXDH_RB_TN *p_temp_tn = p_tn;\
> +		(p_temp_tn)->p_key    = p_newkey; \
> +		(p_temp_tn)->color_lsv = 0; \
> +		(p_temp_tn)->p_left   = NULL; \
> +		(p_temp_tn)->p_right  = NULL; \
> +		(p_temp_tn)->p_parent = NULL; \
> +		ZXDH_INIT_D_NODE(&((p_temp_tn)->tn_ln), (p_temp_tn));\
> +	} while (0)
> +
> +#define ZXDH_GET_TN_LSV(p_tn)   \
> +		((p_tn)->color_lsv >> 2)
> +
> +#define ZXDH_SET_TN_LSV(p_tn, list_val) \
> +	do {\
> +		ZXDH_RB_TN *p_temp_tn = p_tn;\
> +		(p_temp_tn)->color_lsv &= 0x3;\
> +		(p_temp_tn)->color_lsv |= ((list_val) << 2); \
> +	} while (0)
> +
> +#define ZXDH_SET_TN_COLOR(p_tn, color) \
> +	do {\
> +		ZXDH_RB_TN *p_temp_tn = p_tn;\
> +		(p_temp_tn)->color_lsv  &= 0xfffffffc;\
> +		(p_temp_tn)->color_lsv  |= ((color) & 0x3);\
> +	} while (0)
> +

Prefer using inline functions instead of macros.
That way you get type safety and everything is more readable.


More information about the dev mailing list