Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/fs/nfsd/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 7 kB image not shown  

Quelle  xdr3.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * XDR types for NFSv3 in nfsd.
 *
 * Copyright (C) 1996-1998, Olaf Kirch <okir@monad.swb.de>
 */


#ifndef _LINUX_NFSD_XDR3_H
#define _LINUX_NFSD_XDR3_H

#include "xdr.h"

struct nfsd3_sattrargs {
 struct svc_fh  fh;
 struct iattr  attrs;
 int   check_guard;
 struct timespec64 guardtime;
};

struct nfsd3_diropargs {
 struct svc_fh  fh;
 char *   name;
 unsigned int  len;
};

struct nfsd3_accessargs {
 struct svc_fh  fh;
 __u32   access;
};

struct nfsd3_readargs {
 struct svc_fh  fh;
 __u64   offset;
 __u32   count;
};

struct nfsd3_writeargs {
 svc_fh   fh;
 __u64   offset;
 __u32   count;
 int   stable;
 __u32   len;
 struct xdr_buf  payload;
};

struct nfsd3_createargs {
 struct svc_fh  fh;
 char *   name;
 unsigned int  len;
 int   createmode;
 struct iattr  attrs;
 __be32 *  verf;
};

struct nfsd3_mknodargs {
 struct svc_fh  fh;
 char *   name;
 unsigned int  len;
 __u32   ftype;
 __u32   major, minor;
 struct iattr  attrs;
};

struct nfsd3_renameargs {
 struct svc_fh  ffh;
 char *   fname;
 unsigned int  flen;
 struct svc_fh  tfh;
 char *   tname;
 unsigned int  tlen;
};

struct nfsd3_linkargs {
 struct svc_fh  ffh;
 struct svc_fh  tfh;
 char *   tname;
 unsigned int  tlen;
};

struct nfsd3_symlinkargs {
 struct svc_fh  ffh;
 char *   fname;
 unsigned int  flen;
 char *   tname;
 unsigned int  tlen;
 struct iattr  attrs;
 struct kvec  first;
};

struct nfsd3_readdirargs {
 struct svc_fh  fh;
 __u64   cookie;
 __u32   count;
 __be32 *  verf;
};

struct nfsd3_commitargs {
 struct svc_fh  fh;
 __u64   offset;
 __u32   count;
};

struct nfsd3_getaclargs {
 struct svc_fh  fh;
 __u32   mask;
};

struct posix_acl;
struct nfsd3_setaclargs {
 struct svc_fh  fh;
 __u32   mask;
 struct posix_acl *acl_access;
 struct posix_acl *acl_default;
};

struct nfsd3_attrstat {
 __be32   status;
 struct svc_fh  fh;
 struct kstat            stat;
};

/* LOOKUP, CREATE, MKDIR, SYMLINK, MKNOD */
struct nfsd3_diropres  {
 __be32   status;
 struct svc_fh  dirfh;
 struct svc_fh  fh;
};

struct nfsd3_accessres {
 __be32   status;
 struct svc_fh  fh;
 __u32   access;
 struct kstat  stat;
};

struct nfsd3_readlinkres {
 __be32   status;
 struct svc_fh  fh;
 __u32   len;
 struct page  **pages;
};

struct nfsd3_readres {
 __be32   status;
 struct svc_fh  fh;
 unsigned long  count;
 __u32   eof;
 struct page  **pages;
};

struct nfsd3_writeres {
 __be32   status;
 struct svc_fh  fh;
 unsigned long  count;
 int   committed;
 __be32   verf[2];
};

struct nfsd3_renameres {
 __be32   status;
 struct svc_fh  ffh;
 struct svc_fh  tfh;
};

struct nfsd3_linkres {
 __be32   status;
 struct svc_fh  tfh;
 struct svc_fh  fh;
};

struct nfsd3_readdirres {
 /* Components of the reply */
 __be32   status;
 struct svc_fh  fh;
 __be32   verf[2];

 /* Used to encode the reply's entry list */
 struct xdr_stream xdr;
 struct xdr_buf  dirlist;
 struct svc_fh  scratch;
 struct readdir_cd common;
 unsigned int  cookie_offset;
 struct svc_rqst * rqstp;

};

struct nfsd3_fsstatres {
 __be32   status;
 struct kstatfs  stats;
 __u32   invarsec;
};

