fs/lockd/nlm4xdr_gen.c
Source file repositories/reference/linux-study-clean/fs/lockd/nlm4xdr_gen.c
File Facts
- System
- Linux kernel
- Corpus path
fs/lockd/nlm4xdr_gen.c- Extension
.c- Size
- 18902 bytes
- Lines
- 725
- Domain
- Core OS
- Bucket
- VFS And Filesystem Core
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/sunrpc/svc.hnlm4xdr_gen.h
Detected Declarations
function xdrgen_decode_netobjfunction xdrgen_decode_fsh4_modefunction xdrgen_decode_fsh4_accessfunction xdrgen_decode_uint64function xdrgen_decode_int64function xdrgen_decode_uint32function xdrgen_decode_int32function xdrgen_decode_nlm4_statsfunction xdrgen_decode_nlm4_holderfunction xdrgen_decode_nlm4_testrplyfunction xdrgen_decode_nlm4_statfunction xdrgen_decode_nlm4_resfunction xdrgen_decode_nlm4_testresfunction xdrgen_decode_nlm4_lockfunction xdrgen_decode_nlm4_lockargsfunction xdrgen_decode_nlm4_cancargsfunction xdrgen_decode_nlm4_testargsfunction xdrgen_decode_nlm4_unlockargsfunction xdrgen_decode_nlm4_sharefunction xdrgen_decode_nlm4_shareargsfunction xdrgen_decode_nlm4_shareresfunction xdrgen_decode_nlm4_notifyfunction xdrgen_decode_nlm4_notifyargsfunction nlm4_svc_decode_voidfunction nlm4_svc_decode_nlm4_testargsfunction nlm4_svc_decode_nlm4_lockargsfunction nlm4_svc_decode_nlm4_cancargsfunction nlm4_svc_decode_nlm4_unlockargsfunction nlm4_svc_decode_nlm4_testresfunction nlm4_svc_decode_nlm4_resfunction nlm4_svc_decode_nlm4_notifyargsfunction nlm4_svc_decode_nlm4_shareargsfunction nlm4_svc_decode_nlm4_notifyfunction xdrgen_encode_netobjfunction xdrgen_encode_fsh4_modefunction xdrgen_encode_fsh4_accessfunction xdrgen_encode_uint64function xdrgen_encode_int64function xdrgen_encode_uint32function xdrgen_encode_int32function xdrgen_encode_nlm4_statsfunction xdrgen_encode_nlm4_holderfunction xdrgen_encode_nlm4_testrplyfunction xdrgen_encode_nlm4_statfunction xdrgen_encode_nlm4_resfunction xdrgen_encode_nlm4_testresfunction xdrgen_encode_nlm4_lockfunction xdrgen_encode_nlm4_lockargs
Annotated Snippet
// SPDX-License-Identifier: GPL-2.0
// Generated by xdrgen. Manual edits will be lost.
// XDR specification file: ../../Documentation/sunrpc/xdr/nlm4.x
// XDR specification modification time: Thu Dec 25 13:10:19 2025
#include <linux/sunrpc/svc.h>
#include "nlm4xdr_gen.h"
static bool __maybe_unused
xdrgen_decode_netobj(struct xdr_stream *xdr, netobj *ptr)
{
return xdrgen_decode_opaque(xdr, ptr, MAXNETOBJ_SZ);
}
static bool __maybe_unused
xdrgen_decode_fsh4_mode(struct xdr_stream *xdr, fsh4_mode *ptr)
{
u32 val;
if (xdr_stream_decode_u32(xdr, &val) < 0)
return false;
*ptr = val;
return true;
}
static bool __maybe_unused
xdrgen_decode_fsh4_access(struct xdr_stream *xdr, fsh4_access *ptr)
{
u32 val;
if (xdr_stream_decode_u32(xdr, &val) < 0)
return false;
*ptr = val;
return true;
}
static bool __maybe_unused
xdrgen_decode_uint64(struct xdr_stream *xdr, uint64 *ptr)
{
return xdrgen_decode_unsigned_hyper(xdr, ptr);
}
static bool __maybe_unused
xdrgen_decode_int64(struct xdr_stream *xdr, int64 *ptr)
{
return xdrgen_decode_hyper(xdr, ptr);
}
static bool __maybe_unused
xdrgen_decode_uint32(struct xdr_stream *xdr, uint32 *ptr)
{
return xdrgen_decode_unsigned_long(xdr, ptr);
}
static bool __maybe_unused
xdrgen_decode_int32(struct xdr_stream *xdr, int32 *ptr)
{
return xdrgen_decode_long(xdr, ptr);
}
static bool __maybe_unused
xdrgen_decode_nlm4_stats(struct xdr_stream *xdr, nlm4_stats *ptr)
{
return xdr_stream_decode_be32(xdr, ptr) == 0;
}
static bool __maybe_unused
xdrgen_decode_nlm4_holder(struct xdr_stream *xdr, struct nlm4_holder *ptr)
{
if (!xdrgen_decode_bool(xdr, &ptr->exclusive))
return false;
if (!xdrgen_decode_int32(xdr, &ptr->svid))
return false;
if (!xdrgen_decode_netobj(xdr, &ptr->oh))
return false;
if (!xdrgen_decode_uint64(xdr, &ptr->l_offset))
return false;
if (!xdrgen_decode_uint64(xdr, &ptr->l_len))
return false;
return true;
}
static bool __maybe_unused
xdrgen_decode_nlm4_testrply(struct xdr_stream *xdr, struct nlm4_testrply *ptr)
{
if (!xdrgen_decode_nlm4_stats(xdr, &ptr->stat))
return false;
switch (ptr->stat) {
case __constant_cpu_to_be32(NLM4_DENIED):
Annotation
- Immediate include surface: `linux/sunrpc/svc.h`, `nlm4xdr_gen.h`.
- Detected declarations: `function xdrgen_decode_netobj`, `function xdrgen_decode_fsh4_mode`, `function xdrgen_decode_fsh4_access`, `function xdrgen_decode_uint64`, `function xdrgen_decode_int64`, `function xdrgen_decode_uint32`, `function xdrgen_decode_int32`, `function xdrgen_decode_nlm4_stats`, `function xdrgen_decode_nlm4_holder`, `function xdrgen_decode_nlm4_testrply`.
- Atlas domain: Core OS / VFS And Filesystem Core.
- Implementation status: source implementation candidate.
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.