linux/include/linux/nfs_xdr.h

/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _LINUX_NFS_XDR_H
#define _LINUX_NFS_XDR_H

#include <linux/nfsacl.h>
#include <linux/sunrpc/gss_api.h>

/*
 * To change the maximum rsize and wsize supported by the NFS client, adjust
 * NFS_MAX_FILE_IO_SIZE.  64KB is a typical maximum, but some servers can
 * support a megabyte or more.  The default is left at 4096 bytes, which is
 * reasonable for NFS over UDP.
 */
#define NFS_MAX_FILE_IO_SIZE
#define NFS_DEF_FILE_IO_SIZE
#define NFS_MIN_FILE_IO_SIZE

#define NFS_BITMASK_SZ

struct nfs4_string {};

struct nfs_fsid {};

/*
 * Helper for checking equality between 2 fsids.
 */
static inline int nfs_fsid_equal(const struct nfs_fsid *a, const struct nfs_fsid *b)
{}

struct nfs4_threshold {};

struct nfs_fattr {};

#define NFS_ATTR_FATTR_TYPE
#define NFS_ATTR_FATTR_MODE
#define NFS_ATTR_FATTR_NLINK
#define NFS_ATTR_FATTR_OWNER
#define NFS_ATTR_FATTR_GROUP
#define NFS_ATTR_FATTR_RDEV
#define NFS_ATTR_FATTR_SIZE
#define NFS_ATTR_FATTR_PRESIZE
#define NFS_ATTR_FATTR_BLOCKS_USED
#define NFS_ATTR_FATTR_SPACE_USED
#define NFS_ATTR_FATTR_FSID
#define NFS_ATTR_FATTR_FILEID
#define NFS_ATTR_FATTR_ATIME
#define NFS_ATTR_FATTR_MTIME
#define NFS_ATTR_FATTR_CTIME
#define NFS_ATTR_FATTR_PREMTIME
#define NFS_ATTR_FATTR_PRECTIME
#define NFS_ATTR_FATTR_CHANGE
#define NFS_ATTR_FATTR_PRECHANGE
#define NFS_ATTR_FATTR_V4_LOCATIONS
#define NFS_ATTR_FATTR_V4_REFERRAL
#define NFS_ATTR_FATTR_MOUNTPOINT
#define NFS_ATTR_FATTR_MOUNTED_ON_FILEID
#define NFS_ATTR_FATTR_OWNER_NAME
#define NFS_ATTR_FATTR_GROUP_NAME
#define NFS_ATTR_FATTR_V4_SECURITY_LABEL

#define NFS_ATTR_FATTR
#define NFS_ATTR_FATTR_V2
#define NFS_ATTR_FATTR_V3
#define NFS_ATTR_FATTR_V4

/*
 * Maximal number of supported layout drivers.
 */
#define NFS_MAX_LAYOUT_TYPES

/*
 * Info on the file system
 */
struct nfs_fsinfo {};

struct nfs_fsstat {};

struct nfs2_fsstat {};

struct nfs_pathconf {};

struct nfs4_change_info {};

struct nfs_seqid;

/* nfs41 sessions channel attributes */
struct nfs4_channel_attrs {};

struct nfs4_slot;
struct nfs4_sequence_args {};

struct nfs4_sequence_res {};

struct nfs4_get_lease_time_args {};

struct nfs4_get_lease_time_res {};

struct xdr_stream;
struct nfs4_xdr_opaque_data;

struct nfs4_xdr_opaque_ops {};

struct nfs4_xdr_opaque_data {};

#define PNFS_LAYOUT_MAXSIZE

struct nfs4_layoutdriver_data {};

struct pnfs_layout_range {};

struct nfs4_layoutget_args {};

struct nfs4_layoutget_res {};

struct nfs4_layoutget {};

struct nfs4_getdeviceinfo_args {};

struct nfs4_getdeviceinfo_res {};

struct nfs4_layoutcommit_args {};

struct nfs4_layoutcommit_res {};

struct nfs4_layoutcommit_data {};

struct nfs4_layoutreturn_args {};

struct nfs4_layoutreturn_res {};

struct nfs4_layoutreturn {};

#define PNFS_LAYOUTSTATS_MAXSIZE

struct nfs42_layoutstat_args;
struct nfs42_layoutstat_devinfo;
layoutstats_encode_t;

/* Per file per deviceid layoutstats */
struct nfs42_layoutstat_devinfo {};

