aboutsummaryrefslogtreecommitdiff
path: root/tools/net/sunrpc/xdrgen/generators/pointer.py
AgeCommit message (Collapse)AuthorFilesLines
2024-11-11xdrgen: Add generator code for XDR width macrosChuck Lever1-1/+17
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: Rename "variable-length strings"Chuck Lever1-4/+4
I misread RFC 4506. The built-in data type is called simply "string", as there is no fixed-length variety. Signed-off-by: Chuck Lever <[email protected]>
2024-09-20tools: Add xdrgenChuck Lever1-0/+272
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]>