+/* SPDX-License-Identifier: GPL-2.0+ */
/*
* (C) Masami Komiya <mkomiya@sonare.it> 2004
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2, or (at
- * your option) any later version.
*/
#ifndef __NFS_H__
#define NFS_READLINK 5
#define NFS_READ 6
+#define NFS3PROC_LOOKUP 3
+
#define NFS_FHSIZE 32
+#define NFS3_FHSIZE 64
#define NFSERR_PERM 1
#define NFSERR_NOENT 2
#define NFSERR_ISDIR 21
#define NFSERR_INVAL 22
-/* Block size used for NFS read accesses. A RPC reply packet (including all
+/*
+ * Block size used for NFS read accesses. A RPC reply packet (including all
* headers) must fit within a single Ethernet frame to avoid fragmentation.
- * However, if CONFIG_IP_DEFRAG is set, the config file may want to use a
- * bigger value. In any case, most NFS servers are optimized for a power of 2.
+ * However, if CONFIG_IP_DEFRAG is set, a bigger value could be used. In any
+ * case, most NFS servers are optimized for a power of 2.
*/
-#ifdef CONFIG_NFS_READ_SIZE
-#define NFS_READ_SIZE CONFIG_NFS_READ_SIZE
-#else
-#define NFS_READ_SIZE 1024 /* biggest power of two that fits Ether frame */
-#endif
+#define NFS_READ_SIZE 1024 /* biggest power of two that fits Ether frame */
-#define NFS_MAXLINKDEPTH 16
+/* Values for Accept State flag on RPC answers (See: rfc1831) */
+enum rpc_accept_stat {
+ NFS_RPC_SUCCESS = 0, /* RPC executed successfully */
+ NFS_RPC_PROG_UNAVAIL = 1, /* remote hasn't exported program */
+ NFS_RPC_PROG_MISMATCH = 2, /* remote can't support version # */
+ NFS_RPC_PROC_UNAVAIL = 3, /* program can't support procedure */
+ NFS_RPC_GARBAGE_ARGS = 4, /* procedure can't decode params */
+ NFS_RPC_SYSTEM_ERR = 5 /* errors like memory allocation failure */
+};
struct rpc_t {
union {
uint32_t verifier;
uint32_t v2;
uint32_t astatus;
- uint32_t data[19];
+ uint32_t data[NFS_READ_SIZE];
} reply;
} u;
-};
-extern void NfsStart (void); /* Begin NFS */
+} __attribute__((packed));
+void nfs_start(void); /* Begin NFS */
/**********************************************************************/