tools/net/sunrpc/xdrgen/xdrgen
Source file repositories/reference/linux-study-clean/tools/net/sunrpc/xdrgen/xdrgen
File Facts
- System
- Linux kernel
- Corpus path
tools/net/sunrpc/xdrgen/xdrgen- Extension
[no extension]- Size
- 4266 bytes
- Lines
- 144
- Domain
- Support Tooling And Documentation
- Bucket
- tools
- Inferred role
- Support Tooling And Documentation: tools
- Status
- atlas-only
Why This File Exists
Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
- Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#!/usr/bin/env python3
# ex: set filetype=python:
"""Translate an XDR specification into executable code that
can be compiled for the Linux kernel."""
__author__ = "Chuck Lever"
__copyright__ = "Copyright (c) 2024 Oracle and/or its affiliates."
__license__ = "GPL-2.0 only"
__version__ = "0.2"
import sys
from pathlib import Path
import argparse
_XDRGEN_DIR = Path(__file__).resolve().parent
if str(_XDRGEN_DIR) not in sys.path:
sys.path.insert(0, str(_XDRGEN_DIR))
from subcmds import definitions
from subcmds import declarations
from subcmds import lint
from subcmds import source
sys.path.insert(1, "@pythondir@")
def main() -> int:
"""Parse command-line options"""
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
description="Convert an XDR specification to Linux kernel source code",
epilog="""\
Copyright (c) 2024 Oracle and/or its affiliates.
License GPLv2: <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>
This is free software. You are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.""",
)
parser.add_argument(
"--version",
help="Display the version of this tool",
action="version",
version=__version__,
)
subcommands = parser.add_subparsers(title="Subcommands", required=True)
definitions_parser = subcommands.add_parser(
"definitions", help="Generate XDR definitions"
)
definitions_parser.add_argument(
"--annotate",
action="store_true",
default=False,
help="Add annotation comments",
)
definitions_parser.add_argument(
"--language",
action="store_true",
default="C",
help="Output language",
)
definitions_parser.add_argument(
"--peer",
choices=["server", "client",],
default="server",
help="Generate header code for client or server side",
type=str,
Annotation
- Atlas domain: Support Tooling And Documentation / tools.
- Implementation status: atlas-only.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.