+/* SPDX-License-Identifier: GPL-2.0+ */
/*
- *
- * SPDX-License-Identifier: GPL-2.0+
*/
#ifndef __NFS_H__
#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_MAX_ATTRS 26
/* Values for Accept State flag on RPC answers (See: rfc1831) */
enum rpc_accept_stat {
struct rpc_t {
union {
- uint8_t data[2048];
+ uint8_t data[NFS_READ_SIZE + (6 + NFS_MAX_ATTRS) *
+ sizeof(uint32_t)];
struct {
uint32_t id;
uint32_t type;
uint32_t verifier;
uint32_t v2;
uint32_t astatus;
- uint32_t data[NFS_READ_SIZE / sizeof(uint32_t)];
+ uint32_t data[NFS_READ_SIZE / sizeof(uint32_t) +
+ NFS_MAX_ATTRS];
} reply;
} u;
};
void nfs_start(void); /* Begin NFS */
-
/**********************************************************************/
#endif /* __NFS_H__ */