mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-25 01:03:34 +08:00
Kconfig updated + NFS update
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4646 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
@@ -1,126 +0,0 @@
|
||||
/****************************************************************************
|
||||
* fs/nfs/nfs_args.h
|
||||
*
|
||||
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2012 Jose Pablo Rojas Vargas. All rights reserved.
|
||||
* Author: Jose Pablo Rojas Vargas <jrojas@nx-engineering.com>
|
||||
*
|
||||
* Leveraged from OpenBSD:
|
||||
*
|
||||
* Copyright (c) 1989, 1993, 1995
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Rick Macklem at The University of Guelph.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __FS_NFS_NFS_ARGS_H
|
||||
#define __FS_NFS_NFS_ARGS_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include "nfs_proto.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/* NFS mount option flags */
|
||||
|
||||
#define NFSMNT_SOFT 0x00000001 /* soft mount (hard is default) */
|
||||
#define NFSMNT_WSIZE 0x00000002 /* set write size */
|
||||
#define NFSMNT_RSIZE 0x00000004 /* set read size */
|
||||
#define NFSMNT_TIMEO 0x00000008 /* set initial timeout */
|
||||
#define NFSMNT_RETRANS 0x00000010 /* set number of request retries */
|
||||
#define NFSMNT_MAXGRPS 0x00000020 /* set maximum grouplist size */
|
||||
#define NFSMNT_INT 0x00000040 /* allow interrupts on hard mount */
|
||||
#define NFSMNT_NOCONN 0x00000080 /* Don't Connect the socket */
|
||||
|
||||
/* 0x100 free, was NFSMNT_NQNFS */
|
||||
|
||||
#define NFSMNT_NFSV3 0x00000200 /* Use NFS Version 3 protocol */
|
||||
|
||||
/* 0x400 free, was NFSMNT_KERB */
|
||||
|
||||
#define NFSMNT_DUMBTIMR 0x00000800 /* Don't estimate rtt dynamically */
|
||||
|
||||
/* 0x1000 free, was NFSMNT_LEASETERM */
|
||||
|
||||
#define NFSMNT_READAHEAD 0x00002000 /* set read ahead */
|
||||
#define NFSMNT_DEADTHRESH 0x00004000 /* set dead server retry thresh */
|
||||
#define NFSMNT_RESVPORT 0x00008000 /* Allocate a reserved port */
|
||||
#define NFSMNT_RDIRPLUS 0x00010000 /* Use Readdirplus for V3 */
|
||||
#define NFSMNT_READDIRSIZE 0x00020000 /* Set readdir size */
|
||||
#define NFSMNT_ACREGMIN 0x00040000
|
||||
#define NFSMNT_ACREGMAX 0x00080000
|
||||
#define NFSMNT_ACDIRMIN 0x00100000
|
||||
#define NFSMNT_ACDIRMAX 0x00200000
|
||||
#define NFSMNT_NOLOCKD 0x00400000 /* Locks are local */
|
||||
#define NFSMNT_NFSV4 0x00800000 /* Use NFS Version 4 protocol */
|
||||
#define NFSMNT_HASWRITEVERF 0x01000000 /* NFSv4 Write verifier */
|
||||
#define NFSMNT_GOTFSINFO 0x00000004 /* Got the V3 fsinfo */
|
||||
#define NFSMNT_INTERNAL 0xfffc0000 /* Bits set internally */
|
||||
#define NFSMNT_NOAC 0x00080000 /* Turn off attribute cache */
|
||||
|
||||
#define NFS_ARGSVERSION 3 /* change when nfs_args changes */
|
||||
|
||||
/****************************************************************************
|
||||
* Public Types
|
||||
****************************************************************************/
|
||||
|
||||
/* Arguments to mount NFS */
|
||||
|
||||
struct nfs_args
|
||||
{
|
||||
int version; /* args structure version number */
|
||||
struct sockaddr *addr; /* file server address */
|
||||
int addrlen; /* length of address */
|
||||
int sotype; /* Socket type */
|
||||
int proto; /* and Protocol */
|
||||
nfsfh_t fh; /* File handle to be mounted */
|
||||
int fhsize; /* Size, in bytes, of fh */
|
||||
int flags; /* flags */
|
||||
int wsize; /* write size in bytes */
|
||||
int rsize; /* read size in bytes */
|
||||
int readdirsize; /* readdir size in bytes */
|
||||
int timeo; /* initial timeout in .1 secs */
|
||||
int retrans; /* times to retry send */
|
||||
int maxgrouplist; /* Max. size of group list */
|
||||
int readahead; /* # of blocks to readahead */
|
||||
int leaseterm; /* Term (sec) of lease */
|
||||
int deadthresh; /* Retrans threshold */
|
||||
//char *hostname; /* server's name */
|
||||
int acregmin; /* cache attrs for reg files min time */
|
||||
int acregmax; /* cache attrs for reg files max time */
|
||||
int acdirmin; /* cache attrs for dirs min time */
|
||||
int acdirmax; /* cache attrs for dirs max time */
|
||||
};
|
||||
|
||||
#endif /* __FS_NFS_NFS_ARGS_H */
|
||||
@@ -77,9 +77,9 @@ struct nfsmount
|
||||
int nm_fhsize; /* Size of root file handle */
|
||||
struct rpcclnt *nm_rpcclnt; /* rpc state */
|
||||
struct socket *nm_so; /* Rpc socket */
|
||||
int nm_sotype; /* Type of socket */
|
||||
int nm_soproto; /* and protocol */
|
||||
int nm_soflags; /* pr_flags for socket protocol */
|
||||
uint8_t nm_sotype; /* Type of socket */
|
||||
uint8_t nm_soproto; /* and protocol */
|
||||
uint8_t nm_soflags; /* pr_flags for socket protocol */
|
||||
struct sockaddr *nm_nam; /* Addr of server */
|
||||
int nm_timeo; /* Init timer for NFSMNT_DUMBTIMR */
|
||||
int nm_retry; /* Max retries */
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include "nfs.h"
|
||||
#include <nuttx/fs/nfs.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
@@ -147,13 +147,13 @@ struct nfsnode
|
||||
uid_t n_accuid; /* Last access requester */
|
||||
int n_accmode; /* Last mode requested */
|
||||
int n_accerror; /* Last returned error */
|
||||
|
||||
off_t n_pushedlo; /* 1st blk in commited range */
|
||||
off_t n_pushedhi; /* Last block in range */
|
||||
off_t n_pushlo; /* 1st block in commit range */
|
||||
off_t n_pushhi; /* Last block in range */
|
||||
|
||||
//off_t n_pushedlo; /* 1st blk in commited range */
|
||||
//off_t n_pushedhi; /* Last block in range */
|
||||
//off_t n_pushlo; /* 1st block in commit range */
|
||||
//off_t n_pushhi; /* Last block in range */
|
||||
//struct rwlock n_commitlock; /* Serialize commits */
|
||||
int n_commitflags;
|
||||
//int n_commitflags;
|
||||
};
|
||||
|
||||
#endif /* __FS_NFS_NFS_NODE_H */
|
||||
|
||||
@@ -47,6 +47,8 @@
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/fs/nfs.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
@@ -246,9 +248,7 @@
|
||||
#define nfsv2tov_type(a) nv2tov_type[fxdr_unsigned(uint32_t,(a))&0x7]
|
||||
#define nfsv3tov_type(a) nv3tov_type[fxdr_unsigned(uint32_t,(a))&0x7]
|
||||
|
||||
#ifndef NFS_MAXFHSIZE
|
||||
# define NFS_MAXFHSIZE 64
|
||||
#endif
|
||||
#define NFS_MAXFHSIZE 64
|
||||
|
||||
/* File identifier */
|
||||
|
||||
@@ -299,14 +299,14 @@ struct fhandle
|
||||
typedef struct fhandle fhandle_t;
|
||||
|
||||
/* File Handle (32 bytes for version 2), variable up to 64 for version 3. */
|
||||
|
||||
/*
|
||||
union nfsfh
|
||||
{
|
||||
//fhandle_t fh_generic;
|
||||
fhandle_t fh_generic;
|
||||
unsigned char fh_bytes[NFS_MAXFHSIZE];
|
||||
};
|
||||
typedef union nfsfh nfsfh_t;
|
||||
|
||||
*/
|
||||
struct nfsv2_time
|
||||
{
|
||||
uint32_t nfsv2_sec;
|
||||
|
||||
@@ -46,11 +46,11 @@
|
||||
#include <string.h>
|
||||
#include <debug.h>
|
||||
|
||||
#include "nfs_args.h"
|
||||
#include <nuttx/fs/nfs.h>
|
||||
|
||||
#include "rpc.h"
|
||||
#include "rpc_v2.h"
|
||||
#include "nfs_proto.h"
|
||||
#include "nfs.h"
|
||||
#include "xdr_subs.h"
|
||||
#include "nfs_mount.h"
|
||||
#include "nfs_socket.h"
|
||||
|
||||
+1
-14
@@ -126,21 +126,8 @@ int nfs_checkmount(struct nfsmount *nmp)
|
||||
*/
|
||||
|
||||
DEBUGASSERT(nmp);
|
||||
if (nmp->nm_mounted)
|
||||
if (!nmp->nm_mounted)
|
||||
{
|
||||
/* We still think the mount is healthy. Check an see if this is
|
||||
* still the case
|
||||
*/
|
||||
|
||||
#warning "This makes no sense... If you get here, then you know that nmp->nm_mounted and the code will always return OK. Something is wrong."
|
||||
if (nmp->nm_mounted == true)
|
||||
{
|
||||
return OK;
|
||||
}
|
||||
/* If we get here, the mount is NOT healthy */
|
||||
|
||||
nmp->nm_mounted = false;
|
||||
|
||||
/* Make sure that this is flagged in every opened file */
|
||||
|
||||
for (file = nmp->nm_head; file; file = file->n_next)
|
||||
|
||||
@@ -64,6 +64,7 @@
|
||||
#include <nuttx/kmalloc.h>
|
||||
#include <nuttx/fs/dirent.h>
|
||||
#include <nuttx/fs/fs.h>
|
||||
#include <nuttx/fs/nfs.h>
|
||||
|
||||
#include <net/if.h>
|
||||
#include <netinet/in.h>
|
||||
@@ -72,11 +73,9 @@
|
||||
#include "rpc.h"
|
||||
#include "nfs_proto.h"
|
||||
#include "nfs_node.h"
|
||||
#include "nfs.h"
|
||||
#include "nfs_mount.h"
|
||||
#include "xdr_subs.h"
|
||||
#include "nfs_socket.h"
|
||||
#include "nfs_args.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
@@ -979,8 +978,7 @@ void nfs_decode_args(struct nfsmount *nmp, struct nfs_args *argp)
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int mountnfs(struct nfs_args *argp,/* struct inode *blkdriver,*/
|
||||
struct sockaddr *nam, void **handle)
|
||||
int mountnfs(struct nfs_args *argp, struct sockaddr *nam, void **handle)
|
||||
{
|
||||
struct nfsmount *nmp;
|
||||
int error;
|
||||
@@ -1024,7 +1022,7 @@ int mountnfs(struct nfs_args *argp,/* struct inode *blkdriver,*/
|
||||
nmp->nm_readdirsize = NFS_READDIRSIZE;
|
||||
nmp->nm_numgrps = NFS_MAXGRPS;
|
||||
nmp->nm_readahead = NFS_DEFRAHEAD;
|
||||
nmp->nm_fhsize = argp->fhsize;
|
||||
nmp->nm_fhsize = NFSX_V3FHMAX;
|
||||
nmp->nm_acregmin = NFS_MINATTRTIMO;
|
||||
nmp->nm_acregmax = NFS_MAXATTRTIMO;
|
||||
nmp->nm_acdirmin = NFS_MINATTRTIMO;
|
||||
@@ -1105,7 +1103,7 @@ static int nfs_bind(struct inode *blkdriver, const void *data, void **handle)
|
||||
}
|
||||
|
||||
nam = args.addr;
|
||||
error = mountnfs(&args/*, blkdriver*/, nam, handle);
|
||||
error = mountnfs(&args, nam, handle);
|
||||
return error;
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -108,7 +108,7 @@ struct rpctask
|
||||
{
|
||||
dq_entry_t r_chain;
|
||||
|
||||
struct rpcclnt *r_rpcclnt;
|
||||
struct rpcclnt *r_rpcclnt;
|
||||
|
||||
uint32_t r_xid;
|
||||
int r_flags; /* flags on request, see below */
|
||||
@@ -195,9 +195,9 @@ struct rpcclnt
|
||||
struct sockaddr *rc_name;
|
||||
struct socket *rc_so; /* Rpc socket */
|
||||
|
||||
int rc_sotype; /* Type of socket */
|
||||
uint8_t rc_sotype; /* Type of socket */
|
||||
int rc_soproto; /* and protocol */
|
||||
int rc_soflags; /* pr_flags for socket protocol */
|
||||
uint8_t rc_soflags; /* pr_flags for socket protocol */
|
||||
|
||||
int rc_timeo; /* Init timer for NFSMNT_DUMBTIMR */
|
||||
int rc_retry; /* Max retries */
|
||||
|
||||
@@ -93,8 +93,6 @@
|
||||
|
||||
#include "xdr_subs.h"
|
||||
#include "nfs_proto.h"
|
||||
#include "nfs.h"
|
||||
#include "nfs_args.h"
|
||||
#include "rpc.h"
|
||||
#include "rpc_clnt_private.h"
|
||||
#include "rpc_v2.h"
|
||||
@@ -940,7 +938,6 @@ int rpcclnt_connect(struct rpcclnt *rpc)
|
||||
|
||||
rpc->rc_so = NULL;
|
||||
saddr = rpc->rc_name;
|
||||
rpc->rc_sotype = SOCK_DGRAM;
|
||||
|
||||
error =
|
||||
psock_socket(saddr->sa_family, rpc->rc_sotype, rpc->rc_soproto, rpc->rc_so);
|
||||
|
||||
Reference in New Issue
Block a user