[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