On Tue, 24 Jun 2025 at 22:04, Sasha Levin <sas...@kernel.org> wrote: > >3. To reduce duplication we could use more type information, e.g. I was > >always > >frustrated that close is just: > > > >SYSCALL_DEFINE1(close, unsigned int, fd) > > > >whereas if we would do: > > > >typedef int fd_t; > >SYSCALL_DEFINE1(close, fd_t, fd) > > > >then all semantic info about the arg is already in the code. > > Yup. It would also be great if we completely drop the SYSCALL_DEFINE() > part and have it be automatically generated by the spec itself, but I > couldn't wrap my head around doing this in C macro just yet.
At some point I was looking at boost.pp library as the source of info on how to do things. It provides a set of containers and algorithms on them: https://www.boost.org/doc/libs/latest/libs/preprocessor/doc/index.html Sequences may be the most appealing b/c they support variable number of elements, and don't need specifying number of elements explicitly: https://www.boost.org/doc/libs/latest/libs/preprocessor/doc/data/sequences.html A sequence then allows generating multiple things from it using foreach over elements.