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.

Dependency Surface

Detected Declarations

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

Implementation Notes