struct nfs42_layoutstat_args {};

struct nfs42_layoutstat_res {};

struct nfs42_layoutstat_data {};

struct nfs42_device_error {};

struct nfs42_layout_error {};

#define NFS42_LAYOUTERROR_MAX

struct nfs42_layouterror_args {};

struct nfs42_layouterror_res {};

struct nfs42_layouterror_data {};

struct nfs42_clone_args {};

struct nfs42_clone_res {};

struct stateowner_id {};

struct nfs4_open_delegation {};

/*
 * Arguments to the open call.
 */
struct nfs_openargs {};

struct nfs_openres {};

/*
 * Arguments to the open_confirm call.
 */
struct nfs_open_confirmargs {};

struct nfs_open_confirmres {};

/*
 * Arguments to the close call.
 */
struct nfs_closeargs {};

struct nfs_closeres {};
/*
 *  * Arguments to the lock,lockt, and locku call.
 *   */
struct nfs_lowner {};

struct nfs_lock_args {};

struct nfs_lock_res {};

struct nfs_locku_args {};

struct nfs_locku_res {};

struct nfs_lockt_args {};

struct nfs_lockt_res {};

struct nfs_release_lockowner_args {};

struct nfs_release_lockowner_res {};

struct nfs4_delegattr {};

struct nfs4_delegreturnargs {};

struct nfs4_delegreturnres {};

/*
 * Arguments to the write call.
 */
struct nfs_write_verifier {};

struct nfs_writeverf {};

/*
 * Arguments shared by the read and write call.
 */
struct nfs_pgio_args {};

struct nfs_pgio_res {};

/*
 * Arguments to the commit call.
 */
struct nfs_commitargs {};

struct nfs_commitres {};

/*
 * Common arguments to the unlink call
 */
struct nfs_removeargs {};

struct nfs_removeres {};

/*
 * Common arguments to the rename call
 */
struct nfs_renameargs {};

struct nfs_renameres {};

/* parsed sec= options */
#define NFS_AUTH_INFO_MAX_FLAVORS
struct nfs_auth_info {};

/*
 * Argument struct for decode_entry function
 */
struct nfs_entry {};

struct nfs_readdir_arg {};

struct nfs_readdir_res {};

/*
 * The following types are for NFSv2 only.
 */
struct nfs_sattrargs {};

struct nfs_diropargs {};

struct nfs_createargs {};

struct nfs_setattrargs {};

enum nfs4_acl_type {};

struct nfs_setaclargs {};

struct nfs_setaclres {};

struct nfs_getaclargs {};

/* getxattr ACL interface flags */
#define NFS4_ACL_TRUNC
struct nfs_getaclres {};

struct nfs_setattrres {};

struct nfs_linkargs {};

struct nfs_symlinkargs {};

struct nfs_readdirargs {};

struct nfs3_getaclargs {};

struct nfs3_setaclargs {};

struct nfs_diropok {};

struct nfs_readlinkargs {};

struct nfs3_sattrargs {};

struct nfs3_diropargs {};

struct nfs3_accessargs {};

struct nfs3_createargs {};

struct nfs3_mkdirargs {};

struct nfs3_symlinkargs {};

struct nfs3_mknodargs {};

struct nfs3_linkargs {};

struct nfs3_readdirargs {};

struct nfs3_diropres {};

struct nfs3_accessres {};

struct nfs3_readlinkargs {};

struct nfs3_linkres {};

struct nfs3_readdirres {};

struct nfs3_getaclres {};

#if IS_ENABLED(CONFIG_NFS_V4)

clientid4;

struct nfs4_accessargs {};

struct nfs4_accessres {};

struct nfs4_create_arg {};

struct nfs4_create_res {};

struct nfs4_fsinfo_arg {};

struct nfs4_fsinfo_res {};

struct nfs4_getattr_arg {};

struct nfs4_getattr_res {};

struct nfs4_link_arg {};

struct nfs4_link_res {};

struct nfs4_lookup_arg {};

struct nfs4_lookup_res {};

struct nfs4_lookupp_arg {};

struct nfs4_lookupp_res {};

struct nfs4_lookup_root_arg {};

struct nfs4_pathconf_arg {};

struct nfs4_pathconf_res {};

struct nfs4_readdir_arg {};

struct nfs4_readdir_res {};

struct nfs4_readlink {};

struct nfs4_readlink_res {};

struct nfs4_setclientid {};