struct nfsd3_fsinfores {
 __be32   status;
 __u32   f_rtmax;
 __u32   f_rtpref;
 __u32   f_rtmult;
 __u32   f_wtmax;
 __u32   f_wtpref;
 __u32   f_wtmult;
 __u32   f_dtpref;
 __u64   f_maxfilesize;
 __u32   f_properties;
};

struct nfsd3_pathconfres {
 __be32   status;
 __u32   p_link_max;
 __u32   p_name_max;
 __u32   p_no_trunc;
 __u32   p_chown_restricted;
 __u32   p_case_insensitive;
 __u32   p_case_preserving;
};

struct nfsd3_commitres {
 __be32   status;
 struct svc_fh  fh;
 __be32   verf[2];
};

struct nfsd3_getaclres {
 __be32   status;
 struct svc_fh  fh;
 int   mask;
 struct posix_acl *acl_access;
 struct posix_acl *acl_default;
 struct kstat  stat;
};

/* dummy type for release */
struct nfsd3_fhandle_pair {
 __u32   dummy;
 struct svc_fh  fh1;
 struct svc_fh  fh2;
};

/*
 * Storage requirements for XDR arguments and results.
 */

union nfsd3_xdrstore {
 struct nfsd3_sattrargs  sattrargs;
 struct nfsd3_diropargs  diropargs;
 struct nfsd3_readargs  readargs;
 struct nfsd3_writeargs  writeargs;
 struct nfsd3_createargs  createargs;
 struct nfsd3_renameargs  renameargs;
 struct nfsd3_linkargs  linkargs;
 struct nfsd3_symlinkargs symlinkargs;
 struct nfsd3_readdirargs readdirargs;
 struct nfsd3_diropres   diropres;
 struct nfsd3_accessres  accessres;
 struct nfsd3_readlinkres readlinkres;
 struct nfsd3_readres  readres;
 struct nfsd3_writeres  writeres;
 struct nfsd3_renameres  renameres;
 struct nfsd3_linkres  linkres;
 struct nfsd3_readdirres  readdirres;
 struct nfsd3_fsstatres  fsstatres;
 struct nfsd3_fsinfores  fsinfores;
 struct nfsd3_pathconfres pathconfres;
 struct nfsd3_commitres  commitres;
 struct nfsd3_getaclres  getaclres;
};

#define NFS3_SVC_XDRSIZE  sizeof(union nfsd3_xdrstore)

bool nfs3svc_decode_fhandleargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_sattrargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_diropargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_accessargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_readargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_writeargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_createargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_mkdirargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_mknodargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_renameargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_linkargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_symlinkargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_readdirargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_readdirplusargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_decode_commitargs(struct svc_rqst *rqstp, struct xdr_stream *xdr);

bool nfs3svc_encode_getattrres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_wccstat(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_lookupres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_accessres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_readlinkres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_readres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_writeres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_createres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_renameres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_linkres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_readdirres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_fsstatres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_fsinfores(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_pathconfres(struct svc_rqst *rqstp, struct xdr_stream *xdr);
bool nfs3svc_encode_commitres(struct svc_rqst *rqstp, struct xdr_stream *xdr);

void nfs3svc_release_fhandle(struct svc_rqst *);
void nfs3svc_release_fhandle2(struct svc_rqst *);

void nfs3svc_encode_cookie3(struct nfsd3_readdirres *resp, u64 offset);
int nfs3svc_encode_entry3(void *data, const char *name, int namlen,
     loff_t offset, u64 ino, unsigned int d_type);
int nfs3svc_encode_entryplus3(void *data, const char *name, int namlen,
         loff_t offset, u64 ino, unsigned int d_type);
/* Helper functions for NFSv3 ACL code */
bool svcxdr_decode_nfs_fh3(struct xdr_stream *xdr, struct svc_fh *fhp);
bool svcxdr_encode_nfsstat3(struct xdr_stream *xdr, __be32 status);
bool svcxdr_encode_post_op_attr(struct svc_rqst *rqstp, struct xdr_stream *xdr,
    const struct svc_fh *fhp);

#endif /* _LINUX_NFSD_XDR3_H */

Messung V0.5
C=96 H=89 G=92

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.