[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZvGGu59VMM18+31a@tissot.1015granger.net>
Date: Mon, 23 Sep 2024 11:18:19 -0400
From: Chuck Lever <chuck.lever@...cle.com>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-nfs@...r.kernel.org, linux-kernel@...r.kernel.org,
Jeff Layton <jlayton@...nel.org>
Subject: [GIT PULL] NFSD changes for the v6.12 merge window
Hi Linus-
A quick note about the rather fresh commit dates in this PR:
We had some additional changes queued up that needed to be dropped
because their defect rate was not going down as fast as I would like
prior to -rc1, especially considering maintainer travel plans. Those
changes will be rescheduled for v6.13.
The commits included here have been in linux-next for weeks and pass
our NFSD CI tests.
--- cut here ---
The following changes since commit 431c1646e1f86b949fa3685efc50b660a364c2b6:
Linux 6.11-rc6 (2024-09-01 19:46:02 +1200)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-6.12
for you to fetch changes up to 509abfc7a0ba66afa648e8216306acdc55ec54ed:
xdrgen: Prevent reordering of encoder and decoder functions (2024-09-20 19:31:41 -0400)
----------------------------------------------------------------
NFSD 6.12 Release Notes
Notable features of this release include:
- Pre-requisites for automatically determining the RPC server thread
count
- Clean-up and preparation for supporting LOCALIO, which will be
merged via the NFS client tree
- Enhancements and fixes to NFSv4.2 COPY offload
- A new Python-based tool for generating kernel SunRPC XDR encoding
and decoding functions, added as an aid for prototyping features
in protocols based on the Linux kernel's SunRPC implementation.
As always I am grateful to the NFSD contributors, reviewers,
testers, and bug reporters who participated during this cycle.
----------------------------------------------------------------
Chen Hanxiao (1):
NFS: trace: show TIMEDOUT instead of 0x6e
Chuck Lever (13):
svcrdma: Handle device removal outside of the CM event handler
NFSD: Fix NFSv4's PUTPUBFH operation
.mailmap: Add an entry for my work email address
NFSD: Async COPY result needs to return a write verifier
NFSD: Limit the number of concurrent async COPY operations
NFSD: Display copy stateids with conventional print formatting
NFSD: Record the callback stateid in copy tracepoints
NFSD: Clean up extra whitespace in trace_nfsd_copy_done
NFSD: Wrap async copy operations with trace points
tools: Add xdrgen
xdrgen: Fix return code checking in built-in XDR decoders
xdrgen: typedefs should use the built-in string and opaque functions
xdrgen: Prevent reordering of encoder and decoder functions
Guoqing Jiang (1):
nfsd: call cache_put if xdr_reserve_space returns NULL
Hongbo Li (1):
nfsd: use LIST_HEAD() to simplify code
Jeff Layton (7):
nfsd: remove unneeded EEXIST error check in nfsd_do_file_acquire
nfsd: fix refcount leak when file is unhashed after being found
nfsd: count nfsd_file allocations
nfsd: add more info to WARN_ON_ONCE on failed callbacks
nfsd: track the main opcode for callbacks
nfsd: add more nfsd_cb tracepoints
nfsd: fix initial getattr on write delegation
Li Lingfeng (5):
NFSD: remove redundant assignment operation
nfsd: map the EBADMSG to nfserr_io to avoid warning
nfsd: remove unused parameter of nfsd_file_mark_find_or_create
nfsd: fix some spelling errors in comments
nfsd: return -EINVAL when namelen is 0
Mark Grimes (1):
nfsd: Add quotes to client info 'callback address'
NeilBrown (22):
nfsd: don't EXPORT_SYMBOL nfsd4_ssc_init_umount_work()
lockd: discard nlmsvc_timeout
SUNRPC: make various functions static, or not exported.
nfsd: move nfsd_pool_stats_open into nfsctl.c
nfsd: don't allocate the versions array.
sunrpc: document locking rules for svc_exit_thread()
sunrpc: change sp_nrthreads from atomic_t to unsigned int.
sunrpc: don't take ->sv_lock when updating ->sv_nrthreads.
sunrpc: merge svc_rqst_alloc() into svc_prepare_thread()
sunrpc: allow svc threads to fail initialisation cleanly
nfsd: Don't pass all of rqst into rqst_exp_find()
nfsd: Pass 'cred' instead of 'rqstp' to some functions.
nfsd: use nfsd_v4client() in nfsd_breaker_owns_lease()
nfsd: further centralize protocol version checks.
nfsd: move V4ROOT version check to nfsd_set_fh_dentry()
nfsd: Move error code mapping to per-version proc code.
nfsd: be more systematic about selecting error codes for internal use.
nfsd: move error choice for incorrect object types to version-specific code.
nfsd: use clear_and_wake_up_bit()
nfsd: avoid races with wake_up_var()
nfsd: untangle code in nfsd4_deleg_getattr_conflict()
nfsd: fix delegation_blocked() to block correctly for at least 30 seconds
Sagi Grimberg (1):
nfsd: don't assume copy notify when preprocessing the stateid
Scott Mayhew (1):
nfsd: enforce upper limit for namelen in __cld_pipe_inprogress_downcall()
Thorsten Blum (1):
NFSD: Annotate struct pnfs_block_deviceaddr with __counted_by()
Yan Zhen (1):
sunrpc: xprtrdma: Use ERR_CAST() to return
Youzhong Yang (2):
nfsd: add list_head nf_gc to struct nfsd_file
nfsd: use system_unbound_wq for nfsd_file_gc_worker()
.mailmap | 3 +
fs/lockd/host.c | 2 +-
fs/lockd/svc.c | 9 +-
fs/nfs/callback.c | 2 +
fs/nfsd/auth.c | 14 +-
fs/nfsd/auth.h | 2 +-
fs/nfsd/blocklayout.c | 6 +-
fs/nfsd/blocklayoutxdr.h | 2 +-
fs/nfsd/cache.h | 2 +-
fs/nfsd/export.c | 37 ++--
fs/nfsd/export.h | 7 +-
fs/nfsd/filecache.c | 36 ++--
fs/nfsd/filecache.h | 1 +
fs/nfsd/netns.h | 7 +-
fs/nfsd/nfs3proc.c | 44 +++++
fs/nfsd/nfs4callback.c | 8 +-
fs/nfsd/nfs4idmap.c | 13 +-
fs/nfsd/nfs4layouts.c | 1 +
fs/nfsd/nfs4proc.c | 71 ++++----
fs/nfsd/nfs4recover.c | 13 +-
fs/nfsd/nfs4state.c | 225 ++++++++++++------------
fs/nfsd/nfs4xdr.c | 29 +++-
fs/nfsd/nfsctl.c | 19 +-
fs/nfsd/nfsd.h | 44 +++--
fs/nfsd/nfsfh.c | 58 +++----
fs/nfsd/nfsfh.h | 2 +
fs/nfsd/nfsproc.c | 49 +++++-
fs/nfsd/nfssvc.c | 126 +++-----------
fs/nfsd/state.h | 1 +
fs/nfsd/trace.h | 124 +++++++++++--
fs/nfsd/vfs.c | 45 +++--
fs/nfsd/vfs.h | 4 +-
fs/nfsd/xdr4.h | 1 +
include/linux/lockd/lockd.h | 2 +-
include/linux/nfs4.h | 17 +-
include/linux/sunrpc/svc.h | 44 +++--
include/linux/sunrpc/svc_rdma.h | 2 +
include/linux/sunrpc/svcauth.h | 1 -
include/linux/sunrpc/svcsock.h | 2 -
include/linux/sunrpc/xdrgen/_builtins.h | 243 ++++++++++++++++++++++++++
include/linux/sunrpc/xdrgen/_defs.h | 26 +++
include/trace/events/rpcrdma.h | 23 +++
include/trace/misc/nfs.h | 1 +
net/sunrpc/sunrpc.h | 4 +
net/sunrpc/svc.c | 130 +++++++-------
net/sunrpc/svc_xprt.c | 9 -
net/sunrpc/svcauth.c | 1 -
net/sunrpc/svcsock.c | 1 -
net/sunrpc/xprtrdma/svc_rdma_transport.c | 18 +-
tools/net/sunrpc/xdrgen/.gitignore | 2 +
tools/net/sunrpc/xdrgen/README | 244 ++++++++++++++++++++++++++
tools/net/sunrpc/xdrgen/__init__.py | 2 +
tools/net/sunrpc/xdrgen/generators/__init__.py | 113 ++++++++++++
tools/net/sunrpc/xdrgen/generators/constant.py | 20 +++
tools/net/sunrpc/xdrgen/generators/enum.py | 44 +++++
tools/net/sunrpc/xdrgen/generators/header_bottom.py | 33 ++++
tools/net/sunrpc/xdrgen/generators/header_top.py | 45 +++++
tools/net/sunrpc/xdrgen/generators/pointer.py | 272 +++++++++++++++++++++++++++++
tools/net/sunrpc/xdrgen/generators/program.py | 168 ++++++++++++++++++
tools/net/sunrpc/xdrgen/generators/source_top.py | 32 ++++
tools/net/sunrpc/xdrgen/generators/struct.py | 272 +++++++++++++++++++++++++++++
tools/net/sunrpc/xdrgen/generators/typedef.py | 255 +++++++++++++++++++++++++++
tools/net/sunrpc/xdrgen/generators/union.py | 243 ++++++++++++++++++++++++++
tools/net/sunrpc/xdrgen/grammars/xdr.lark | 119 +++++++++++++
tools/net/sunrpc/xdrgen/subcmds/__init__.py | 2 +
tools/net/sunrpc/xdrgen/subcmds/declarations.py | 76 ++++++++
tools/net/sunrpc/xdrgen/subcmds/definitions.py | 78 +++++++++
tools/net/sunrpc/xdrgen/subcmds/lint.py | 33 ++++
tools/net/sunrpc/xdrgen/subcmds/source.py | 118 +++++++++++++
tools/net/sunrpc/xdrgen/templates/C/constants/definition.j2 | 3 +
tools/net/sunrpc/xdrgen/templates/C/enum/declaration/close.j2 | 4 +
tools/net/sunrpc/xdrgen/templates/C/enum/decoder/enum.j2 | 19 ++
tools/net/sunrpc/xdrgen/templates/C/enum/definition/close.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/enum/definition/enumerator.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/enum/definition/open.j2 | 3 +
tools/net/sunrpc/xdrgen/templates/C/enum/encoder/enum.j2 | 14 ++
tools/net/sunrpc/xdrgen/templates/C/header_bottom/declaration/header.j2 | 3 +
tools/net/sunrpc/xdrgen/templates/C/header_bottom/definition/header.j2 | 3 +
tools/net/sunrpc/xdrgen/templates/C/header_top/declaration/header.j2 | 14 ++
tools/net/sunrpc/xdrgen/templates/C/header_top/definition/header.j2 | 10 ++
tools/net/sunrpc/xdrgen/templates/C/pointer/declaration/close.j2 | 4 +
tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/basic.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/close.j2 | 3 +
tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/fixed_length_array.j2 | 8 +
tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/fixed_length_opaque.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/open.j2 | 22 +++
tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/optional_data.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_array.j2 | 13 ++
tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_opaque.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_string.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/pointer/definition/basic.j2 | 5 +
tools/net/sunrpc/xdrgen/templates/C/pointer/definition/close.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/pointer/definition/fixed_length_array.j2 | 5 +
tools/net/sunrpc/xdrgen/templates/C/pointer/definition/fixed_length_opaque.j2 | 5 +
tools/net/sunrpc/xdrgen/templates/C/pointer/definition/open.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/pointer/definition/optional_data.j2 | 5 +
tools/net/sunrpc/xdrgen/templates/C/pointer/definition/variable_length_array.j2 | 8 +
tools/net/sunrpc/xdrgen/templates/C/pointer/definition/variable_length_opaque.j2 | 5 +
tools/net/sunrpc/xdrgen/templates/C/pointer/definition/variable_length_string.j2 | 5 +
tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/basic.j2 | 10 ++
tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/close.j2 | 3 +
tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/fixed_length_array.j2 | 12 ++
tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/fixed_length_opaque.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/open.j2 | 20 +++
tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/optional_data.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/variable_length_array.j2 | 15 ++
tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/variable_length_opaque.j2 | 8 +
tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/variable_length_string.j2 | 8 +
tools/net/sunrpc/xdrgen/templates/C/program/declaration/argument.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/program/declaration/result.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/program/decoder/argument.j2 | 21 +++
tools/net/sunrpc/xdrgen/templates/C/program/decoder/result.j2 | 22 +++
tools/net/sunrpc/xdrgen/templates/C/program/definition/close.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/program/definition/open.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/program/definition/procedure.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/program/encoder/argument.j2 | 16 ++
tools/net/sunrpc/xdrgen/templates/C/program/encoder/result.j2 | 21 +++
tools/net/sunrpc/xdrgen/templates/C/source_top/client.j2 | 8 +
tools/net/sunrpc/xdrgen/templates/C/source_top/server.j2 | 8 +
tools/net/sunrpc/xdrgen/templates/C/struct/declaration/close.j2 | 4 +
tools/net/sunrpc/xdrgen/templates/C/struct/decoder/basic.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/struct/decoder/close.j2 | 3 +
tools/net/sunrpc/xdrgen/templates/C/struct/decoder/fixed_length_array.j2 | 8 +
tools/net/sunrpc/xdrgen/templates/C/struct/decoder/fixed_length_opaque.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/struct/decoder/open.j2 | 12 ++
tools/net/sunrpc/xdrgen/templates/C/struct/decoder/optional_data.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_array.j2 | 13 ++
tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_opaque.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_string.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/struct/definition/basic.j2 | 5 +
tools/net/sunrpc/xdrgen/templates/C/struct/definition/close.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/struct/definition/fixed_length_array.j2 | 5 +
tools/net/sunrpc/xdrgen/templates/C/struct/definition/fixed_length_opaque.j2 | 5 +
tools/net/sunrpc/xdrgen/templates/C/struct/definition/open.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/struct/definition/optional_data.j2 | 5 +
tools/net/sunrpc/xdrgen/templates/C/struct/definition/variable_length_array.j2 | 8 +
tools/net/sunrpc/xdrgen/templates/C/struct/definition/variable_length_opaque.j2 | 5 +
tools/net/sunrpc/xdrgen/templates/C/struct/definition/variable_length_string.j2 | 5 +
tools/net/sunrpc/xdrgen/templates/C/struct/encoder/basic.j2 | 10 ++
tools/net/sunrpc/xdrgen/templates/C/struct/encoder/close.j2 | 3 +
tools/net/sunrpc/xdrgen/templates/C/struct/encoder/fixed_length_array.j2 | 12 ++
tools/net/sunrpc/xdrgen/templates/C/struct/encoder/fixed_length_opaque.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/struct/encoder/open.j2 | 12 ++
tools/net/sunrpc/xdrgen/templates/C/struct/encoder/optional_data.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/struct/encoder/variable_length_array.j2 | 15 ++
tools/net/sunrpc/xdrgen/templates/C/struct/encoder/variable_length_opaque.j2 | 8 +
tools/net/sunrpc/xdrgen/templates/C/struct/encoder/variable_length_string.j2 | 8 +
tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/basic.j2 | 8 +
tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/fixed_length_array.j2 | 4 +
tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/fixed_length_opaque.j2 | 4 +
tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/variable_length_array.j2 | 4 +
tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/variable_length_opaque.j2 | 4 +
tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/variable_length_string.j2 | 4 +
tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/basic.j2 | 17 ++
tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/fixed_length_array.j2 | 25 +++
tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/fixed_length_opaque.j2 | 17 ++
tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/variable_length_array.j2 | 26 +++
tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/variable_length_opaque.j2 | 17 ++
tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/variable_length_string.j2 | 17 ++
tools/net/sunrpc/xdrgen/templates/C/typedef/definition/basic.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/typedef/definition/fixed_length_array.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/typedef/definition/fixed_length_opaque.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/typedef/definition/variable_length_array.j2 | 9 +
tools/net/sunrpc/xdrgen/templates/C/typedef/definition/variable_length_opaque.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/typedef/definition/variable_length_string.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/basic.j2 | 21 +++
tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/fixed_length_array.j2 | 25 +++
tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/fixed_length_opaque.j2 | 17 ++
tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/variable_length_array.j2 | 30 ++++
tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/variable_length_opaque.j2 | 17 ++
tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/variable_length_string.j2 | 17 ++
tools/net/sunrpc/xdrgen/templates/C/union/decoder/basic.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/union/decoder/break.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/union/decoder/case_spec.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/union/decoder/close.j2 | 4 +
tools/net/sunrpc/xdrgen/templates/C/union/decoder/default_spec.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/union/decoder/open.j2 | 12 ++
tools/net/sunrpc/xdrgen/templates/C/union/decoder/optional_data.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/union/decoder/switch_spec.j2 | 7 +
tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_array.j2 | 13 ++
tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_opaque.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_string.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/union/decoder/void.j2 | 3 +
tools/net/sunrpc/xdrgen/templates/C/union/definition/case_spec.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/union/definition/close.j2 | 8 +
tools/net/sunrpc/xdrgen/templates/C/union/definition/default_spec.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/union/definition/open.j2 | 6 +
tools/net/sunrpc/xdrgen/templates/C/union/definition/switch_spec.j2 | 3 +
tools/net/sunrpc/xdrgen/templates/C/union/encoder/basic.j2 | 10 ++
tools/net/sunrpc/xdrgen/templates/C/union/encoder/break.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/union/encoder/case_spec.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/union/encoder/close.j2 | 4 +
tools/net/sunrpc/xdrgen/templates/C/union/encoder/default_spec.j2 | 2 +
tools/net/sunrpc/xdrgen/templates/C/union/encoder/open.j2 | 12 ++
tools/net/sunrpc/xdrgen/templates/C/union/encoder/switch_spec.j2 | 7 +
tools/net/sunrpc/xdrgen/templates/C/union/encoder/void.j2 | 3 +
tools/net/sunrpc/xdrgen/tests/test.x | 36 ++++
tools/net/sunrpc/xdrgen/xdr_ast.py | 510 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
tools/net/sunrpc/xdrgen/xdr_parse.py | 36 ++++
tools/net/sunrpc/xdrgen/xdrgen | 132 ++++++++++++++
200 files changed, 4959 insertions(+), 499 deletions(-)
create mode 100644 include/linux/sunrpc/xdrgen/_builtins.h
create mode 100644 include/linux/sunrpc/xdrgen/_defs.h
create mode 100644 tools/net/sunrpc/xdrgen/.gitignore
create mode 100644 tools/net/sunrpc/xdrgen/README
create mode 100644 tools/net/sunrpc/xdrgen/__init__.py
create mode 100644 tools/net/sunrpc/xdrgen/generators/__init__.py
create mode 100644 tools/net/sunrpc/xdrgen/generators/constant.py
create mode 100644 tools/net/sunrpc/xdrgen/generators/enum.py
create mode 100644 tools/net/sunrpc/xdrgen/generators/header_bottom.py
create mode 100644 tools/net/sunrpc/xdrgen/generators/header_top.py
create mode 100644 tools/net/sunrpc/xdrgen/generators/pointer.py
create mode 100644 tools/net/sunrpc/xdrgen/generators/program.py
create mode 100644 tools/net/sunrpc/xdrgen/generators/source_top.py
create mode 100644 tools/net/sunrpc/xdrgen/generators/struct.py
create mode 100644 tools/net/sunrpc/xdrgen/generators/typedef.py
create mode 100644 tools/net/sunrpc/xdrgen/generators/union.py
create mode 100644 tools/net/sunrpc/xdrgen/grammars/xdr.lark
create mode 100644 tools/net/sunrpc/xdrgen/subcmds/__init__.py
create mode 100644 tools/net/sunrpc/xdrgen/subcmds/declarations.py
create mode 100644 tools/net/sunrpc/xdrgen/subcmds/definitions.py
create mode 100644 tools/net/sunrpc/xdrgen/subcmds/lint.py
create mode 100644 tools/net/sunrpc/xdrgen/subcmds/source.py
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/constants/definition.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/declaration/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/decoder/enum.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/definition/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/definition/enumerator.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/definition/open.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/enum/encoder/enum.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/header_bottom/declaration/header.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/header_bottom/definition/header.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/header_top/declaration/header.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/header_top/definition/header.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/declaration/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/basic.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/fixed_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/fixed_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/open.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/optional_data.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/decoder/variable_length_string.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/basic.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/fixed_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/fixed_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/open.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/optional_data.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/variable_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/variable_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/definition/variable_length_string.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/basic.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/fixed_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/fixed_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/open.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/optional_data.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/variable_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/variable_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/pointer/encoder/variable_length_string.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/declaration/argument.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/declaration/result.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/decoder/argument.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/decoder/result.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/definition/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/definition/open.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/definition/procedure.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/encoder/argument.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/program/encoder/result.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/source_top/client.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/source_top/server.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/declaration/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/basic.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/fixed_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/fixed_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/open.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/optional_data.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/decoder/variable_length_string.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/basic.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/fixed_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/fixed_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/open.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/optional_data.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/variable_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/variable_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/definition/variable_length_string.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/basic.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/fixed_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/fixed_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/open.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/optional_data.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/variable_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/variable_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/struct/encoder/variable_length_string.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/basic.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/fixed_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/fixed_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/variable_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/variable_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/declaration/variable_length_string.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/basic.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/fixed_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/fixed_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/variable_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/variable_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/decoder/variable_length_string.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/basic.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/fixed_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/fixed_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/variable_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/variable_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/definition/variable_length_string.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/basic.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/fixed_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/fixed_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/variable_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/variable_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/typedef/encoder/variable_length_string.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/basic.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/break.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/case_spec.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/default_spec.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/open.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/optional_data.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/switch_spec.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_array.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_opaque.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/variable_length_string.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/decoder/void.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/definition/case_spec.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/definition/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/definition/default_spec.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/definition/open.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/definition/switch_spec.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/basic.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/break.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/case_spec.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/close.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/default_spec.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/open.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/switch_spec.j2
create mode 100644 tools/net/sunrpc/xdrgen/templates/C/union/encoder/void.j2
create mode 100644 tools/net/sunrpc/xdrgen/tests/test.x
create mode 100644 tools/net/sunrpc/xdrgen/xdr_ast.py
create mode 100644 tools/net/sunrpc/xdrgen/xdr_parse.py
create mode 100755 tools/net/sunrpc/xdrgen/xdrgen
--
Chuck Lever
Powered by blists - more mailing lists