summaryrefslogtreecommitdiff
path: root/nuttx/fs
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-08-03 19:11:11 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-08-03 19:11:11 +0000
commit4245767d673bcdf78d612c8d51aa9807fdbb724b (patch)
treeda55e9fab23eebbf67c222daf2efe23f93daf1ec /nuttx/fs
parent915abc09ad5aa6f4dabaae0876d3bead833edc3e (diff)
downloadpx4-nuttx-4245767d673bcdf78d612c8d51aa9807fdbb724b.tar.gz
px4-nuttx-4245767d673bcdf78d612c8d51aa9807fdbb724b.tar.bz2
px4-nuttx-4245767d673bcdf78d612c8d51aa9807fdbb724b.zip
Add capability to traverse inodes in the NuttX psuedo-filesystem
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5004 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/fs')
-rw-r--r--nuttx/fs/Makefile46
-rw-r--r--nuttx/fs/fs_filedup.c11
-rw-r--r--nuttx/fs/fs_filedup2.c12
-rw-r--r--nuttx/fs/fs_files.c11
-rw-r--r--nuttx/fs/fs_open.c10
-rw-r--r--nuttx/fs/fs_registerblockdriver.c2
-rw-r--r--nuttx/fs/fs_unregisterblockdriver.c6
-rw-r--r--nuttx/fs/fs_unregisterdriver.c6
8 files changed, 63 insertions, 41 deletions
diff --git a/nuttx/fs/Makefile b/nuttx/fs/Makefile
index 0f01c0a63..ce952e06f 100644
--- a/nuttx/fs/Makefile
+++ b/nuttx/fs/Makefile
@@ -35,10 +35,10 @@
-include $(TOPDIR)/Make.defs
-ASRCS =
-AOBJS = $(ASRCS:.S=$(OBJEXT))
+ASRCS =
+AOBJS = $(ASRCS:.S=$(OBJEXT))
-CSRCS =
+CSRCS =
# If there are no file descriptors configured, then a small part of the
# logic in this directory may still apply to socket descriptors
@@ -48,27 +48,28 @@ ifneq ($(CONFIG_NSOCKET_DESCRIPTORS),0)
# Socket descriptor support
-CSRCS += fs_close.c fs_read.c fs_write.c fs_ioctl.c fs_poll.c fs_select.c
+CSRCS += fs_close.c fs_read.c fs_write.c fs_ioctl.c fs_poll.c fs_select.c
endif
# Support for network access using streams
ifneq ($(CONFIG_NFILE_STREAMS),0)
-CSRCS += fs_fdopen.c
+CSRCS += fs_fdopen.c
endif
else
# Common file/socket descriptor support
-CSRCS += fs_open.c fs_close.c fs_read.c fs_write.c fs_ioctl.c \
- fs_poll.c fs_select.c fs_lseek.c fs_dup.c fs_filedup.c \
- fs_dup2.c fs_fcntl.c fs_filedup2.c fs_opendir.c fs_closedir.c \
- fs_stat.c fs_readdir.c fs_seekdir.c fs_rewinddir.c fs_files.c \
- fs_inode.c fs_inodefind.c fs_inodereserve.c fs_statfs.c \
- fs_inoderemove.c fs_registerdriver.c fs_unregisterdriver.c \
- fs_inodeaddref.c fs_inoderelease.c
-CSRCS += fs_registerblockdriver.c fs_unregisterblockdriver.c \
+CSRCS += fs_close.c fs_closedir.c fs_dup.c fs_dup2.c fs_fcntl.c \
+ fs_filedup.c fs_filedup2.c fs_ioctl.c fs_lseek.c fs_open.c \
+ fs_opendir.c fs_poll.c fs_read.c fs_readdir.c fs_rewinddir.c \
+ fs_seekdir.c fs_stat.c fs_statfs.c fs_select.c fs_write.c
+CSRCS += fs_files.c fs_foreachinode.c fs_inode.c fs_inodeaddref.c \
+ fs_inodefind.c fs_inoderelease.c fs_inoderemove.c \
+ fs_inodereserve.c
+CSRCS += fs_registerdriver.c fs_unregisterdriver.c
+CSRCS += fs_registerblockdriver.c fs_unregisterblockdriver.c \
fs_findblockdriver.c fs_openblockdriver.c fs_closeblockdriver.c
include mmap/Make.defs
@@ -76,22 +77,23 @@ include mmap/Make.defs
# Stream support
ifneq ($(CONFIG_NFILE_STREAMS),0)
-CSRCS += fs_fdopen.c
+CSRCS += fs_fdopen.c
endif
# System logging to a character device (or file)
ifeq ($(CONFIG_SYSLOG),y)
ifeq ($(CONFIG_SYSLOG_CHAR),y)
-CSRCS += fs_syslog.c
+CSRCS += fs_syslog.c
endif
endif
# Additional files required is mount-able file systems are supported
ifneq ($(CONFIG_DISABLE_MOUNTPOINT),y)
-CSRCS += fs_mount.c fs_umount.c fs_fsync.c fs_unlink.c fs_rename.c \
- fs_mkdir.c fs_rmdir.c
+CSRCS += fs_fsync.c fs_mkdir.c fs_mount.c fs_rename.c fs_rmdir.c \
+ fs_umount.c fs_unlink.c
+CSRCS += fs_foreachmountpoint.c
include fat/Make.defs
include romfs/Make.defs
include nxffs/Make.defs
@@ -99,15 +101,15 @@ include nfs/Make.defs
endif
endif
-COBJS = $(CSRCS:.c=$(OBJEXT))
+COBJS = $(CSRCS:.c=$(OBJEXT))
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
+SRCS = $(ASRCS) $(CSRCS)
+OBJS = $(AOBJS) $(COBJS)
BIN = libfs$(LIBEXT)
-SUBDIRS = mmap fat romfs nxffs:nfs
-VPATH = mmap:fat:romfs:nxffs:nfs
+SUBDIRS = mmap fat romfs nxffs:nfs
+VPATH = mmap:fat:romfs:nxffs:nfs
all: $(BIN)
diff --git a/nuttx/fs/fs_filedup.c b/nuttx/fs/fs_filedup.c
index d074b3fab..b7eeb7add 100644
--- a/nuttx/fs/fs_filedup.c
+++ b/nuttx/fs/fs_filedup.c
@@ -1,7 +1,7 @@
/****************************************************************************
* fs/fs_filedup.c
*
- * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@@ -68,10 +68,11 @@
* Name: file_dup OR dup
*
* Description:
- * Clone a file descriptor to an arbitray descriptor number. If socket
- * descriptors are implemented, then this is called by dup() for the case
- * of file descriptors. If socket descriptors are not implemented, then
- * this function IS dup().
+ * Clone a file descriptor 'fd' to an arbitray descriptor number (any value
+ * greater than or equal to 'minfd'). If socket descriptors are
+ * implemented, then this is called by dup() for the case of file
+ * descriptors. If socket descriptors are not implemented, then this
+ * function IS dup().
*
****************************************************************************/
diff --git a/nuttx/fs/fs_filedup2.c b/nuttx/fs/fs_filedup2.c
index 0e785ca48..d064aa08b 100644
--- a/nuttx/fs/fs_filedup2.c
+++ b/nuttx/fs/fs_filedup2.c
@@ -1,7 +1,7 @@
/****************************************************************************
* fs/fs_filedup2.c
*
- * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@@ -64,13 +64,13 @@
****************************************************************************/
/****************************************************************************
- * Name: file_dup2
+ * Name: file_dup2 OR dup2
*
* Description:
- * Clone a file descriptor or socket descriptor to a specific descriptor
- * number. If socket descriptors are implemented, then this is called by
- * dup2() for the case of file descriptors. If socket descriptors are not
- * implemented, then this function IS dup2().
+ * Clone a file descriptor to a specific descriptor number. If socket
+ * descriptors are implemented, then this is called by dup2() for the
+ * case of file descriptors. If socket descriptors are not implemented,
+ * then this function IS dup2().
*
****************************************************************************/
diff --git a/nuttx/fs/fs_files.c b/nuttx/fs/fs_files.c
index 9208b323b..3646c51e7 100644
--- a/nuttx/fs/fs_files.c
+++ b/nuttx/fs/fs_files.c
@@ -56,7 +56,7 @@
****************************************************************************/
/****************************************************************************
- * Public Types
+ * Private Types
****************************************************************************/
/****************************************************************************
@@ -182,7 +182,8 @@ FAR struct filelist *files_alloclist(void)
/****************************************************************************
* Name: files_addreflist
*
- * Description: Increase the reference count on a file list
+ * Description:
+ * Increase the reference count on a file list
*
****************************************************************************/
@@ -209,7 +210,8 @@ int files_addreflist(FAR struct filelist *list)
/****************************************************************************
* Name: files_releaselist
*
- * Description: Release a reference to the file list
+ * Description:
+ * Release a reference to the file list
*
****************************************************************************/
@@ -264,7 +266,8 @@ int files_releaselist(FAR struct filelist *list)
* Name: files_dup
*
* Description:
- * Assign an inode to a specific files structure. This is the heart of dup2.
+ * Assign an inode to a specific files structure. This is the heart of
+ * dup2.
*
****************************************************************************/
diff --git a/nuttx/fs/fs_open.c b/nuttx/fs/fs_open.c
index ccdb05cef..5b318b702 100644
--- a/nuttx/fs/fs_open.c
+++ b/nuttx/fs/fs_open.c
@@ -1,7 +1,7 @@
/****************************************************************************
* fs_open.c
*
- * Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved.
+ * Copyright (C) 2007-2009, 2011-2012 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@@ -58,6 +58,10 @@
/****************************************************************************
* Name: inode_checkflags
+ *
+ * Description:
+ * Check if the access described by 'oflags' is supported on 'inode'
+ *
****************************************************************************/
int inode_checkflags(FAR struct inode *inode, int oflags)
@@ -75,6 +79,10 @@ int inode_checkflags(FAR struct inode *inode, int oflags)
/****************************************************************************
* Name: open
+ *
+ * Description:
+ * Standard 'open' interface
+ *
****************************************************************************/
int open(const char *path, int oflags, ...)
diff --git a/nuttx/fs/fs_registerblockdriver.c b/nuttx/fs/fs_registerblockdriver.c
index 365e164e1..bb5a3121b 100644
--- a/nuttx/fs/fs_registerblockdriver.c
+++ b/nuttx/fs/fs_registerblockdriver.c
@@ -67,7 +67,7 @@
****************************************************************************/
/****************************************************************************
- * Name: register_driver
+ * Name: register_blockdriver
*
* Description:
* Register a block driver inode the pseudo file system.
diff --git a/nuttx/fs/fs_unregisterblockdriver.c b/nuttx/fs/fs_unregisterblockdriver.c
index 0166da141..4ee9016fc 100644
--- a/nuttx/fs/fs_unregisterblockdriver.c
+++ b/nuttx/fs/fs_unregisterblockdriver.c
@@ -68,7 +68,11 @@
****************************************************************************/
/****************************************************************************
- * Name: unregister_blockdriver()
+ * Name: unregister_blockdriver
+ *
+ * Description:
+ * Remove the block driver inode at 'path' from the psuedo-file system
+ *
****************************************************************************/
int unregister_blockdriver(const char *path)
diff --git a/nuttx/fs/fs_unregisterdriver.c b/nuttx/fs/fs_unregisterdriver.c
index 9ab7fb6ce..7537274b5 100644
--- a/nuttx/fs/fs_unregisterdriver.c
+++ b/nuttx/fs/fs_unregisterdriver.c
@@ -68,7 +68,11 @@
****************************************************************************/
/****************************************************************************
- * Name: unregister_driver()
+ * Name: unregister_driver
+ *
+ * Description:
+ * Remove the character driver inode at 'path' from the psuedo-file system
+ *
****************************************************************************/
int unregister_driver(FAR const char *path)