aboutsummaryrefslogtreecommitdiff
path: root/tools/net/sunrpc/xdrgen/generators/enum.py
AgeCommit message (Collapse)AuthorFilesLines
2024-11-11xdrgen: Add generator code for XDR width macrosChuck Lever1-1/+12
Introduce logic in the code generators to emit maxsize (XDR width) definitions. In C, these are pre-processor macros. Signed-off-by: Chuck Lever <[email protected]>
2024-11-11xdrgen: Implement big-endian enumsChuck Lever1-4/+13
Signed-off-by: Chuck Lever <[email protected]>
2024-11-11xdrgen: Rename enum's declaration Jinja2 templateChuck Lever1-1/+1
"close.j2" is a confusing name. Signed-off-by: Chuck Lever <[email protected]>
2024-09-20tools: Add xdrgenChuck Lever1-0/+44
Add a Python-based tool for translating XDR specifications into XDR encoder and decoder functions written in the Linux kernel's C coding style. The generator attempts to match the usual C coding style of the Linux kernel's SunRPC consumers. This approach is similar to the netlink code generator in tools/net/ynl . The maintainability benefits of machine-generated XDR code include: - Stronger type checking - Reduces the number of bugs introduced by human error - Makes the XDR code easier to audit and analyze - Enables rapid prototyping of new RPC-based protocols - Hardens the layering between protocol logic and marshaling - Makes it easier to add observability on demand - Unit tests might be built for both the tool and (automatically) for the generated code In addition, converting the XDR layer to use memory-safe languages such as Rust will be easier if much of the code can be converted automatically. Tested-by: Jeff Layton <[email protected]> Signed-off-by: Chuck Lever <[email protected]>