summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Norum <WENorum@lbl.gov>2006-06-20 00:36:26 +0000
committerEric Norum <WENorum@lbl.gov>2006-06-20 00:36:26 +0000
commit024cd91bb473a4777d3120a67805c8c08545d16a (patch)
treee074beaeadc3f84c35db951d954b60ffeca3dbb6
parent856b0f3fe1f11b8e7777c03406882e5a3ba65b97 (diff)
Track SLAC R1-3 changes.
-rw-r--r--rtemsNfs/ChangeLog5
-rw-r--r--rtemsNfs/proto/mount_prot.h182
-rw-r--r--rtemsNfs/proto/mount_prot_xdr.c138
-rw-r--r--rtemsNfs/proto/nfs_prot.h449
-rw-r--r--rtemsNfs/proto/nfs_prot_xdr.c887
-rw-r--r--rtemsNfs/src/Makefile2
-rw-r--r--rtemsNfs/src/rpcio.c14
7 files changed, 696 insertions, 981 deletions
diff --git a/rtemsNfs/ChangeLog b/rtemsNfs/ChangeLog
index 2bea5a4..c5d3a5b 100644
--- a/rtemsNfs/ChangeLog
+++ b/rtemsNfs/ChangeLog
@@ -1,3 +1,8 @@
+Changes since RTEMS-NFS 1.3_pre2:
+ RPCIOD:
+ - fix a problem with NFS server clusters (reply comes from an IP address
+ different from the destination of the request) by relaxing paranoia checks.
+
Changes since RTEMS-NFS 1.2:
NFS:
- replaced inet_aton -> inet_pton
diff --git a/rtemsNfs/proto/mount_prot.h b/rtemsNfs/proto/mount_prot.h
index f9ba450..1cde517 100644
--- a/rtemsNfs/proto/mount_prot.h
+++ b/rtemsNfs/proto/mount_prot.h
@@ -6,23 +6,18 @@
#ifndef _MOUNT_PROT_H_RPCGEN
#define _MOUNT_PROT_H_RPCGEN
-#define RPCGEN_VERSION 199506
-
#include <rpc/rpc.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define MNTPATHLEN 1024
#define MNTNAMLEN 255
#define FHSIZE 32
typedef char fhandle[FHSIZE];
-#ifdef __cplusplus
-extern "C" bool_t xdr_fhandle(XDR *, fhandle);
-#elif __STDC__
-extern bool_t xdr_fhandle(XDR *, fhandle);
-#else /* Old Style C */
-bool_t xdr_fhandle();
-#endif /* Old Style C */
-
struct fhstatus {
u_int fhs_status;
@@ -31,44 +26,12 @@ struct fhstatus {
} fhstatus_u;
};
typedef struct fhstatus fhstatus;
-#ifdef __cplusplus
-extern "C" bool_t xdr_fhstatus(XDR *, fhstatus*);
-#elif __STDC__
-extern bool_t xdr_fhstatus(XDR *, fhstatus*);
-#else /* Old Style C */
-bool_t xdr_fhstatus();
-#endif /* Old Style C */
-
typedef char *dirpath;
-#ifdef __cplusplus
-extern "C" bool_t xdr_dirpath(XDR *, dirpath*);
-#elif __STDC__
-extern bool_t xdr_dirpath(XDR *, dirpath*);
-#else /* Old Style C */
-bool_t xdr_dirpath();
-#endif /* Old Style C */
-
typedef char *name;
-#ifdef __cplusplus
-extern "C" bool_t xdr_name(XDR *, name*);
-#elif __STDC__
-extern bool_t xdr_name(XDR *, name*);
-#else /* Old Style C */
-bool_t xdr_name();
-#endif /* Old Style C */
-
typedef struct mountbody *mountlist;
-#ifdef __cplusplus
-extern "C" bool_t xdr_mountlist(XDR *, mountlist*);
-#elif __STDC__
-extern bool_t xdr_mountlist(XDR *, mountlist*);
-#else /* Old Style C */
-bool_t xdr_mountlist();
-#endif /* Old Style C */
-
struct mountbody {
name ml_hostname;
@@ -76,48 +39,16 @@ struct mountbody {
mountlist ml_next;
};
typedef struct mountbody mountbody;
-#ifdef __cplusplus
-extern "C" bool_t xdr_mountbody(XDR *, mountbody*);
-#elif __STDC__
-extern bool_t xdr_mountbody(XDR *, mountbody*);
-#else /* Old Style C */
-bool_t xdr_mountbody();
-#endif /* Old Style C */
-
typedef struct groupnode *groups;
-#ifdef __cplusplus
-extern "C" bool_t xdr_groups(XDR *, groups*);
-#elif __STDC__
-extern bool_t xdr_groups(XDR *, groups*);
-#else /* Old Style C */
-bool_t xdr_groups();
-#endif /* Old Style C */
-
struct groupnode {
name gr_name;
groups gr_next;
};
typedef struct groupnode groupnode;
-#ifdef __cplusplus
-extern "C" bool_t xdr_groupnode(XDR *, groupnode*);
-#elif __STDC__
-extern bool_t xdr_groupnode(XDR *, groupnode*);
-#else /* Old Style C */
-bool_t xdr_groupnode();
-#endif /* Old Style C */
-
typedef struct exportnode *exports;
-#ifdef __cplusplus
-extern "C" bool_t xdr_exports(XDR *, exports*);
-#elif __STDC__
-extern bool_t xdr_exports(XDR *, exports*);
-#else /* Old Style C */
-bool_t xdr_exports();
-#endif /* Old Style C */
-
struct exportnode {
dirpath ex_dir;
@@ -125,86 +56,89 @@ struct exportnode {
exports ex_next;
};
typedef struct exportnode exportnode;
-#ifdef __cplusplus
-extern "C" bool_t xdr_exportnode(XDR *, exportnode*);
-#elif __STDC__
-extern bool_t xdr_exportnode(XDR *, exportnode*);
-#else /* Old Style C */
-bool_t xdr_exportnode();
-#endif /* Old Style C */
-
-#define MOUNTPROG ((u_long)100005)
-#define MOUNTVERS ((u_long)1)
+#define MOUNTPROG 100005
+#define MOUNTVERS 1
-#ifdef __cplusplus
-#define MOUNTPROC_NULL ((u_long)0)
-extern "C" void * mountproc_null_1(void *, CLIENT *);
-extern "C" void * mountproc_null_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_MNT ((u_long)1)
-extern "C" fhstatus * mountproc_mnt_1(dirpath *, CLIENT *);
-extern "C" fhstatus * mountproc_mnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_DUMP ((u_long)2)
-extern "C" mountlist * mountproc_dump_1(void *, CLIENT *);
-extern "C" mountlist * mountproc_dump_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_UMNT ((u_long)3)
-extern "C" void * mountproc_umnt_1(dirpath *, CLIENT *);
-extern "C" void * mountproc_umnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_UMNTALL ((u_long)4)
-extern "C" void * mountproc_umntall_1(void *, CLIENT *);
-extern "C" void * mountproc_umntall_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORT ((u_long)5)
-extern "C" exports * mountproc_export_1(void *, CLIENT *);
-extern "C" exports * mountproc_export_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORTALL ((u_long)6)
-extern "C" exports * mountproc_exportall_1(void *, CLIENT *);
-extern "C" exports * mountproc_exportall_1_svc(void *, struct svc_req *);
-
-#elif __STDC__
-#define MOUNTPROC_NULL ((u_long)0)
+#if defined(__STDC__) || defined(__cplusplus)
+#define MOUNTPROC_NULL 0
extern void * mountproc_null_1(void *, CLIENT *);
extern void * mountproc_null_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_MNT ((u_long)1)
+#define MOUNTPROC_MNT 1
extern fhstatus * mountproc_mnt_1(dirpath *, CLIENT *);
extern fhstatus * mountproc_mnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_DUMP ((u_long)2)
+#define MOUNTPROC_DUMP 2
extern mountlist * mountproc_dump_1(void *, CLIENT *);
extern mountlist * mountproc_dump_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_UMNT ((u_long)3)
+#define MOUNTPROC_UMNT 3
extern void * mountproc_umnt_1(dirpath *, CLIENT *);
extern void * mountproc_umnt_1_svc(dirpath *, struct svc_req *);
-#define MOUNTPROC_UMNTALL ((u_long)4)
+#define MOUNTPROC_UMNTALL 4
extern void * mountproc_umntall_1(void *, CLIENT *);
extern void * mountproc_umntall_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORT ((u_long)5)
+#define MOUNTPROC_EXPORT 5
extern exports * mountproc_export_1(void *, CLIENT *);
extern exports * mountproc_export_1_svc(void *, struct svc_req *);
-#define MOUNTPROC_EXPORTALL ((u_long)6)
+#define MOUNTPROC_EXPORTALL 6
extern exports * mountproc_exportall_1(void *, CLIENT *);
extern exports * mountproc_exportall_1_svc(void *, struct svc_req *);
+extern int mountprog_1_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
-#else /* Old Style C */
-#define MOUNTPROC_NULL ((u_long)0)
+#else /* K&R C */
+#define MOUNTPROC_NULL 0
extern void * mountproc_null_1();
extern void * mountproc_null_1_svc();
-#define MOUNTPROC_MNT ((u_long)1)
+#define MOUNTPROC_MNT 1
extern fhstatus * mountproc_mnt_1();
extern fhstatus * mountproc_mnt_1_svc();
-#define MOUNTPROC_DUMP ((u_long)2)
+#define MOUNTPROC_DUMP 2
extern mountlist * mountproc_dump_1();
extern mountlist * mountproc_dump_1_svc();
-#define MOUNTPROC_UMNT ((u_long)3)
+#define MOUNTPROC_UMNT 3
extern void * mountproc_umnt_1();
extern void * mountproc_umnt_1_svc();
-#define MOUNTPROC_UMNTALL ((u_long)4)
+#define MOUNTPROC_UMNTALL 4
extern void * mountproc_umntall_1();
extern void * mountproc_umntall_1_svc();
-#define MOUNTPROC_EXPORT ((u_long)5)
+#define MOUNTPROC_EXPORT 5
extern exports * mountproc_export_1();
extern exports * mountproc_export_1_svc();
-#define MOUNTPROC_EXPORTALL ((u_long)6)
+#define MOUNTPROC_EXPORTALL 6
extern exports * mountproc_exportall_1();
extern exports * mountproc_exportall_1_svc();
-#endif /* Old Style C */
+extern int mountprog_1_freeresult ();
+#endif /* K&R C */
+
+/* the xdr functions */
+
+#if defined(__STDC__) || defined(__cplusplus)
+extern bool_t xdr_fhandle (XDR *, fhandle);
+extern bool_t xdr_fhstatus (XDR *, fhstatus*);
+extern bool_t xdr_dirpath (XDR *, dirpath*);
+extern bool_t xdr_name (XDR *, name*);
+extern bool_t xdr_mountlist (XDR *, mountlist*);
+extern bool_t xdr_mountbody (XDR *, mountbody*);
+extern bool_t xdr_groups (XDR *, groups*);
+extern bool_t xdr_groupnode (XDR *, groupnode*);
+extern bool_t xdr_exports (XDR *, exports*);
+extern bool_t xdr_exportnode (XDR *, exportnode*);
+
+#else /* K&R C */
+extern bool_t xdr_fhandle ();
+extern bool_t xdr_fhstatus ();
+extern bool_t xdr_dirpath ();
+extern bool_t xdr_name ();
+extern bool_t xdr_mountlist ();
+extern bool_t xdr_mountbody ();
+extern bool_t xdr_groups ();
+extern bool_t xdr_groupnode ();
+extern bool_t xdr_exports ();
+extern bool_t xdr_exportnode ();
+
+#endif /* K&R C */
+
+#ifdef __cplusplus
+}
+#endif
#endif /* !_MOUNT_PROT_H_RPCGEN */
diff --git a/rtemsNfs/proto/mount_prot_xdr.c b/rtemsNfs/proto/mount_prot_xdr.c
index 7d605bb..b83350b 100644
--- a/rtemsNfs/proto/mount_prot_xdr.c
+++ b/rtemsNfs/proto/mount_prot_xdr.c
@@ -6,129 +6,119 @@
#include "mount_prot.h"
bool_t
-xdr_fhandle(xdrs, objp)
- XDR *xdrs;
- fhandle objp;
+xdr_fhandle (XDR *xdrs, fhandle objp)
{
+ register int32_t *buf;
- if (!xdr_opaque(xdrs, objp, FHSIZE))
- return (FALSE);
- return (TRUE);
+ if (!xdr_opaque (xdrs, objp, FHSIZE))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_fhstatus(xdrs, objp)
- XDR *xdrs;
- fhstatus *objp;
+xdr_fhstatus (XDR *xdrs, fhstatus *objp)
{
+ register int32_t *buf;
- if (!xdr_u_int(xdrs, &objp->fhs_status))
- return (FALSE);
+ if (!xdr_u_int (xdrs, &objp->fhs_status))
+ return FALSE;
switch (objp->fhs_status) {
case 0:
- if (!xdr_fhandle(xdrs, objp->fhstatus_u.fhs_fhandle))
- return (FALSE);
+ if (!xdr_fhandle (xdrs, objp->fhstatus_u.fhs_fhandle))
+ return FALSE;
break;
default:
break;
}
- return (TRUE);
+ return TRUE;
}
bool_t
-xdr_dirpath(xdrs, objp)
- XDR *xdrs;
- dirpath *objp;
+xdr_dirpath (XDR *xdrs, dirpath *objp)
{
+ register int32_t *buf;
- if (!xdr_string(xdrs, objp, MNTPATHLEN))
- return (FALSE);
- return (TRUE);
+ if (!xdr_string (xdrs, objp, MNTPATHLEN))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_name(xdrs, objp)
- XDR *xdrs;
- name *objp;
+xdr_name (XDR *xdrs, name *objp)
{
+ register int32_t *buf;
- if (!xdr_string(xdrs, objp, MNTNAMLEN))
- return (FALSE);
- return (TRUE);
+ if (!xdr_string (xdrs, objp, MNTNAMLEN))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_mountlist(xdrs, objp)
- XDR *xdrs;
- mountlist *objp;
+xdr_mountlist (XDR *xdrs, mountlist *objp)
{
+ register int32_t *buf;
- if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct mountbody), (xdrproc_t)xdr_mountbody))
- return (FALSE);
- return (TRUE);
+ if (!xdr_pointer (xdrs, (char **)objp, sizeof (struct mountbody), (xdrproc_t) xdr_mountbody))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_mountbody(xdrs, objp)
- XDR *xdrs;
- mountbody *objp;
+xdr_mountbody (XDR *xdrs, mountbody *objp)
{
-
- if (!xdr_name(xdrs, &objp->ml_hostname))
- return (FALSE);
- if (!xdr_dirpath(xdrs, &objp->ml_directory))
- return (FALSE);
- if (!xdr_mountlist(xdrs, &objp->ml_next))
- return (FALSE);
- return (TRUE);
+ register int32_t *buf;
+
+ if (!xdr_name (xdrs, &objp->ml_hostname))
+ return FALSE;
+ if (!xdr_dirpath (xdrs, &objp->ml_directory))
+ return FALSE;
+ if (!xdr_mountlist (xdrs, &objp->ml_next))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_groups(xdrs, objp)
- XDR *xdrs;
- groups *objp;
+xdr_groups (XDR *xdrs, groups *objp)
{
+ register int32_t *buf;
- if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct groupnode), (xdrproc_t)xdr_groupnode))
- return (FALSE);
- return (TRUE);
+ if (!xdr_pointer (xdrs, (char **)objp, sizeof (struct groupnode), (xdrproc_t) xdr_groupnode))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_groupnode(xdrs, objp)
- XDR *xdrs;
- groupnode *objp;
+xdr_groupnode (XDR *xdrs, groupnode *objp)
{
+ register int32_t *buf;
- if (!xdr_name(xdrs, &objp->gr_name))
- return (FALSE);
- if (!xdr_groups(xdrs, &objp->gr_next))
- return (FALSE);
- return (TRUE);
+ if (!xdr_name (xdrs, &objp->gr_name))
+ return FALSE;
+ if (!xdr_groups (xdrs, &objp->gr_next))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_exports(xdrs, objp)
- XDR *xdrs;
- exports *objp;
+xdr_exports (XDR *xdrs, exports *objp)
{
+ register int32_t *buf;
- if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct exportnode), (xdrproc_t)xdr_exportnode))
- return (FALSE);
- return (TRUE);
+ if (!xdr_pointer (xdrs, (char **)objp, sizeof (struct exportnode), (xdrproc_t) xdr_exportnode))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_exportnode(xdrs, objp)
- XDR *xdrs;
- exportnode *objp;
+xdr_exportnode (XDR *xdrs, exportnode *objp)
{
-
- if (!xdr_dirpath(xdrs, &objp->ex_dir))
- return (FALSE);
- if (!xdr_groups(xdrs, &objp->ex_groups))
- return (FALSE);
- if (!xdr_exports(xdrs, &objp->ex_next))
- return (FALSE);
- return (TRUE);
+ register int32_t *buf;
+
+ if (!xdr_dirpath (xdrs, &objp->ex_dir))
+ return FALSE;
+ if (!xdr_groups (xdrs, &objp->ex_groups))
+ return FALSE;
+ if (!xdr_exports (xdrs, &objp->ex_next))
+ return FALSE;
+ return TRUE;
}
diff --git a/rtemsNfs/proto/nfs_prot.h b/rtemsNfs/proto/nfs_prot.h
index 83a8c40..de812db 100644
--- a/rtemsNfs/proto/nfs_prot.h
+++ b/rtemsNfs/proto/nfs_prot.h
@@ -6,10 +6,13 @@
#ifndef _NFS_PROT_H_RPCGEN
#define _NFS_PROT_H_RPCGEN
-#define RPCGEN_VERSION 199506
-
#include <rpc/rpc.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define NFS_PORT 2049
#define NFS_MAXDATA 8192
#define NFS_MAXPATHLEN 1024
@@ -47,14 +50,6 @@ enum nfsstat {
NFSERR_WFLUSH = 99,
};
typedef enum nfsstat nfsstat;
-#ifdef __cplusplus
-extern "C" bool_t xdr_nfsstat(XDR *, nfsstat*);
-#elif __STDC__
-extern bool_t xdr_nfsstat(XDR *, nfsstat*);
-#else /* Old Style C */
-bool_t xdr_nfsstat();
-#endif /* Old Style C */
-
enum ftype {
NFNON = 0,
@@ -68,41 +63,17 @@ enum ftype {
NFFIFO = 8,
};
typedef enum ftype ftype;
-#ifdef __cplusplus
-extern "C" bool_t xdr_ftype(XDR *, ftype*);
-#elif __STDC__
-extern bool_t xdr_ftype(XDR *, ftype*);
-#else /* Old Style C */
-bool_t xdr_ftype();
-#endif /* Old Style C */
-
struct nfs_fh {
char data[NFS_FHSIZE];
};
typedef struct nfs_fh nfs_fh;
-#ifdef __cplusplus
-extern "C" bool_t xdr_nfs_fh(XDR *, nfs_fh*);
-#elif __STDC__
-extern bool_t xdr_nfs_fh(XDR *, nfs_fh*);
-#else /* Old Style C */
-bool_t xdr_nfs_fh();
-#endif /* Old Style C */
-
struct nfstime {
u_int seconds;
u_int useconds;
};
typedef struct nfstime nfstime;
-#ifdef __cplusplus
-extern "C" bool_t xdr_nfstime(XDR *, nfstime*);
-#elif __STDC__
-extern bool_t xdr_nfstime(XDR *, nfstime*);
-#else /* Old Style C */
-bool_t xdr_nfstime();
-#endif /* Old Style C */
-
struct fattr {
ftype type;
@@ -121,14 +92,6 @@ struct fattr {
nfstime ctime;
};
typedef struct fattr fattr;
-#ifdef __cplusplus
-extern "C" bool_t xdr_fattr(XDR *, fattr*);
-#elif __STDC__
-extern bool_t xdr_fattr(XDR *, fattr*);
-#else /* Old Style C */
-bool_t xdr_fattr();
-#endif /* Old Style C */
-
struct sattr {
u_int mode;
@@ -139,34 +102,10 @@ struct sattr {
nfstime mtime;
};
typedef struct sattr sattr;
-#ifdef __cplusplus
-extern "C" bool_t xdr_sattr(XDR *, sattr*);
-#elif __STDC__
-extern bool_t xdr_sattr(XDR *, sattr*);
-#else /* Old Style C */
-bool_t xdr_sattr();
-#endif /* Old Style C */
-
typedef char *filename;
-#ifdef __cplusplus
-extern "C" bool_t xdr_filename(XDR *, filename*);
-#elif __STDC__
-extern bool_t xdr_filename(XDR *, filename*);
-#else /* Old Style C */
-bool_t xdr_filename();
-#endif /* Old Style C */
-
typedef char *nfspath;
-#ifdef __cplusplus
-extern "C" bool_t xdr_nfspath(XDR *, nfspath*);
-#elif __STDC__
-extern bool_t xdr_nfspath(XDR *, nfspath*);
-#else /* Old Style C */
-bool_t xdr_nfspath();
-#endif /* Old Style C */
-
struct attrstat {
nfsstat status;
@@ -175,56 +114,24 @@ struct attrstat {
} attrstat_u;
};
typedef struct attrstat attrstat;
-#ifdef __cplusplus
-extern "C" bool_t xdr_attrstat(XDR *, attrstat*);
-#elif __STDC__
-extern bool_t xdr_attrstat(XDR *, attrstat*);
-#else /* Old Style C */
-bool_t xdr_attrstat();
-#endif /* Old Style C */
-
struct sattrargs {
nfs_fh file;
sattr attributes;
};
typedef struct sattrargs sattrargs;
-#ifdef __cplusplus
-extern "C" bool_t xdr_sattrargs(XDR *, sattrargs*);
-#elif __STDC__
-extern bool_t xdr_sattrargs(XDR *, sattrargs*);
-#else /* Old Style C */
-bool_t xdr_sattrargs();
-#endif /* Old Style C */
-
struct diropargs {
nfs_fh dir;
filename name;
};
typedef struct diropargs diropargs;
-#ifdef __cplusplus
-extern "C" bool_t xdr_diropargs(XDR *, diropargs*);
-#elif __STDC__
-extern bool_t xdr_diropargs(XDR *, diropargs*);
-#else /* Old Style C */
-bool_t xdr_diropargs();
-#endif /* Old Style C */
-
struct diropokres {
nfs_fh file;
fattr attributes;
};
typedef struct diropokres diropokres;
-#ifdef __cplusplus
-extern "C" bool_t xdr_diropokres(XDR *, diropokres*);
-#elif __STDC__
-extern bool_t xdr_diropokres(XDR *, diropokres*);
-#else /* Old Style C */
-bool_t xdr_diropokres();
-#endif /* Old Style C */
-
struct diropres {
nfsstat status;
@@ -233,14 +140,6 @@ struct diropres {
} diropres_u;
};
typedef struct diropres diropres;
-#ifdef __cplusplus
-extern "C" bool_t xdr_diropres(XDR *, diropres*);
-#elif __STDC__
-extern bool_t xdr_diropres(XDR *, diropres*);
-#else /* Old Style C */
-bool_t xdr_diropres();
-#endif /* Old Style C */
-
struct readlinkres {
nfsstat status;
@@ -249,14 +148,6 @@ struct readlinkres {
} readlinkres_u;
};
typedef struct readlinkres readlinkres;
-#ifdef __cplusplus
-extern "C" bool_t xdr_readlinkres(XDR *, readlinkres*);
-#elif __STDC__
-extern bool_t xdr_readlinkres(XDR *, readlinkres*);
-#else /* Old Style C */
-bool_t xdr_readlinkres();
-#endif /* Old Style C */
-
struct readargs {
nfs_fh file;
@@ -265,14 +156,6 @@ struct readargs {
u_int totalcount;
};
typedef struct readargs readargs;
-#ifdef __cplusplus
-extern "C" bool_t xdr_readargs(XDR *, readargs*);
-#elif __STDC__
-extern bool_t xdr_readargs(XDR *, readargs*);
-#else /* Old Style C */
-bool_t xdr_readargs();
-#endif /* Old Style C */
-
struct readokres {
fattr attributes;
@@ -282,14 +165,6 @@ struct readokres {
} data;
};
typedef struct readokres readokres;
-#ifdef __cplusplus
-extern "C" bool_t xdr_readokres(XDR *, readokres*);
-#elif __STDC__
-extern bool_t xdr_readokres(XDR *, readokres*);
-#else /* Old Style C */
-bool_t xdr_readokres();
-#endif /* Old Style C */
-
struct readres {
nfsstat status;
@@ -298,14 +173,6 @@ struct readres {
} readres_u;
};
typedef struct readres readres;
-#ifdef __cplusplus
-extern "C" bool_t xdr_readres(XDR *, readres*);
-#elif __STDC__
-extern bool_t xdr_readres(XDR *, readres*);
-#else /* Old Style C */
-bool_t xdr_readres();
-#endif /* Old Style C */
-
struct writeargs {
nfs_fh file;
@@ -318,56 +185,24 @@ struct writeargs {
} data;
};
typedef struct writeargs writeargs;
-#ifdef __cplusplus
-extern "C" bool_t xdr_writeargs(XDR *, writeargs*);
-#elif __STDC__
-extern bool_t xdr_writeargs(XDR *, writeargs*);
-#else /* Old Style C */
-bool_t xdr_writeargs();
-#endif /* Old Style C */
-
struct createargs {
diropargs where;
sattr attributes;
};
typedef struct createargs createargs;
-#ifdef __cplusplus
-extern "C" bool_t xdr_createargs(XDR *, createargs*);
-#elif __STDC__
-extern bool_t xdr_createargs(XDR *, createargs*);
-#else /* Old Style C */
-bool_t xdr_createargs();
-#endif /* Old Style C */
-
struct renameargs {
diropargs from;
diropargs to;
};
typedef struct renameargs renameargs;
-#ifdef __cplusplus
-extern "C" bool_t xdr_renameargs(XDR *, renameargs*);
-#elif __STDC__
-extern bool_t xdr_renameargs(XDR *, renameargs*);
-#else /* Old Style C */
-bool_t xdr_renameargs();
-#endif /* Old Style C */
-
struct linkargs {
nfs_fh from;
diropargs to;
};
typedef struct linkargs linkargs;
-#ifdef __cplusplus
-extern "C" bool_t xdr_linkargs(XDR *, linkargs*);
-#elif __STDC__
-extern bool_t xdr_linkargs(XDR *, linkargs*);
-#else /* Old Style C */
-bool_t xdr_linkargs();
-#endif /* Old Style C */
-
struct symlinkargs {
diropargs from;
@@ -375,27 +210,11 @@ struct symlinkargs {
sattr attributes;
};
typedef struct symlinkargs symlinkargs;
-#ifdef __cplusplus
-extern "C" bool_t xdr_symlinkargs(XDR *, symlinkargs*);
-#elif __STDC__
-extern bool_t xdr_symlinkargs(XDR *, symlinkargs*);
-#else /* Old Style C */
-bool_t xdr_symlinkargs();
-#endif /* Old Style C */
-
struct nfscookie {
char data[NFS_COOKIESIZE];
};
typedef struct nfscookie nfscookie;
-#ifdef __cplusplus
-extern "C" bool_t xdr_nfscookie(XDR *, nfscookie*);
-#elif __STDC__
-extern bool_t xdr_nfscookie(XDR *, nfscookie*);
-#else /* Old Style C */
-bool_t xdr_nfscookie();
-#endif /* Old Style C */
-
struct readdirargs {
nfs_fh dir;
@@ -403,14 +222,6 @@ struct readdirargs {
u_int count;
};
typedef struct readdirargs readdirargs;
-#ifdef __cplusplus
-extern "C" bool_t xdr_readdirargs(XDR *, readdirargs*);
-#elif __STDC__
-extern bool_t xdr_readdirargs(XDR *, readdirargs*);
-#else /* Old Style C */
-bool_t xdr_readdirargs();
-#endif /* Old Style C */
-
struct entry {
u_int fileid;
@@ -419,28 +230,12 @@ struct entry {
struct entry *nextentry;
};
typedef struct entry entry;
-#ifdef __cplusplus
-extern "C" bool_t xdr_entry(XDR *, entry*);
-#elif __STDC__
-extern bool_t xdr_entry(XDR *, entry*);
-#else /* Old Style C */
-bool_t xdr_entry();
-#endif /* Old Style C */
-
struct dirlist {
entry *entries;
bool_t eof;
};
typedef struct dirlist dirlist;
-#ifdef __cplusplus
-extern "C" bool_t xdr_dirlist(XDR *, dirlist*);
-#elif __STDC__
-extern bool_t xdr_dirlist(XDR *, dirlist*);
-#else /* Old Style C */
-bool_t xdr_dirlist();
-#endif /* Old Style C */
-
struct readdirres {
nfsstat status;
@@ -449,14 +244,6 @@ struct readdirres {
} readdirres_u;
};
typedef struct readdirres readdirres;
-#ifdef __cplusplus
-extern "C" bool_t xdr_readdirres(XDR *, readdirres*);
-#elif __STDC__
-extern bool_t xdr_readdirres(XDR *, readdirres*);
-#else /* Old Style C */
-bool_t xdr_readdirres();
-#endif /* Old Style C */
-
struct statfsokres {
u_int tsize;
@@ -466,14 +253,6 @@ struct statfsokres {
u_int bavail;
};
typedef struct statfsokres statfsokres;
-#ifdef __cplusplus
-extern "C" bool_t xdr_statfsokres(XDR *, statfsokres*);
-#elif __STDC__
-extern bool_t xdr_statfsokres(XDR *, statfsokres*);
-#else /* Old Style C */
-bool_t xdr_statfsokres();
-#endif /* Old Style C */
-
struct statfsres {
nfsstat status;
@@ -482,185 +261,193 @@ struct statfsres {
} statfsres_u;
};
typedef struct statfsres statfsres;
-#ifdef __cplusplus
-extern "C" bool_t xdr_statfsres(XDR *, statfsres*);
-#elif __STDC__
-extern bool_t xdr_statfsres(XDR *, statfsres*);
-#else /* Old Style C */
-bool_t xdr_statfsres();
-#endif /* Old Style C */
+#define NFS_PROGRAM 100003
+#define NFS_VERSION 2
-#define NFS_PROGRAM ((u_long)100003)
-#define NFS_VERSION ((u_long)2)
-
-#ifdef __cplusplus
-#define NFSPROC_NULL ((u_long)0)
-extern "C" void * nfsproc_null_2(void *, CLIENT *);
-extern "C" void * nfsproc_null_2_svc(void *, struct svc_req *);
-#define NFSPROC_GETATTR ((u_long)1)
-extern "C" attrstat * nfsproc_getattr_2(nfs_fh *, CLIENT *);
-extern "C" attrstat * nfsproc_getattr_2_svc(nfs_fh *, struct svc_req *);
-#define NFSPROC_SETATTR ((u_long)2)
-extern "C" attrstat * nfsproc_setattr_2(sattrargs *, CLIENT *);
-extern "C" attrstat * nfsproc_setattr_2_svc(sattrargs *, struct svc_req *);
-#define NFSPROC_ROOT ((u_long)3)
-extern "C" void * nfsproc_root_2(void *, CLIENT *);
-extern "C" void * nfsproc_root_2_svc(void *, struct svc_req *);
-#define NFSPROC_LOOKUP ((u_long)4)
-extern "C" diropres * nfsproc_lookup_2(diropargs *, CLIENT *);
-extern "C" diropres * nfsproc_lookup_2_svc(diropargs *, struct svc_req *);
-#define NFSPROC_READLINK ((u_long)5)
-extern "C" readlinkres * nfsproc_readlink_2(nfs_fh *, CLIENT *);
-extern "C" readlinkres * nfsproc_readlink_2_svc(nfs_fh *, struct svc_req *);
-#define NFSPROC_READ ((u_long)6)
-extern "C" readres * nfsproc_read_2(readargs *, CLIENT *);
-extern "C" readres * nfsproc_read_2_svc(readargs *, struct svc_req *);
-#define NFSPROC_WRITECACHE ((u_long)7)
-extern "C" void * nfsproc_writecache_2(void *, CLIENT *);
-extern "C" void * nfsproc_writecache_2_svc(void *, struct svc_req *);
-#define NFSPROC_WRITE ((u_long)8)
-extern "C" attrstat * nfsproc_write_2(writeargs *, CLIENT *);
-extern "C" attrstat * nfsproc_write_2_svc(writeargs *, struct svc_req *);
-#define NFSPROC_CREATE ((u_long)9)
-extern "C" diropres * nfsproc_create_2(createargs *, CLIENT *);
-extern "C" diropres * nfsproc_create_2_svc(createargs *, struct svc_req *);
-#define NFSPROC_REMOVE ((u_long)10)
-extern "C" nfsstat * nfsproc_remove_2(diropargs *, CLIENT *);
-extern "C" nfsstat * nfsproc_remove_2_svc(diropargs *, struct svc_req *);
-#define NFSPROC_RENAME ((u_long)11)
-extern "C" nfsstat * nfsproc_rename_2(renameargs *, CLIENT *);
-extern "C" nfsstat * nfsproc_rename_2_svc(renameargs *, struct svc_req *);
-#define NFSPROC_LINK ((u_long)12)
-extern "C" nfsstat * nfsproc_link_2(linkargs *, CLIENT *);
-extern "C" nfsstat * nfsproc_link_2_svc(linkargs *, struct svc_req *);
-#define NFSPROC_SYMLINK ((u_long)13)
-extern "C" nfsstat * nfsproc_symlink_2(symlinkargs *, CLIENT *);
-extern "C" nfsstat * nfsproc_symlink_2_svc(symlinkargs *, struct svc_req *);
-#define NFSPROC_MKDIR ((u_long)14)
-extern "C" diropres * nfsproc_mkdir_2(createargs *, CLIENT *);
-extern "C" diropres * nfsproc_mkdir_2_svc(createargs *, struct svc_req *);
-#define NFSPROC_RMDIR ((u_long)15)
-extern "C" nfsstat * nfsproc_rmdir_2(diropargs *, CLIENT *);
-extern "C" nfsstat * nfsproc_rmdir_2_svc(diropargs *, struct svc_req *);
-#define NFSPROC_READDIR ((u_long)16)
-extern "C" readdirres * nfsproc_readdir_2(readdirargs *, CLIENT *);
-extern "C" readdirres * nfsproc_readdir_2_svc(readdirargs *, struct svc_req *);
-#define NFSPROC_STATFS ((u_long)17)
-extern "C" statfsres * nfsproc_statfs_2(nfs_fh *, CLIENT *);
-extern "C" statfsres * nfsproc_statfs_2_svc(nfs_fh *, struct svc_req *);
-
-#elif __STDC__
-#define NFSPROC_NULL ((u_long)0)
+#if defined(__STDC__) || defined(__cplusplus)
+#define NFSPROC_NULL 0
extern void * nfsproc_null_2(void *, CLIENT *);
extern void * nfsproc_null_2_svc(void *, struct svc_req *);
-#define NFSPROC_GETATTR ((u_long)1)
+#define NFSPROC_GETATTR 1
extern attrstat * nfsproc_getattr_2(nfs_fh *, CLIENT *);
extern attrstat * nfsproc_getattr_2_svc(nfs_fh *, struct svc_req *);
-#define NFSPROC_SETATTR ((u_long)2)
+#define NFSPROC_SETATTR 2
extern attrstat * nfsproc_setattr_2(sattrargs *, CLIENT *);
extern attrstat * nfsproc_setattr_2_svc(sattrargs *, struct svc_req *);
-#define NFSPROC_ROOT ((u_long)3)
+#define NFSPROC_ROOT 3
extern void * nfsproc_root_2(void *, CLIENT *);
extern void * nfsproc_root_2_svc(void *, struct svc_req *);
-#define NFSPROC_LOOKUP ((u_long)4)
+#define NFSPROC_LOOKUP 4
extern diropres * nfsproc_lookup_2(diropargs *, CLIENT *);
extern diropres * nfsproc_lookup_2_svc(diropargs *, struct svc_req *);
-#define NFSPROC_READLINK ((u_long)5)
+#define NFSPROC_READLINK 5
extern readlinkres * nfsproc_readlink_2(nfs_fh *, CLIENT *);
extern readlinkres * nfsproc_readlink_2_svc(nfs_fh *, struct svc_req *);
-#define NFSPROC_READ ((u_long)6)
+#define NFSPROC_READ 6
extern readres * nfsproc_read_2(readargs *, CLIENT *);
extern readres * nfsproc_read_2_svc(readargs *, struct svc_req *);
-#define NFSPROC_WRITECACHE ((u_long)7)
+#define NFSPROC_WRITECACHE 7
extern void * nfsproc_writecache_2(void *, CLIENT *);
extern void * nfsproc_writecache_2_svc(void *, struct svc_req *);
-#define NFSPROC_WRITE ((u_long)8)
+#define NFSPROC_WRITE 8
extern attrstat * nfsproc_write_2(writeargs *, CLIENT *);
extern attrstat * nfsproc_write_2_svc(writeargs *, struct svc_req *);
-#define NFSPROC_CREATE ((u_long)9)
+#define NFSPROC_CREATE 9
extern diropres * nfsproc_create_2(createargs *, CLIENT *);
extern diropres * nfsproc_create_2_svc(createargs *, struct svc_req *);
-#define NFSPROC_REMOVE ((u_long)10)
+#define NFSPROC_REMOVE 10
extern nfsstat * nfsproc_remove_2(diropargs *, CLIENT *);
extern nfsstat * nfsproc_remove_2_svc(diropargs *, struct svc_req *);
-#define NFSPROC_RENAME ((u_long)11)
+#define NFSPROC_RENAME 11
extern nfsstat * nfsproc_rename_2(renameargs *, CLIENT *);
extern nfsstat * nfsproc_rename_2_svc(renameargs *, struct svc_req *);
-#define NFSPROC_LINK ((u_long)12)
+#define NFSPROC_LINK 12
extern nfsstat * nfsproc_link_2(linkargs *, CLIENT *);
extern nfsstat * nfsproc_link_2_svc(linkargs *, struct svc_req *);
-#define NFSPROC_SYMLINK ((u_long)13)
+#define NFSPROC_SYMLINK 13
extern nfsstat * nfsproc_symlink_2(symlinkargs *, CLIENT *);
extern nfsstat * nfsproc_symlink_2_svc(symlinkargs *, struct svc_req *);
-#define NFSPROC_MKDIR ((u_long)14)
+#define NFSPROC_MKDIR 14
extern diropres * nfsproc_mkdir_2(createargs *, CLIENT *);
extern diropres * nfsproc_mkdir_2_svc(createargs *, struct svc_req *);
-#define NFSPROC_RMDIR ((u_long)15)
+#define NFSPROC_RMDIR 15
extern nfsstat * nfsproc_rmdir_2(diropargs *, CLIENT *);
extern nfsstat * nfsproc_rmdir_2_svc(diropargs *, struct svc_req *);
-#define NFSPROC_READDIR ((u_long)16)
+#define NFSPROC_READDIR 16
extern readdirres * nfsproc_readdir_2(readdirargs *, CLIENT *);
extern readdirres * nfsproc_readdir_2_svc(readdirargs *, struct svc_req *);
-#define NFSPROC_STATFS ((u_long)17)
+#define NFSPROC_STATFS 17
extern statfsres * nfsproc_statfs_2(nfs_fh *, CLIENT *);
extern statfsres * nfsproc_statfs_2_svc(nfs_fh *, struct svc_req *);
+extern int nfs_program_2_freeresult (SVCXPRT *, xdrproc_t, caddr_t);
-#else /* Old Style C */
-#define NFSPROC_NULL ((u_long)0)
+#else /* K&R C */
+#define NFSPROC_NULL 0
extern void * nfsproc_null_2();
extern void * nfsproc_null_2_svc();
-#define NFSPROC_GETATTR ((u_long)1)
+#define NFSPROC_GETATTR 1
extern attrstat * nfsproc_getattr_2();
extern attrstat * nfsproc_getattr_2_svc();
-#define NFSPROC_SETATTR ((u_long)2)
+#define NFSPROC_SETATTR 2
extern attrstat * nfsproc_setattr_2();
extern attrstat * nfsproc_setattr_2_svc();
-#define NFSPROC_ROOT ((u_long)3)
+#define NFSPROC_ROOT 3
extern void * nfsproc_root_2();
extern void * nfsproc_root_2_svc();
-#define NFSPROC_LOOKUP ((u_long)4)
+#define NFSPROC_LOOKUP 4
extern diropres * nfsproc_lookup_2();
extern diropres * nfsproc_lookup_2_svc();
-#define NFSPROC_READLINK ((u_long)5)
+#define NFSPROC_READLINK 5
extern readlinkres * nfsproc_readlink_2();
extern readlinkres * nfsproc_readlink_2_svc();
-#define NFSPROC_READ ((u_long)6)
+#define NFSPROC_READ 6
extern readres * nfsproc_read_2();
extern readres * nfsproc_read_2_svc();
-#define NFSPROC_WRITECACHE ((u_long)7)
+#define NFSPROC_WRITECACHE 7
extern void * nfsproc_writecache_2();
extern void * nfsproc_writecache_2_svc();
-#define NFSPROC_WRITE ((u_long)8)
+#define NFSPROC_WRITE 8
extern attrstat * nfsproc_write_2();
extern attrstat * nfsproc_write_2_svc();
-#define NFSPROC_CREATE ((u_long)9)
+#define NFSPROC_CREATE 9
extern diropres * nfsproc_create_2();
extern diropres * nfsproc_create_2_svc();
-#define NFSPROC_REMOVE ((u_long)10)
+#define NFSPROC_REMOVE 10
extern nfsstat * nfsproc_remove_2();
extern nfsstat * nfsproc_remove_2_svc();
-#define NFSPROC_RENAME ((u_long)11)
+#define NFSPROC_RENAME 11
extern nfsstat * nfsproc_rename_2();
extern nfsstat * nfsproc_rename_2_svc();
-#define NFSPROC_LINK ((u_long)12)
+#define NFSPROC_LINK 12
extern nfsstat * nfsproc_link_2();
extern nfsstat * nfsproc_link_2_svc();
-#define NFSPROC_SYMLINK ((u_long)13)
+#define NFSPROC_SYMLINK 13
extern nfsstat * nfsproc_symlink_2();
extern nfsstat * nfsproc_symlink_2_svc();
-#define NFSPROC_MKDIR ((u_long)14)
+#define NFSPROC_MKDIR 14
extern diropres * nfsproc_mkdir_2();
extern diropres * nfsproc_mkdir_2_svc();
-#define NFSPROC_RMDIR ((u_long)15)
+#define NFSPROC_RMDIR 15
extern nfsstat * nfsproc_rmdir_2();
extern nfsstat * nfsproc_rmdir_2_svc();
-#define NFSPROC_READDIR ((u_long)16)
+#define NFSPROC_READDIR 16
extern readdirres * nfsproc_readdir_2();
extern readdirres * nfsproc_readdir_2_svc();
-#define NFSPROC_STATFS ((u_long)17)
+#define NFSPROC_STATFS 17
extern statfsres * nfsproc_statfs_2();
extern statfsres * nfsproc_statfs_2_svc();
-#endif /* Old Style C */
+extern int nfs_program_2_freeresult ();
+#endif /* K&R C */
+
+/* the xdr functions */
+
+#if defined(__STDC__) || defined(__cplusplus)
+extern bool_t xdr_nfsstat (XDR *, nfsstat*);
+extern bool_t xdr_ftype (XDR *, ftype*);
+extern bool_t xdr_nfs_fh (XDR *, nfs_fh*);
+extern bool_t xdr_nfstime (XDR *, nfstime*);
+extern bool_t xdr_fattr (XDR *, fattr*);
+extern bool_t xdr_sattr (XDR *, sattr*);
+extern bool_t xdr_filename (XDR *, filename*);
+extern bool_t xdr_nfspath (XDR *, nfspath*);
+extern bool_t xdr_attrstat (XDR *, attrstat*);
+extern bool_t xdr_sattrargs (XDR *, sattrargs*);
+extern bool_t xdr_diropargs (XDR *, diropargs*);
+extern bool_t xdr_diropokres (XDR *, diropokres*);
+extern bool_t xdr_diropres (XDR *, diropres*);
+extern bool_t xdr_readlinkres (XDR *, readlinkres*);
+extern bool_t xdr_readargs (XDR *, readargs*);
+extern bool_t xdr_readokres (XDR *, readokres*);
+extern bool_t xdr_readres (XDR *, readres*);
+extern bool_t xdr_writeargs (XDR *, writeargs*);
+extern bool_t xdr_createargs (XDR *, createargs*);
+extern bool_t xdr_renameargs (XDR *, renameargs*);
+extern bool_t xdr_linkargs (XDR *, linkargs*);
+extern bool_t xdr_symlinkargs (XDR *, symlinkargs*);
+extern bool_t xdr_nfscookie (XDR *, nfscookie*);
+extern bool_t xdr_readdirargs (XDR *, readdirargs*);
+extern bool_t xdr_entry (XDR *, entry*);
+extern bool_t xdr_dirlist (XDR *, dirlist*);
+extern bool_t xdr_readdirres (XDR *, readdirres*);
+extern bool_t xdr_statfsokres (XDR *, statfsokres*);
+extern bool_t xdr_statfsres (XDR *, statfsres*);
+
+#else /* K&R C */
+extern bool_t xdr_nfsstat ();
+extern bool_t xdr_ftype ();
+extern bool_t xdr_nfs_fh ();
+extern bool_t xdr_nfstime ();
+extern bool_t xdr_fattr ();
+extern bool_t xdr_sattr ();
+extern bool_t xdr_filename ();
+extern bool_t xdr_nfspath ();
+extern bool_t xdr_attrstat ();
+extern bool_t xdr_sattrargs ();
+extern bool_t xdr_diropargs ();
+extern bool_t xdr_diropokres ();
+extern bool_t xdr_diropres ();
+extern bool_t xdr_readlinkres ();
+extern bool_t xdr_readargs ();
+extern bool_t xdr_readokres ();
+extern bool_t xdr_readres ();
+extern bool_t xdr_writeargs ();
+extern bool_t xdr_createargs ();
+extern bool_t xdr_renameargs ();
+extern bool_t xdr_linkargs ();
+extern bool_t xdr_symlinkargs ();
+extern bool_t xdr_nfscookie ();
+extern bool_t xdr_readdirargs ();
+extern bool_t xdr_entry ();
+extern bool_t xdr_dirlist ();
+extern bool_t xdr_readdirres ();
+extern bool_t xdr_statfsokres ();
+extern bool_t xdr_statfsres ();
+
+#endif /* K&R C */
+
+#ifdef __cplusplus
+}
+#endif
#endif /* !_NFS_PROT_H_RPCGEN */
diff --git a/rtemsNfs/proto/nfs_prot_xdr.c b/rtemsNfs/proto/nfs_prot_xdr.c
index 97246a5..7e222ec 100644
--- a/rtemsNfs/proto/nfs_prot_xdr.c
+++ b/rtemsNfs/proto/nfs_prot_xdr.c
@@ -11,617 +11,603 @@ static char rcsid[] = "$Id$";
#endif /* not lint */
bool_t
-xdr_nfsstat(xdrs, objp)
- XDR *xdrs;
- nfsstat *objp;
+xdr_nfsstat (XDR *xdrs, nfsstat *objp)
{
+ register int32_t *buf;
- if (!xdr_enum(xdrs, (enum_t *)objp))
- return (FALSE);
- return (TRUE);
+ if (!xdr_enum (xdrs, (enum_t *) objp))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_ftype(xdrs, objp)
- XDR *xdrs;
- ftype *objp;
+xdr_ftype (XDR *xdrs, ftype *objp)
{
+ register int32_t *buf;
- if (!xdr_enum(xdrs, (enum_t *)objp))
- return (FALSE);
- return (TRUE);
+ if (!xdr_enum (xdrs, (enum_t *) objp))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_nfs_fh(xdrs, objp)
- XDR *xdrs;
- nfs_fh *objp;
+xdr_nfs_fh (XDR *xdrs, nfs_fh *objp)
{
+ register int32_t *buf;
- if (!xdr_opaque(xdrs, objp->data, NFS_FHSIZE))
- return (FALSE);
- return (TRUE);
+ int i;
+ if (!xdr_opaque (xdrs, objp->data, NFS_FHSIZE))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_nfstime(xdrs, objp)
- XDR *xdrs;
- nfstime *objp;
+xdr_nfstime (XDR *xdrs, nfstime *objp)
{
+ register int32_t *buf;
- if (!xdr_u_int(xdrs, &objp->seconds))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->useconds))
- return (FALSE);
- return (TRUE);
+ if (!xdr_u_int (xdrs, &objp->seconds))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->useconds))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_fattr(xdrs, objp)
- XDR *xdrs;
- fattr *objp;
+xdr_fattr (XDR *xdrs, fattr *objp)
{
- int32_t *buf;
+ register int32_t *buf;
+
if (xdrs->x_op == XDR_ENCODE) {
- if (!xdr_ftype(xdrs, &objp->type))
- return (FALSE);
- buf = (int32_t *)XDR_INLINE(xdrs, 10 * BYTES_PER_XDR_UNIT);
+ if (!xdr_ftype (xdrs, &objp->type))
+ return FALSE;
+ buf = XDR_INLINE (xdrs, 10 * BYTES_PER_XDR_UNIT);
if (buf == NULL) {
- if (!xdr_u_int(xdrs, &objp->mode))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->nlink))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->uid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->gid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->size))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->blocksize))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->rdev))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->blocks))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->fsid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->fileid))
- return (FALSE);
+ if (!xdr_u_int (xdrs, &objp->mode))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->nlink))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->uid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->gid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->size))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->blocksize))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->rdev))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->blocks))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->fsid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->fileid))
+ return FALSE;
+
} else {
- IXDR_PUT_U_LONG(buf, objp->mode);
- IXDR_PUT_U_LONG(buf, objp->nlink);
- IXDR_PUT_U_LONG(buf, objp->uid);
- IXDR_PUT_U_LONG(buf, objp->gid);
- IXDR_PUT_U_LONG(buf, objp->size);
- IXDR_PUT_U_LONG(buf, objp->blocksize);
- IXDR_PUT_U_LONG(buf, objp->rdev);
- IXDR_PUT_U_LONG(buf, objp->blocks);
- IXDR_PUT_U_LONG(buf, objp->fsid);
- IXDR_PUT_U_LONG(buf, objp->fileid);
+ IXDR_PUT_U_LONG(buf, objp->mode);
+ IXDR_PUT_U_LONG(buf, objp->nlink);
+ IXDR_PUT_U_LONG(buf, objp->uid);
+ IXDR_PUT_U_LONG(buf, objp->gid);
+ IXDR_PUT_U_LONG(buf, objp->size);
+ IXDR_PUT_U_LONG(buf, objp->blocksize);
+ IXDR_PUT_U_LONG(buf, objp->rdev);
+ IXDR_PUT_U_LONG(buf, objp->blocks);
+ IXDR_PUT_U_LONG(buf, objp->fsid);
+ IXDR_PUT_U_LONG(buf, objp->fileid);
}
- if (!xdr_nfstime(xdrs, &objp->atime))
- return (FALSE);
- if (!xdr_nfstime(xdrs, &objp->mtime))
- return (FALSE);
- if (!xdr_nfstime(xdrs, &objp->ctime))
- return (FALSE);
+ if (!xdr_nfstime (xdrs, &objp->atime))
+ return FALSE;
+ if (!xdr_nfstime (xdrs, &objp->mtime))
+ return FALSE;
+ if (!xdr_nfstime (xdrs, &objp->ctime))
+ return FALSE;
+ return TRUE;
} else if (xdrs->x_op == XDR_DECODE) {
- if (!xdr_ftype(xdrs, &objp->type))
- return (FALSE);
- buf = (int32_t *)XDR_INLINE(xdrs, 10 * BYTES_PER_XDR_UNIT);
+ if (!xdr_ftype (xdrs, &objp->type))
+ return FALSE;
+ buf = XDR_INLINE (xdrs, 10 * BYTES_PER_XDR_UNIT);
if (buf == NULL) {
- if (!xdr_u_int(xdrs, &objp->mode))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->nlink))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->uid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->gid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->size))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->blocksize))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->rdev))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->blocks))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->fsid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->fileid))
- return (FALSE);
+ if (!xdr_u_int (xdrs, &objp->mode))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->nlink))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->uid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->gid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->size))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->blocksize))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->rdev))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->blocks))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->fsid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->fileid))
+ return FALSE;
+
} else {
- objp->mode = IXDR_GET_U_LONG(buf);
- objp->nlink = IXDR_GET_U_LONG(buf);
- objp->uid = IXDR_GET_U_LONG(buf);
- objp->gid = IXDR_GET_U_LONG(buf);
- objp->size = IXDR_GET_U_LONG(buf);
- objp->blocksize = IXDR_GET_U_LONG(buf);
- objp->rdev = IXDR_GET_U_LONG(buf);
- objp->blocks = IXDR_GET_U_LONG(buf);
- objp->fsid = IXDR_GET_U_LONG(buf);
- objp->fileid = IXDR_GET_U_LONG(buf);
+ objp->mode = IXDR_GET_U_LONG(buf);
+ objp->nlink = IXDR_GET_U_LONG(buf);
+ objp->uid = IXDR_GET_U_LONG(buf);
+ objp->gid = IXDR_GET_U_LONG(buf);
+ objp->size = IXDR_GET_U_LONG(buf);
+ objp->blocksize = IXDR_GET_U_LONG(buf);
+ objp->rdev = IXDR_GET_U_LONG(buf);
+ objp->blocks = IXDR_GET_U_LONG(buf);
+ objp->fsid = IXDR_GET_U_LONG(buf);
+ objp->fileid = IXDR_GET_U_LONG(buf);
}
- if (!xdr_nfstime(xdrs, &objp->atime))
- return (FALSE);
- if (!xdr_nfstime(xdrs, &objp->mtime))
- return (FALSE);
- if (!xdr_nfstime(xdrs, &objp->ctime))
- return (FALSE);
- } else {
- if (!xdr_ftype(xdrs, &objp->type))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->mode))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->nlink))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->uid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->gid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->size))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->blocksize))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->rdev))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->blocks))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->fsid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->fileid))
- return (FALSE);
- if (!xdr_nfstime(xdrs, &objp->atime))
- return (FALSE);
- if (!xdr_nfstime(xdrs, &objp->mtime))
- return (FALSE);
- if (!xdr_nfstime(xdrs, &objp->ctime))
- return (FALSE);
+ if (!xdr_nfstime (xdrs, &objp->atime))
+ return FALSE;
+ if (!xdr_nfstime (xdrs, &objp->mtime))
+ return FALSE;
+ if (!xdr_nfstime (xdrs, &objp->ctime))
+ return FALSE;
+ return TRUE;
}
- return (TRUE);
+
+ if (!xdr_ftype (xdrs, &objp->type))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->mode))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->nlink))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->uid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->gid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->size))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->blocksize))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->rdev))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->blocks))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->fsid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->fileid))
+ return FALSE;
+ if (!xdr_nfstime (xdrs, &objp->atime))
+ return FALSE;
+ if (!xdr_nfstime (xdrs, &objp->mtime))
+ return FALSE;
+ if (!xdr_nfstime (xdrs, &objp->ctime))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_sattr(xdrs, objp)
- XDR *xdrs;
- sattr *objp;
+xdr_sattr (XDR *xdrs, sattr *objp)
{
- int32_t *buf;
+ register int32_t *buf;
+
if (xdrs->x_op == XDR_ENCODE) {
- buf = (int32_t *)XDR_INLINE(xdrs, 4 * BYTES_PER_XDR_UNIT);
+ buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
if (buf == NULL) {
- if (!xdr_u_int(xdrs, &objp->mode))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->uid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->gid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->size))
- return (FALSE);
+ if (!xdr_u_int (xdrs, &objp->mode))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->uid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->gid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->size))
+ return FALSE;
+
} else {
- IXDR_PUT_U_LONG(buf, objp->mode);
- IXDR_PUT_U_LONG(buf, objp->uid);
- IXDR_PUT_U_LONG(buf, objp->gid);
- IXDR_PUT_U_LONG(buf, objp->size);
+ IXDR_PUT_U_LONG(buf, objp->mode);
+ IXDR_PUT_U_LONG(buf, objp->uid);
+ IXDR_PUT_U_LONG(buf, objp->gid);
+ IXDR_PUT_U_LONG(buf, objp->size);
}
- if (!xdr_nfstime(xdrs, &objp->atime))
- return (FALSE);
- if (!xdr_nfstime(xdrs, &objp->mtime))
- return (FALSE);
+ if (!xdr_nfstime (xdrs, &objp->atime))
+ return FALSE;
+ if (!xdr_nfstime (xdrs, &objp->mtime))
+ return FALSE;
+ return TRUE;
} else if (xdrs->x_op == XDR_DECODE) {
- buf = (int32_t *)XDR_INLINE(xdrs, 4 * BYTES_PER_XDR_UNIT);
+ buf = XDR_INLINE (xdrs, 4 * BYTES_PER_XDR_UNIT);
if (buf == NULL) {
- if (!xdr_u_int(xdrs, &objp->mode))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->uid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->gid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->size))
- return (FALSE);
+ if (!xdr_u_int (xdrs, &objp->mode))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->uid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->gid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->size))
+ return FALSE;
+
} else {
- objp->mode = IXDR_GET_U_LONG(buf);
- objp->uid = IXDR_GET_U_LONG(buf);
- objp->gid = IXDR_GET_U_LONG(buf);
- objp->size = IXDR_GET_U_LONG(buf);
+ objp->mode = IXDR_GET_U_LONG(buf);
+ objp->uid = IXDR_GET_U_LONG(buf);
+ objp->gid = IXDR_GET_U_LONG(buf);
+ objp->size = IXDR_GET_U_LONG(buf);
}
- if (!xdr_nfstime(xdrs, &objp->atime))
- return (FALSE);
- if (!xdr_nfstime(xdrs, &objp->mtime))
- return (FALSE);
- } else {
- if (!xdr_u_int(xdrs, &objp->mode))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->uid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->gid))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->size))
- return (FALSE);
- if (!xdr_nfstime(xdrs, &objp->atime))
- return (FALSE);
- if (!xdr_nfstime(xdrs, &objp->mtime))
- return (FALSE);
+ if (!xdr_nfstime (xdrs, &objp->atime))
+ return FALSE;
+ if (!xdr_nfstime (xdrs, &objp->mtime))
+ return FALSE;
+ return TRUE;
}
- return (TRUE);
+
+ if (!xdr_u_int (xdrs, &objp->mode))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->uid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->gid))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->size))
+ return FALSE;
+ if (!xdr_nfstime (xdrs, &objp->atime))
+ return FALSE;
+ if (!xdr_nfstime (xdrs, &objp->mtime))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_filename(xdrs, objp)
- XDR *xdrs;
- filename *objp;
+xdr_filename (XDR *xdrs, filename *objp)
{
+ register int32_t *buf;
- if (!xdr_string(xdrs, objp, NFS_MAXNAMLEN))
- return (FALSE);
- return (TRUE);
+ if (!xdr_string (xdrs, objp, NFS_MAXNAMLEN))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_nfspath(xdrs, objp)
- XDR *xdrs;
- nfspath *objp;
+xdr_nfspath (XDR *xdrs, nfspath *objp)
{
+ register int32_t *buf;
- if (!xdr_string(xdrs, objp, NFS_MAXPATHLEN))
- return (FALSE);
- return (TRUE);
+ if (!xdr_string (xdrs, objp, NFS_MAXPATHLEN))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_attrstat(xdrs, objp)
- XDR *xdrs;
- attrstat *objp;
+xdr_attrstat (XDR *xdrs, attrstat *objp)
{
+ register int32_t *buf;
- if (!xdr_nfsstat(xdrs, &objp->status))
- return (FALSE);
+ if (!xdr_nfsstat (xdrs, &objp->status))
+ return FALSE;
switch (objp->status) {
case NFS_OK:
- if (!xdr_fattr(xdrs, &objp->attrstat_u.attributes))
- return (FALSE);
+ if (!xdr_fattr (xdrs, &objp->attrstat_u.attributes))
+ return FALSE;
break;
default:
break;
}
- return (TRUE);
+ return TRUE;
}
bool_t
-xdr_sattrargs(xdrs, objp)
- XDR *xdrs;
- sattrargs *objp;
+xdr_sattrargs (XDR *xdrs, sattrargs *objp)
{
+ register int32_t *buf;
- if (!xdr_nfs_fh(xdrs, &objp->file))
- return (FALSE);
- if (!xdr_sattr(xdrs, &objp->attributes))
- return (FALSE);
- return (TRUE);
+ if (!xdr_nfs_fh (xdrs, &objp->file))
+ return FALSE;
+ if (!xdr_sattr (xdrs, &objp->attributes))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_diropargs(xdrs, objp)
- XDR *xdrs;
- diropargs *objp;
+xdr_diropargs (XDR *xdrs, diropargs *objp)
{
+ register int32_t *buf;
- if (!xdr_nfs_fh(xdrs, &objp->dir))
- return (FALSE);
- if (!xdr_filename(xdrs, &objp->name))
- return (FALSE);
- return (TRUE);
+ if (!xdr_nfs_fh (xdrs, &objp->dir))
+ return FALSE;
+ if (!xdr_filename (xdrs, &objp->name))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_diropokres(xdrs, objp)
- XDR *xdrs;
- diropokres *objp;
+xdr_diropokres (XDR *xdrs, diropokres *objp)
{
+ register int32_t *buf;
- if (!xdr_nfs_fh(xdrs, &objp->file))
- return (FALSE);
- if (!xdr_fattr(xdrs, &objp->attributes))
- return (FALSE);
- return (TRUE);
+ if (!xdr_nfs_fh (xdrs, &objp->file))
+ return FALSE;
+ if (!xdr_fattr (xdrs, &objp->attributes))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_diropres(xdrs, objp)
- XDR *xdrs;
- diropres *objp;
+xdr_diropres (XDR *xdrs, diropres *objp)
{
+ register int32_t *buf;
- if (!xdr_nfsstat(xdrs, &objp->status))
- return (FALSE);
+ if (!xdr_nfsstat (xdrs, &objp->status))
+ return FALSE;
switch (objp->status) {
case NFS_OK:
- if (!xdr_diropokres(xdrs, &objp->diropres_u.diropres))
- return (FALSE);
+ if (!xdr_diropokres (xdrs, &objp->diropres_u.diropres))
+ return FALSE;
break;
default:
break;
}
- return (TRUE);
+ return TRUE;
}
bool_t
-xdr_readlinkres(xdrs, objp)
- XDR *xdrs;
- readlinkres *objp;
+xdr_readlinkres (XDR *xdrs, readlinkres *objp)
{
+ register int32_t *buf;
- if (!xdr_nfsstat(xdrs, &objp->status))
- return (FALSE);
+ if (!xdr_nfsstat (xdrs, &objp->status))
+ return FALSE;
switch (objp->status) {
case NFS_OK:
- if (!xdr_nfspath(xdrs, &objp->readlinkres_u.data))
- return (FALSE);
+ if (!xdr_nfspath (xdrs, &objp->readlinkres_u.data))
+ return FALSE;
break;
default:
break;
}
- return (TRUE);
+ return TRUE;
}
bool_t
-xdr_readargs(xdrs, objp)
- XDR *xdrs;
- readargs *objp;
+xdr_readargs (XDR *xdrs, readargs *objp)
{
-
- if (!xdr_nfs_fh(xdrs, &objp->file))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->offset))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->count))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->totalcount))
- return (FALSE);
- return (TRUE);
+ register int32_t *buf;
+
+ if (!xdr_nfs_fh (xdrs, &objp->file))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->offset))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->count))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->totalcount))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_readokres(xdrs, objp)
- XDR *xdrs;
- readokres *objp;
+xdr_readokres (XDR *xdrs, readokres *objp)
{
+ register int32_t *buf;
- if (!xdr_fattr(xdrs, &objp->attributes))
- return (FALSE);
- if (!xdr_bytes(xdrs, (char **)&objp->data.data_val, (u_int *)&objp->data.data_len, NFS_MAXDATA))
- return (FALSE);
- return (TRUE);
+ if (!xdr_fattr (xdrs, &objp->attributes))
+ return FALSE;
+ if (!xdr_bytes (xdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, NFS_MAXDATA))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_readres(xdrs, objp)
- XDR *xdrs;
- readres *objp;
+xdr_readres (XDR *xdrs, readres *objp)
{
+ register int32_t *buf;
- if (!xdr_nfsstat(xdrs, &objp->status))
- return (FALSE);
+ if (!xdr_nfsstat (xdrs, &objp->status))
+ return FALSE;
switch (objp->status) {
case NFS_OK:
- if (!xdr_readokres(xdrs, &objp->readres_u.reply))
- return (FALSE);
+ if (!xdr_readokres (xdrs, &objp->readres_u.reply))
+ return FALSE;
break;
default:
break;
}
- return (TRUE);
+ return TRUE;
}
bool_t
-xdr_writeargs(xdrs, objp)
- XDR *xdrs;
- writeargs *objp;
+xdr_writeargs (XDR *xdrs, writeargs *objp)
{
- int32_t *buf;
+ register int32_t *buf;
+
if (xdrs->x_op == XDR_ENCODE) {
- if (!xdr_nfs_fh(xdrs, &objp->file))
- return (FALSE);
- buf = (int32_t *)XDR_INLINE(xdrs, 3 * BYTES_PER_XDR_UNIT);
+ if (!xdr_nfs_fh (xdrs, &objp->file))
+ return FALSE;
+ buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
if (buf == NULL) {
- if (!xdr_u_int(xdrs, &objp->beginoffset))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->offset))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->totalcount))
- return (FALSE);
+ if (!xdr_u_int (xdrs, &objp->beginoffset))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->offset))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->totalcount))
+ return FALSE;
+
} else {
- IXDR_PUT_U_LONG(buf, objp->beginoffset);
- IXDR_PUT_U_LONG(buf, objp->offset);
- IXDR_PUT_U_LONG(buf, objp->totalcount);
+ IXDR_PUT_U_LONG(buf, objp->beginoffset);
+ IXDR_PUT_U_LONG(buf, objp->offset);
+ IXDR_PUT_U_LONG(buf, objp->totalcount);
}
- if (!xdr_bytes(xdrs, (char **)&objp->data.data_val, (u_int *)&objp->data.data_len, NFS_MAXDATA))
- return (FALSE);
+ if (!xdr_bytes (xdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, NFS_MAXDATA))
+ return FALSE;
+ return TRUE;
} else if (xdrs->x_op == XDR_DECODE) {
- if (!xdr_nfs_fh(xdrs, &objp->file))
- return (FALSE);
- buf = (int32_t *)XDR_INLINE(xdrs, 3 * BYTES_PER_XDR_UNIT);
+ if (!xdr_nfs_fh (xdrs, &objp->file))
+ return FALSE;
+ buf = XDR_INLINE (xdrs, 3 * BYTES_PER_XDR_UNIT);
if (buf == NULL) {
- if (!xdr_u_int(xdrs, &objp->beginoffset))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->offset))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->totalcount))
- return (FALSE);
+ if (!xdr_u_int (xdrs, &objp->beginoffset))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->offset))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->totalcount))
+ return FALSE;
+
} else {
- objp->beginoffset = IXDR_GET_U_LONG(buf);
- objp->offset = IXDR_GET_U_LONG(buf);
- objp->totalcount = IXDR_GET_U_LONG(buf);
+ objp->beginoffset = IXDR_GET_U_LONG(buf);
+ objp->offset = IXDR_GET_U_LONG(buf);
+ objp->totalcount = IXDR_GET_U_LONG(buf);
}
- if (!xdr_bytes(xdrs, (char **)&objp->data.data_val, (u_int *)&objp->data.data_len, NFS_MAXDATA))
- return (FALSE);
- } else {
- if (!xdr_nfs_fh(xdrs, &objp->file))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->beginoffset))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->offset))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->totalcount))
- return (FALSE);
- if (!xdr_bytes(xdrs, (char **)&objp->data.data_val, (u_int *)&objp->data.data_len, NFS_MAXDATA))
- return (FALSE);
+ if (!xdr_bytes (xdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, NFS_MAXDATA))
+ return FALSE;
+ return TRUE;
}
- return (TRUE);
+
+ if (!xdr_nfs_fh (xdrs, &objp->file))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->beginoffset))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->offset))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->totalcount))
+ return FALSE;
+ if (!xdr_bytes (xdrs, (char **)&objp->data.data_val, (u_int *) &objp->data.data_len, NFS_MAXDATA))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_createargs(xdrs, objp)
- XDR *xdrs;
- createargs *objp;
+xdr_createargs (XDR *xdrs, createargs *objp)
{
+ register int32_t *buf;
- if (!xdr_diropargs(xdrs, &objp->where))
- return (FALSE);
- if (!xdr_sattr(xdrs, &objp->attributes))
- return (FALSE);
- return (TRUE);
+ if (!xdr_diropargs (xdrs, &objp->where))
+ return FALSE;
+ if (!xdr_sattr (xdrs, &objp->attributes))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_renameargs(xdrs, objp)
- XDR *xdrs;
- renameargs *objp;
+xdr_renameargs (XDR *xdrs, renameargs *objp)
{
+ register int32_t *buf;
- if (!xdr_diropargs(xdrs, &objp->from))
- return (FALSE);
- if (!xdr_diropargs(xdrs, &objp->to))
- return (FALSE);
- return (TRUE);
+ if (!xdr_diropargs (xdrs, &objp->from))
+ return FALSE;
+ if (!xdr_diropargs (xdrs, &objp->to))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_linkargs(xdrs, objp)
- XDR *xdrs;
- linkargs *objp;
+xdr_linkargs (XDR *xdrs, linkargs *objp)
{
+ register int32_t *buf;
- if (!xdr_nfs_fh(xdrs, &objp->from))
- return (FALSE);
- if (!xdr_diropargs(xdrs, &objp->to))
- return (FALSE);
- return (TRUE);
+ if (!xdr_nfs_fh (xdrs, &objp->from))
+ return FALSE;
+ if (!xdr_diropargs (xdrs, &objp->to))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_symlinkargs(xdrs, objp)
- XDR *xdrs;
- symlinkargs *objp;
+xdr_symlinkargs (XDR *xdrs, symlinkargs *objp)
{
-
- if (!xdr_diropargs(xdrs, &objp->from))
- return (FALSE);
- if (!xdr_nfspath(xdrs, &objp->to))
- return (FALSE);
- if (!xdr_sattr(xdrs, &objp->attributes))
- return (FALSE);
- return (TRUE);
+ register int32_t *buf;
+
+ if (!xdr_diropargs (xdrs, &objp->from))
+ return FALSE;
+ if (!xdr_nfspath (xdrs, &objp->to))
+ return FALSE;
+ if (!xdr_sattr (xdrs, &objp->attributes))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_nfscookie(xdrs, objp)
- XDR *xdrs;
- nfscookie *objp;
+xdr_nfscookie (XDR *xdrs, nfscookie *objp)
{
+ register int32_t *buf;
- if (!xdr_opaque(xdrs, objp->data, NFS_COOKIESIZE))
- return (FALSE);
- return (TRUE);
+ int i;
+ if (!xdr_opaque (xdrs, objp->data, NFS_COOKIESIZE))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_readdirargs(xdrs, objp)
- XDR *xdrs;
- readdirargs *objp;
+xdr_readdirargs (XDR *xdrs, readdirargs *objp)
{
-
- if (!xdr_nfs_fh(xdrs, &objp->dir))
- return (FALSE);
- if (!xdr_nfscookie(xdrs, &objp->cookie))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->count))
- return (FALSE);
- return (TRUE);
+ register int32_t *buf;
+
+ if (!xdr_nfs_fh (xdrs, &objp->dir))
+ return FALSE;
+ if (!xdr_nfscookie (xdrs, &objp->cookie))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->count))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_entry(xdrs, objp)
- XDR *xdrs;
- entry *objp;
+xdr_entry (XDR *xdrs, entry *objp)
{
-
- if (!xdr_u_int(xdrs, &objp->fileid))
- return (FALSE);
- if (!xdr_filename(xdrs, &objp->name))
- return (FALSE);
- if (!xdr_nfscookie(xdrs, &objp->cookie))
- return (FALSE);
- if (!xdr_pointer(xdrs, (char **)&objp->nextentry, sizeof(entry), (xdrproc_t)xdr_entry))
- return (FALSE);
- return (TRUE);
+ register int32_t *buf;
+
+ if (!xdr_u_int (xdrs, &objp->fileid))
+ return FALSE;
+ if (!xdr_filename (xdrs, &objp->name))
+ return FALSE;
+ if (!xdr_nfscookie (xdrs, &objp->cookie))
+ return FALSE;
+ if (!xdr_pointer (xdrs, (char **)&objp->nextentry, sizeof (entry), (xdrproc_t) xdr_entry))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_dirlist(xdrs, objp)
- XDR *xdrs;
- dirlist *objp;
+xdr_dirlist (XDR *xdrs, dirlist *objp)
{
+ register int32_t *buf;
- if (!xdr_pointer(xdrs, (char **)&objp->entries, sizeof(entry), (xdrproc_t)xdr_entry))
- return (FALSE);
- if (!xdr_bool(xdrs, &objp->eof))
- return (FALSE);
- return (TRUE);
+ if (!xdr_pointer (xdrs, (char **)&objp->entries, sizeof (entry), (xdrproc_t) xdr_entry))
+ return FALSE;
+ if (!xdr_bool (xdrs, &objp->eof))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_readdirres(xdrs, objp)
- XDR *xdrs;
- readdirres *objp;
+xdr_readdirres (XDR *xdrs, readdirres *objp)
{
+ register int32_t *buf;
- if (!xdr_nfsstat(xdrs, &objp->status))
- return (FALSE);
+ if (!xdr_nfsstat (xdrs, &objp->status))
+ return FALSE;
switch (objp->status) {
case NFS_OK:
- if (!xdr_dirlist(xdrs, &objp->readdirres_u.reply))
- return (FALSE);
+ if (!xdr_dirlist (xdrs, &objp->readdirres_u.reply))
+ return FALSE;
break;
default:
break;
}
- return (TRUE);
+ return TRUE;
}
bool_t
-xdr_statfsokres(xdrs, objp)
- XDR *xdrs;
- statfsokres *objp;
+xdr_statfsokres (XDR *xdrs, statfsokres *objp)
{
- int32_t *buf;
+ register int32_t *buf;
+
if (xdrs->x_op == XDR_ENCODE) {
- buf = (int32_t *)XDR_INLINE(xdrs, 5 * BYTES_PER_XDR_UNIT);
+ buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
if (buf == NULL) {
- if (!xdr_u_int(xdrs, &objp->tsize))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->bsize))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->blocks))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->bfree))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->bavail))
- return (FALSE);
+ if (!xdr_u_int (xdrs, &objp->tsize))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->bsize))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->blocks))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->bfree))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->bavail))
+ return FALSE;
} else {
IXDR_PUT_U_LONG(buf, objp->tsize);
IXDR_PUT_U_LONG(buf, objp->bsize);
@@ -629,19 +615,20 @@ xdr_statfsokres(xdrs, objp)
IXDR_PUT_U_LONG(buf, objp->bfree);
IXDR_PUT_U_LONG(buf, objp->bavail);
}
+ return TRUE;
} else if (xdrs->x_op == XDR_DECODE) {
- buf = (int32_t *)XDR_INLINE(xdrs, 5 * BYTES_PER_XDR_UNIT);
+ buf = XDR_INLINE (xdrs, 5 * BYTES_PER_XDR_UNIT);
if (buf == NULL) {
- if (!xdr_u_int(xdrs, &objp->tsize))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->bsize))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->blocks))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->bfree))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->bavail))
- return (FALSE);
+ if (!xdr_u_int (xdrs, &objp->tsize))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->bsize))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->blocks))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->bfree))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->bavail))
+ return FALSE;
} else {
objp->tsize = IXDR_GET_U_LONG(buf);
objp->bsize = IXDR_GET_U_LONG(buf);
@@ -649,36 +636,36 @@ xdr_statfsokres(xdrs, objp)
objp->bfree = IXDR_GET_U_LONG(buf);
objp->bavail = IXDR_GET_U_LONG(buf);
}
- } else {
- if (!xdr_u_int(xdrs, &objp->tsize))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->bsize))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->blocks))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->bfree))
- return (FALSE);
- if (!xdr_u_int(xdrs, &objp->bavail))
- return (FALSE);
+ return TRUE;
}
- return (TRUE);
+
+ if (!xdr_u_int (xdrs, &objp->tsize))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->bsize))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->blocks))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->bfree))
+ return FALSE;
+ if (!xdr_u_int (xdrs, &objp->bavail))
+ return FALSE;
+ return TRUE;
}
bool_t
-xdr_statfsres(xdrs, objp)
- XDR *xdrs;
- statfsres *objp;
+xdr_statfsres (XDR *xdrs, statfsres *objp)
{
+ register int32_t *buf;
- if (!xdr_nfsstat(xdrs, &objp->status))
- return (FALSE);
+ if (!xdr_nfsstat (xdrs, &objp->status))
+ return FALSE;
switch (objp->status) {
case NFS_OK:
- if (!xdr_statfsokres(xdrs, &objp->statfsres_u.reply))
- return (FALSE);
+ if (!xdr_statfsokres (xdrs, &objp->statfsres_u.reply))
+ return FALSE;
break;
default:
break;
}
- return (TRUE);
+ return TRUE;
}
diff --git a/rtemsNfs/src/Makefile b/rtemsNfs/src/Makefile
index 584ee00..431b5ad 100644
--- a/rtemsNfs/src/Makefile
+++ b/rtemsNfs/src/Makefile
@@ -7,7 +7,7 @@
# if you have CEXP set this variable to 'YES'
# and some "help" info will be compiled in.
-HAVE_CEXP=NO
+HAVE_CEXP=YES
# C source names, if any, go here -- minus the .c
C_PIECES_YES=rpcio nfs sock_mbuf xdr_mbuf dirutils rpcio.modini nfs.modini cexphelp
diff --git a/rtemsNfs/src/rpcio.c b/rtemsNfs/src/rpcio.c
index 922ae5e..912c763 100644
--- a/rtemsNfs/src/rpcio.c
+++ b/rtemsNfs/src/rpcio.c
@@ -95,6 +95,13 @@
* interface is used.
*/
+#undef REJECT_SERVERIP_MISMATCH
+ /* If defined, RPC replies must come from the server
+ * that was queried. Eric Norum has reported problems
+ * with clustered NFS servers. So we disable this
+ * reducing paranoia...
+ */
+
/* daemon task parameters */
#define RPCIOD_STACK 10000
#define RPCIOD_PRIO 50
@@ -1657,11 +1664,16 @@ RpcUdpXact xact = 0;
if ( !(xact=xactHashTbl[i]) ||
xact->obuf.xid != xid ||
+#ifdef REJECT_SERVERIP_MISMATCH
xact->server->addr.sin_addr.s_addr != fromAddr.sin_addr.s_addr ||
+#endif
xact->server->addr.sin_port != fromAddr.sin_port ) {
if (xact) {
- if (xact->server->addr.sin_addr.s_addr == fromAddr.sin_addr.s_addr &&
+ if (
+#ifdef REJECT_SERVERIP_MISMATCH
+ xact->server->addr.sin_addr.s_addr == fromAddr.sin_addr.s_addr &&
+#endif
xact->server->addr.sin_port == fromAddr.sin_port &&
( xact->obuf.xid == xid + XACT_HASHS ||
xact->obuf.xid == xid + 2*XACT_HASHS )