Re: [PATCH v2 2/4] rbtree: declare augmented callbacks per field with RB_AUG()

From: Peter Zijlstra

Date: Wed Sep 30 2026 - 05:13:47 EST


On Tue, Sep 29, 2026 at 11:24:37PM +0800, Yiwei Lin wrote:

> No functional change intended.

> -#define RB_DECLARE_CALLBACKS_MAX(RBSTATIC, RBNAME, RBSTRUCT, RBFIELD, \
> - RBTYPE, RBAUGMENTED, RBCOMPUTE) \
> -static inline bool RBNAME ## _compute_max(RBSTRUCT *node, bool exit) \
> -{ \
> - RBSTRUCT *child; \
> - RBTYPE max = RBCOMPUTE(node); \
> - if (node->RBFIELD.rb_left) { \
> - child = rb_entry(node->RBFIELD.rb_left, RBSTRUCT, RBFIELD); \
> - if (child->RBAUGMENTED > max) \
> - max = child->RBAUGMENTED; \
> - } \
> - if (node->RBFIELD.rb_right) { \
> - child = rb_entry(node->RBFIELD.rb_right, RBSTRUCT, RBFIELD); \
> - if (child->RBAUGMENTED > max) \
> - max = child->RBAUGMENTED; \
> - } \
> - if (exit && node->RBAUGMENTED == max) \
> - return true; \
> - node->RBAUGMENTED = max; \
> - return false; \
> -} \

The one thing that did get lost is this 'exit' stuff. I'm not sure it
matters, but it might need a mention.