struct nfs4_setclientid_res {};

struct nfs4_statfs_arg {};

struct nfs4_statfs_res {};

struct nfs4_open_caps {};

struct nfs4_server_caps_arg {};

struct nfs4_server_caps_res {};

#define NFS4_PATHNAME_MAXCOMPONENTS
struct nfs4_pathname {};

#define NFS4_FS_LOCATION_MAXSERVERS
struct nfs4_fs_location {};

#define NFS4_FS_LOCATIONS_MAXENTRIES
struct nfs4_fs_locations {};

struct nfs4_fs_locations_arg {};

struct nfs4_fs_locations_res {};

struct nfs4_secinfo4 {};

struct nfs4_secinfo_flavors {};

struct nfs4_secinfo_arg {};

struct nfs4_secinfo_res {};

struct nfs4_fsid_present_arg {};

struct nfs4_fsid_present_res {};

#endif /* CONFIG_NFS_V4 */

struct nfstime4 {};

#ifdef CONFIG_NFS_V4_1

struct pnfs_commit_bucket {};

struct pnfs_commit_array {};

struct pnfs_ds_commit_info {};

struct nfs41_state_protection {};

struct nfs41_exchange_id_args {};

struct nfs41_server_owner {};

struct nfs41_server_scope {};

struct nfs41_impl_id {};

#define MAX_BIND_CONN_TO_SESSION_RETRIES
struct nfs41_bind_conn_to_session_args {};

struct nfs41_bind_conn_to_session_res {};

struct nfs41_exchange_id_res {};

struct nfs41_create_session_args {};

struct nfs41_create_session_res {};

struct nfs41_reclaim_complete_args {};

struct nfs41_reclaim_complete_res {};

#define SECINFO_STYLE_CURRENT_FH
#define SECINFO_STYLE_PARENT
struct nfs41_secinfo_no_name_args {};

struct nfs41_test_stateid_args {};

struct nfs41_test_stateid_res {};

struct nfs41_free_stateid_args {};

struct nfs41_free_stateid_res {};

#else

struct pnfs_ds_commit_info {
};

#endif /* CONFIG_NFS_V4_1 */

#ifdef CONFIG_NFS_V4_2
struct nfs42_falloc_args {};

struct nfs42_falloc_res {};

struct nfs42_copy_args {};

struct nfs42_write_res {};

struct nfs42_copy_res {};

struct nfs42_offload_status_args {};

struct nfs42_offload_status_res {};

struct nfs42_copy_notify_args {};

struct nfs42_copy_notify_res {};

struct nfs42_seek_args {};

struct nfs42_seek_res {};

struct nfs42_setxattrargs {};

struct nfs42_setxattrres {};

struct nfs42_getxattrargs {};

struct nfs42_getxattrres {};

struct nfs42_listxattrsargs {};

struct nfs42_listxattrsres {};

struct nfs42_removexattrargs {};

struct nfs42_removexattrres {};

#endif /* CONFIG_NFS_V4_2 */

struct nfs_page;

#define NFS_PAGEVEC_SIZE

struct nfs_page_array {};

/* used as flag bits in nfs_pgio_header */
enum {};

struct nfs_io_completion;
struct nfs_pgio_header {};

struct nfs_mds_commit_info {};

struct nfs_commit_info;
struct nfs_commit_data;
struct nfs_inode;
struct nfs_commit_completion_ops {};

struct nfs_commit_info {};

struct nfs_commit_data {};

struct nfs_pgio_completion_ops {};

struct nfs_unlinkdata {};

struct nfs_renamedata {};

struct nfs_access_entry;
struct nfs_client;
struct rpc_timeout;
struct nfs_subversion;
struct nfs_mount_info;
struct nfs_client_initdata;
struct nfs_pageio_descriptor;
struct fs_context;

/*
 * RPC procedure vector for NFSv2/NFSv3 demuxing
 */
struct nfs_rpc_ops {};

/*
 * Function vectors etc. for the NFS client
 */
extern const struct nfs_rpc_ops	nfs_v2_clientops;
extern const struct nfs_rpc_ops	nfs_v3_clientops;
extern const struct nfs_rpc_ops	nfs_v4_clientops;
extern const struct rpc_version nfs_version2;
extern const struct rpc_version nfs_version3;
extern const struct rpc_version nfs_version4;

extern const struct rpc_version nfsacl_version3;
extern const struct rpc_program nfsacl_program;

#endif