On 5/22/2026 7:16 AM, Lisa Wang wrote: > From: Sagi Shahar <[email protected]> > > Add the Kbuild macros needed to enable the filechk_offsets mechanism to > generate C header files containing structure member offset information. > > Tools depending on assembly code that operate on structures have to > hardcode the offsets of structure members. The Kbuild infrastructure > can instead generate C header files with these offsets automatically, > allowing them to be included in assembly code as symbolic constants. > > For example, the TDX guest boot code requires access to parameters > passed in the C structure(struct td_boot_parameters). This header ^ Nit: missing a space. > provides the macros needed to extract these offsets from C code and > expose them to assembly, ensuring the two remain synchronized. > > Signed-off-by: Sagi Shahar <[email protected]> > Reviewed-by: Ira Weiny <[email protected]> > Signed-off-by: Lisa Wang <[email protected]> Reviewed-by: Binbin Wu <[email protected]> > --- > tools/include/linux/kbuild.h | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/tools/include/linux/kbuild.h b/tools/include/linux/kbuild.h > new file mode 100644 > index 000000000000..957fd55cd159 > --- /dev/null > +++ b/tools/include/linux/kbuild.h > @@ -0,0 +1,11 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef __TOOLS_LINUX_KBUILD_H > +#define __TOOLS_LINUX_KBUILD_H > + > +#define DEFINE(sym, val) \ > + asm volatile("\n.ascii \"->" #sym " %0 " #val "\"" : : "i" (val)) > + > +#define OFFSET(sym, str, mem) \ > + DEFINE(sym, __builtin_offsetof(struct str, mem)) > + > +#endif /* __TOOLS_LINUX_KBUILD_H */ >

