<div dir="auto"><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Jul 31, 2021, 04:59 Kees Cook <<a href="mailto:keescook@chromium.org">keescook@chromium.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Jul 30, 2021 at 10:19:20PM +0000, Williams, Dan J wrote:<br>
> On Wed, 2021-07-28 at 14:59 -0700, Kees Cook wrote:<br><br>
>  /**<br>
>   * struct_group(NAME, MEMBERS)<br>
>   *<br>
> @@ -67,7 +73,10 @@ enum {<br>
>   * @NAME: The name of the mirrored sub-struct<br>
>   * @MEMBERS: The member declarations for the mirrored structs<br>
>   */<br>
> -#define struct_group(NAME, MEMBERS)    \<br>
> +#define struct_group(NAME, MEMBERS...) \<br>
>         struct_group_attr(NAME, /* no attrs */, MEMBERS)<br>
>  <br>
> +#define struct_group_typed(TYPE, NAME, MEMBERS...) \<br>
> +       struct_group_attr_typed(TYPE, NAME, /* no attrs */, MEMBERS)<br>
> +<br>
>  #endif<br>
<br>
Awesome! My instinct is to expose the resulting API as:<br>
<br>
__struct_group(type, name, attrs, members...)<br>
<br>
struct_group(name, members...)<br>
struct_group_attr(name, attrs, members...)<br>
struct_group_typed(type, name, members...)<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">Bikeshed: can we use proper nomenclature please. s/type/tag/, s/typed/tagged.</div><div dir="auto"><br></div><div dir="auto">Rasmus</div></div>