Move driver related prototypes out of include/nuttx/fs/fs.h and into new include/drivers/drivers.h

This commit is contained in:
Gregory Nutt 2016-07-20 13:15:37 -06:00
parent e73e82a923
commit 4b4dbc79a2
41 changed files with 355 additions and 363 deletions

View file

@ -44,7 +44,7 @@
#include <nuttx/arch.h>
#include <nuttx/board.h>
#include <nuttx/sched_note.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/fs/loop.h>
#include <nuttx/net/loopback.h>
#include <nuttx/net/tun.h>

View file

@ -52,6 +52,8 @@
#include <nuttx/irq.h>
#include <nuttx/arch.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include "up_arch.h"
#include "up_internal.h"

View file

@ -53,6 +53,8 @@
#include <nuttx/irq.h>
#include <nuttx/arch.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include "up_arch.h"
#include "up_internal.h"

View file

@ -46,6 +46,8 @@
#include <nuttx/irq.h>
#include <nuttx/arch.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include "up_arch.h"
#include "chip/stm32_rng.h"

View file

@ -47,6 +47,8 @@
#include <nuttx/irq.h>
#include <nuttx/arch.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include "up_arch.h"
#include "chip/stm32l4_rng.h"

View file

@ -43,7 +43,7 @@
#include <nuttx/arch.h>
#include <nuttx/sched_note.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/fs/loop.h>
#include <nuttx/net/loopback.h>
#include <nuttx/net/tun.h>

View file

@ -44,7 +44,7 @@
#include <nuttx/arch.h>
#include <nuttx/board.h>
#include <nuttx/sched_note.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/fs/loop.h>
#include <nuttx/net/loopback.h>
#include <nuttx/net/tun.h>

View file

@ -44,7 +44,7 @@
#include <nuttx/arch.h>
#include <nuttx/board.h>
#include <nuttx/sched_note.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/fs/loop.h>
#include <nuttx/net/loopback.h>
#include <nuttx/net/tun.h>

View file

@ -53,7 +53,7 @@
#include <nuttx/sched.h>
#include <nuttx/kmalloc.h>
#include <nuttx/arch.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/sched_note.h>
#include <nuttx/serial/pty.h>
#include <nuttx/syslog/syslog.h>

View file

@ -44,7 +44,7 @@
#include <nuttx/arch.h>
#include <nuttx/board.h>
#include <nuttx/sched_note.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/fs/loop.h>
#include <nuttx/net/loopback.h>
#include <nuttx/net/tun.h>

View file

@ -43,7 +43,7 @@
#include <nuttx/arch.h>
#include <nuttx/sched_note.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/fs/loop.h>
#include <nuttx/fs/ioctl.h>
#include <nuttx/net/loopback.h>

View file

@ -44,7 +44,7 @@
#include <nuttx/arch.h>
#include <nuttx/board.h>
#include <nuttx/sched_note.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/fs/loop.h>
#include <nuttx/net/loopback.h>
#include <nuttx/net/tun.h>

View file

@ -44,7 +44,7 @@
#include <nuttx/arch.h>
#include <nuttx/board.h>
#include <nuttx/sched_note.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/fs/loop.h>
#include <nuttx/net/loopback.h>
#include <nuttx/net/tun.h>

View file

@ -44,7 +44,7 @@
#include <nuttx/arch.h>
#include <nuttx/board.h>
#include <nuttx/sched_note.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/fs/loop.h>
#include <nuttx/net/loopback.h>
#include <nuttx/net/tun.h>

View file

@ -1,7 +1,7 @@
/****************************************************************************
* config/sama5d4-ek/src/sam_at25.c
*
* Copyright (C) 2014 Gregory Nutt. All rights reserved.
* Copyright (C) 2014, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -46,10 +46,10 @@
#include <errno.h>
#include <debug.h>
#include <nuttx/fs/fs.h>
#include <nuttx/spi/spi.h>
#include <nuttx/mtd/mtd.h>
#include <nuttx/fs/nxffs.h>
#include <nuttx/drivers/drivers.h>
#include "sam_spi.h"
#include "sama5d4-ek.h"

View file

@ -50,7 +50,7 @@
# include <nuttx/usb/usbmonitor.h>
#endif
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/fs/ramdisk.h>
#include <nuttx/fs/nxffs.h>
#include <nuttx/binfmt/elf.h>

View file

@ -50,7 +50,7 @@
# include <nuttx/usb/usbmonitor.h>
#endif
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/fs/ramdisk.h>
#include <nuttx/fs/nxffs.h>
#include <nuttx/binfmt/elf.h>

View file

@ -58,7 +58,7 @@
#include <arch/board/board.h>
#include <arch/board/boardctl.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/fs/ramdisk.h>
#include <nuttx/fs/nxffs.h>
#include <nuttx/fs/mkfatfs.h>

View file

@ -46,6 +46,7 @@
#include <errno.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/crypto/crypto.h>
#include <nuttx/crypto/cryptodev.h>

View file

@ -406,8 +406,8 @@ menuconfig BCH
---help---
Contains logic that may be used to convert a block driver into
a character driver. This is the complementary conversion as that
performed by loop.c. See include/nuttx/fs/fs.h for registration
information.
performed by loop.c. See include/nuttx/drivers/drivers.h for
registration information.
if BCH
source drivers/bch/Kconfig

View file

@ -1,7 +1,7 @@
/****************************************************************************
* drivers/bch/bchdev_driver.c
*
* Copyright (C) 2008-2009, 2014-2015 Gregory Nutt. All rights reserved.
* Copyright (C) 2008-2009, 2014-2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -57,6 +57,7 @@
#include <nuttx/fs/fs.h>
#include <nuttx/fs/ioctl.h>
#include <nuttx/drivers/drivers.h>
#include "bch.h"

View file

@ -1,7 +1,7 @@
/****************************************************************************
* drivers/bch/bchdev_register.c
*
* Copyright (C) 2008-2009, 2012 Gregory Nutt. All rights reserved.
* Copyright (C) 2008-2009, 2012, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -44,24 +44,11 @@
#include <assert.h>
#include <debug.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include "bch.h"
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
/****************************************************************************
* Public Data
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/

View file

@ -1,7 +1,7 @@
/****************************************************************************
* drivers/bch/bchdev_unregister.c
*
* Copyright (C) 2008-2009, 2012 Gregory Nutt. All rights reserved.
* Copyright (C) 2008-2009, 2012, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -51,25 +51,10 @@
#include <nuttx/fs/fs.h>
#include <nuttx/fs/ioctl.h>
#include <nuttx/drivers/drivers.h>
#include "bch.h"
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
/****************************************************************************
* Public Data
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/

View file

@ -1,7 +1,7 @@
/****************************************************************************
* drivers/bch/bchlib_cache.c
*
* Copyright (C) 2008-2009, 2014 Gregory Nutt. All rights reserved.
* Copyright (C) 2008-2009, 2014, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -45,26 +45,12 @@
#include <assert.h>
#include <debug.h>
#include <nuttx/fs/fs.h>
#include "bch.h"
#if defined(CONFIG_BCH_ENCRYPTION)
# include <crypto/crypto.h>
#endif
/****************************************************************************
* Private Types
****************************************************************************/
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
/****************************************************************************
* Private Data
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/

View file

@ -1,7 +1,7 @@
/****************************************************************************
* drivers/bch/bchlib_read.c
*
* Copyright (C) 2008-2009 Gregory Nutt. All rights reserved.
* Copyright (C) 2008-2009, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -46,8 +46,6 @@
#include <assert.h>
#include <debug.h>
#include <nuttx/fs/fs.h>
#include "bch.h"
/****************************************************************************

View file

@ -1,7 +1,7 @@
/****************************************************************************
* drivers/bch/bchlib_setup.c
*
* Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved.
* Copyright (C) 2008-2009, 2011, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -54,22 +54,6 @@
#include "bch.h"
/****************************************************************************
* Private Types
****************************************************************************/
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
/****************************************************************************
* Private Data
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/

View file

@ -1,7 +1,7 @@
/****************************************************************************
* drivers/bch/bchlib_teardown.c
*
* Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved.
* Copyright (C) 2008-2009, 2011, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -49,22 +49,6 @@
#include "bch.h"
/****************************************************************************
* Private Types
****************************************************************************/
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
/****************************************************************************
* Private Data
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/

View file

@ -1,7 +1,7 @@
/****************************************************************************
* drivers/bch/bchlib_write.c
*
* Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved.
* Copyright (C) 2008-2009, 2011, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -51,22 +51,6 @@
#include "bch.h"
/****************************************************************************
* Private Types
****************************************************************************/
/****************************************************************************
* Private Function Prototypes
****************************************************************************/
/****************************************************************************
* Private Data
****************************************************************************/
/****************************************************************************
* Private Functions
****************************************************************************/
/****************************************************************************
* Public Functions
****************************************************************************/
@ -80,7 +64,8 @@
*
****************************************************************************/
ssize_t bchlib_write(FAR void *handle, FAR const char *buffer, size_t offset, size_t len)
ssize_t bchlib_write(FAR void *handle, FAR const char *buffer, size_t offset,
size_t len)
{
FAR struct bchlib_s *bch = (FAR struct bchlib_s *)handle;
size_t nsectors;

View file

@ -1,7 +1,7 @@
/****************************************************************************
* drivers/dev_null.c
*
* Copyright (C) 2007, 2008, 2013 Gregory Nutt. All rights reserved.
* Copyright (C) 2007, 2008, 2013, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -44,7 +44,9 @@
#include <string.h>
#include <poll.h>
#include <errno.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
/****************************************************************************
* Private Function Prototypes

View file

@ -52,6 +52,7 @@
#include <nuttx/lib.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#if defined(CONFIG_DEV_URANDOM) && !defined(CONFIG_DEV_URANDOM_ARCH)

View file

@ -1,7 +1,7 @@
/****************************************************************************
* drivers/dev_zero.c
*
* Copyright (C) 2008-2009, 2012-2013 Gregory Nutt. All rights reserved.
* Copyright (C) 2008-2009, 2012-2013, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -44,7 +44,9 @@
#include <string.h>
#include <poll.h>
#include <errno.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
/****************************************************************************
* Private Function Prototypes

View file

@ -41,11 +41,12 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <stdint.h>
#include <nuttx/fs/fs.h>
#include <errno.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include "pipe_common.h"
#if CONFIG_DEV_FIFO_SIZE > 0

View file

@ -52,6 +52,7 @@
#include <errno.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include "pipe_common.h"

View file

@ -54,6 +54,7 @@
#include <nuttx/kmalloc.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#include <nuttx/serial/pty.h>
#include "pty.h"

View file

@ -63,7 +63,6 @@ extern "C"
* Public Function Prototypes
****************************************************************************/
/* fs_findblockdriver.c *****************************************************/
/****************************************************************************
* Name: find_blockdriver
*
@ -92,7 +91,6 @@ int find_blockdriver(FAR const char *pathname, int mountflags,
FAR struct inode **ppinode);
#endif
/* fs/drivers/fs_blockproxy.c ***********************************************/
/****************************************************************************
* Name: block_proxy
*

View file

@ -1,7 +1,7 @@
/****************************************************************************
* fs/driver/fs_blockproxy.c
*
* Copyright (C) 2015 Gregory Nutt. All rights reserved.
* Copyright (C) 2015-2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -53,7 +53,7 @@
#include <debug.h>
#include <nuttx/kmalloc.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#if !defined(CONFIG_DISABLE_PSEUDOFS_OPERATIONS) && \
!defined(CONFIG_DISABLE_MOUNTPOINT)

View file

@ -0,0 +1,288 @@
/****************************************************************************
* include/nuttx/fs/drivers.h
*
* Copyright (C) 2007-2009, 2011-2013, 2015-2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* 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.
* 3. Neither the name NuttX 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 COPYRIGHT HOLDERS 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
* COPYRIGHT OWNER 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 __INCLUDE_NUTTX_FS_DRIVERS_H
#define __INCLUDE_NUTTX_FS_DRIVERS_H
/****************************************************************************
* Included Files
****************************************************************************/
#include <nuttx/config.h>
#include <sys/types.h>
#include <stdbool.h>
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
#undef EXTERN
#if defined(__cplusplus)
#define EXTERN extern "C"
extern "C"
{
#else
#define EXTERN extern
#endif
/****************************************************************************
* Name: devnull_register
*
* Description:
* Register /dev/null
*
* Input Parameters:
* None
*
* Returned Value:
* None
*
****************************************************************************/
void devnull_register(void);
/****************************************************************************
* Name: devrandom_register
*
* Description:
* Initialize the RNG hardware and register the /dev/random driver.
*
* Input Parameters:
* None
*
* Returned Value:
* None
*
****************************************************************************/
#ifdef CONFIG_DEV_RANDOM
void devrandom_register(void);
#endif
/****************************************************************************
* Name: devurandom_register
*
* Description:
* Register /dev/urandom
*
* Input Parameters:
* None
*
* Returned Value:
* None
*
****************************************************************************/
#ifdef CONFIG_DEV_URANDOM
void devurandom_register(void);
#endif
/****************************************************************************
* Name: devcrypto_register
*
* Description:
* Register /dev/crypto
*
* Input Parameters:
* None
*
* Returned Value:
* None
*
****************************************************************************/
void devcrypto_register(void);
/****************************************************************************
* Name: devzero_register
*
* Description:
* Register /dev/zero
*
* Input Parameters:
* None
*
* Returned Value:
* None
*
****************************************************************************/
void devzero_register(void);
/****************************************************************************
* Name: bchdev_register
*
* Description:
* Setup so that it exports the block driver referenced by 'blkdev' as a
* character device 'chardev'
*
****************************************************************************/
int bchdev_register(FAR const char *blkdev, FAR const char *chardev,
bool readonly);
/****************************************************************************
* Name: bchdev_unregister
*
* Description:
* Unregister character driver access to a block device that was created
* by a previous call to bchdev_register().
*
****************************************************************************/
int bchdev_unregister(FAR const char *chardev);
/* Low level, direct access. NOTE: low-level access and character driver access
* are incompatible. One and only one access method should be implemented.
*/
/****************************************************************************
* Name: bchlib_setup
*
* Description:
* Setup so that the block driver referenced by 'blkdev' can be accessed
* similar to a character device.
*
****************************************************************************/
int bchlib_setup(FAR const char *blkdev, bool readonly, FAR void **handle);
/****************************************************************************
* Name: bchlib_teardown
*
* Description:
* Setup so that the block driver referenced by 'blkdev' can be accessed
* similar to a character device.
*
****************************************************************************/
int bchlib_teardown(FAR void *handle);
/****************************************************************************
* Name: bchlib_read
*
* Description:
* Read from the block device set-up by bchlib_setup as if it were a
* character device.
*
****************************************************************************/
ssize_t bchlib_read(FAR void *handle, FAR char *buffer, size_t offset,
size_t len);
/****************************************************************************
* Name: bchlib_write
*
* Description:
* Write to the block device set-up by bchlib_setup as if it were a
* character device.
*
****************************************************************************/
ssize_t bchlib_write(FAR void *handle, FAR const char *buffer, size_t offset,
size_t len);
/****************************************************************************
* Name: pipe2
*
* Description:
* pipe() creates a pair of file descriptors, pointing to a pipe inode,
* and places them in the array pointed to by 'fd'. fd[0] is for reading,
* fd[1] is for writing.
*
* NOTE: mkfifo2 is a special, non-standard, NuttX-only interface. Since
* the NuttX FIFOs are based in in-memory, circular buffers, the ability
* to control the size of those buffers is critical for system tuning.
*
* Inputs:
* fd[2] - The user provided array in which to catch the pipe file
* descriptors
* bufsize - The size of the in-memory, circular buffer in bytes.
*
* Return:
* 0 is returned on success; otherwise, -1 is returned with errno set
* appropriately.
*
****************************************************************************/
#if defined(CONFIG_PIPES) && CONFIG_DEV_PIPE_SIZE > 0
int pipe2(int fd[2], size_t bufsize);
#endif
/****************************************************************************
* Name: mkfifo2
*
* Description:
* mkfifo() makes a FIFO device driver file with name 'pathname.' Unlike
* Linux, a NuttX FIFO is not a special file type but simply a device
* driver instance. 'mode' specifies the FIFO's permissions.
*
* Once the FIFO has been created by mkfifo(), any thread can open it for
* reading or writing, in the same way as an ordinary file. However, it
* must have been opened from both reading and writing before input or
* output can be performed. This FIFO implementation will block all
* attempts to open a FIFO read-only until at least one thread has opened
* the FIFO for writing.
*
* If all threads that write to the FIFO have closed, subsequent calls to
* read() on the FIFO will return 0 (end-of-file).
*
* NOTE: mkfifo2 is a special, non-standard, NuttX-only interface. Since
* the NuttX FIFOs are based in in-memory, circular buffers, the ability
* to control the size of those buffers is critical for system tuning.
*
* Inputs:
* pathname - The full path to the FIFO instance to attach to or to create
* (if not already created).
* mode - Ignored for now
* bufsize - The size of the in-memory, circular buffer in bytes.
*
* Return:
* 0 is returned on success; otherwise, -1 is returned with errno set
* appropriately.
*
****************************************************************************/
#if defined(CONFIG_PIPES) && CONFIG_DEV_FIFO_SIZE > 0
int mkfifo2(FAR const char *pathname, mode_t mode, size_t bufsize);
#endif
#undef EXTERN
#if defined(__cplusplus)
}
#endif
#endif /* __INCLUDE_NUTTX_FS_DRIVERS_H */

View file

@ -1,7 +1,7 @@
/****************************************************************************
* include/nuttx/fs/fs.h
*
* Copyright (C) 2007-2009, 2011-2013, 2015 Gregory Nutt. All rights reserved.
* Copyright (C) 2007-2009, 2011-2013, 2015-2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -498,8 +498,9 @@ int foreach_mountpoint(foreach_mountpoint_t handler, FAR void *arg);
*
****************************************************************************/
int register_driver(FAR const char *path, FAR const struct file_operations *fops,
mode_t mode, FAR void *priv);
int register_driver(FAR const char *path,
FAR const struct file_operations *fops, mode_t mode,
FAR void *priv);
/****************************************************************************
* Name: register_blockdriver
@ -526,8 +527,8 @@ int register_driver(FAR const char *path, FAR const struct file_operations *fops
#ifndef CONFIG_DISABLE_MOUNTPOINT
int register_blockdriver(FAR const char *path,
FAR const struct block_operations *bops, mode_t mode,
FAR void *priv);
FAR const struct block_operations *bops,
mode_t mode, FAR void *priv);
#endif
/****************************************************************************
@ -538,7 +539,7 @@ int register_blockdriver(FAR const char *path,
*
****************************************************************************/
int unregister_driver(const char *path);
int unregister_driver(FAR const char *path);
/****************************************************************************
* Name: unregister_blockdriver
@ -548,7 +549,7 @@ int unregister_driver(const char *path);
*
****************************************************************************/
int unregister_blockdriver(const char *path);
int unregister_blockdriver(FAR const char *path);
/****************************************************************************
* Name: inode_checkflags
@ -1004,228 +1005,6 @@ int file_poll(FAR struct file *filep, FAR struct pollfd *fds, bool setup);
int fdesc_poll(int fd, FAR struct pollfd *fds, bool setup);
#endif
/****************************************************************************
* Name: devnull_register
*
* Description:
* Register /dev/null
*
* Input Parameters:
* None
*
* Returned Value:
* None
*
****************************************************************************/
void devnull_register(void);
/****************************************************************************
* Name: devrandom_register
*
* Description:
* Initialize the RNG hardware and register the /dev/random driver.
*
* Input Parameters:
* None
*
* Returned Value:
* None
*
****************************************************************************/
#ifdef CONFIG_DEV_RANDOM
void devrandom_register(void);
#endif
/****************************************************************************
* Name: devurandom_register
*
* Description:
* Register /dev/urandom
*
* Input Parameters:
* None
*
* Returned Value:
* None
*
****************************************************************************/
#ifdef CONFIG_DEV_URANDOM
void devurandom_register(void);
#endif
/****************************************************************************
* Name: devcrypto_register
*
* Description:
* Register /dev/crypto
*
* Input Parameters:
* None
*
* Returned Value:
* None
*
****************************************************************************/
void devcrypto_register(void);
/****************************************************************************
* Name: devzero_register
*
* Description:
* Register /dev/zero
*
* Input Parameters:
* None
*
* Returned Value:
* None
*
****************************************************************************/
void devzero_register(void);
/****************************************************************************
* Name: bchdev_register
*
* Description:
* Setup so that it exports the block driver referenced by 'blkdev' as a
* character device 'chardev'
*
****************************************************************************/
int bchdev_register(FAR const char *blkdev, FAR const char *chardev,
bool readonly);
/****************************************************************************
* Name: bchdev_unregister
*
* Description:
* Unregister character driver access to a block device that was created
* by a previous call to bchdev_register().
*
****************************************************************************/
int bchdev_unregister(FAR const char *chardev);
/* Low level, direct access. NOTE: low-level access and character driver access
* are incompatible. One and only one access method should be implemented.
*/
/****************************************************************************
* Name: bchlib_setup
*
* Description:
* Setup so that the block driver referenced by 'blkdev' can be accessed
* similar to a character device.
*
****************************************************************************/
int bchlib_setup(FAR const char *blkdev, bool readonly, FAR void **handle);
/****************************************************************************
* Name: bchlib_teardown
*
* Description:
* Setup so that the block driver referenced by 'blkdev' can be accessed
* similar to a character device.
*
****************************************************************************/
int bchlib_teardown(FAR void *handle);
/****************************************************************************
* Name: bchlib_read
*
* Description:
* Read from the block device set-up by bchlib_setup as if it were a
* character device.
*
****************************************************************************/
ssize_t bchlib_read(FAR void *handle, FAR char *buffer, size_t offset,
size_t len);
/****************************************************************************
* Name: bchlib_write
*
* Description:
* Write to the block device set-up by bchlib_setup as if it were a
* character device.
*
****************************************************************************/
ssize_t bchlib_write(FAR void *handle, FAR const char *buffer, size_t offset,
size_t len);
/****************************************************************************
* Name: pipe2
*
* Description:
* pipe() creates a pair of file descriptors, pointing to a pipe inode,
* and places them in the array pointed to by 'fd'. fd[0] is for reading,
* fd[1] is for writing.
*
* NOTE: mkfifo2 is a special, non-standard, NuttX-only interface. Since
* the NuttX FIFOs are based in in-memory, circular buffers, the ability
* to control the size of those buffers is critical for system tuning.
*
* Inputs:
* fd[2] - The user provided array in which to catch the pipe file
* descriptors
* bufsize - The size of the in-memory, circular buffer in bytes.
*
* Return:
* 0 is returned on success; otherwise, -1 is returned with errno set
* appropriately.
*
****************************************************************************/
#if defined(CONFIG_PIPES) && CONFIG_DEV_PIPE_SIZE > 0
int pipe2(int fd[2], size_t bufsize);
#endif
/****************************************************************************
* Name: mkfifo2
*
* Description:
* mkfifo() makes a FIFO device driver file with name 'pathname.' Unlike
* Linux, a NuttX FIFO is not a special file type but simply a device
* driver instance. 'mode' specifies the FIFO's permissions.
*
* Once the FIFO has been created by mkfifo(), any thread can open it for
* reading or writing, in the same way as an ordinary file. However, it
* must have been opened from both reading and writing before input or
* output can be performed. This FIFO implementation will block all
* attempts to open a FIFO read-only until at least one thread has opened
* the FIFO for writing.
*
* If all threads that write to the FIFO have closed, subsequent calls to
* read() on the FIFO will return 0 (end-of-file).
*
* NOTE: mkfifo2 is a special, non-standard, NuttX-only interface. Since
* the NuttX FIFOs are based in in-memory, circular buffers, the ability
* to control the size of those buffers is critical for system tuning.
*
* Inputs:
* pathname - The full path to the FIFO instance to attach to or to create
* (if not already created).
* mode - Ignored for now
* bufsize - The size of the in-memory, circular buffer in bytes.
*
* Return:
* 0 is returned on success; otherwise, -1 is returned with errno set
* appropriately.
*
****************************************************************************/
#if defined(CONFIG_PIPES) && CONFIG_DEV_FIFO_SIZE > 0
int mkfifo2(FAR const char *pathname, mode_t mode, size_t bufsize);
#endif
#undef EXTERN
#if defined(__cplusplus)
}

View file

@ -42,7 +42,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#if defined(CONFIG_PIPES) && CONFIG_DEV_FIFO_SIZE > 0

View file

@ -41,7 +41,7 @@
#include <unistd.h>
#include <nuttx/fs/fs.h>
#include <nuttx/drivers/drivers.h>
#if defined(CONFIG_PIPES) && CONFIG_DEV_PIPE_SIZE > 0

View file

@ -34,7 +34,7 @@
"listen","sys/socket.h","CONFIG_NSOCKET_DESCRIPTORS > 0 && defined(CONFIG_NET)","int","int","int"
"lseek","unistd.h","CONFIG_NFILE_DESCRIPTORS > 0","off_t","int","off_t","int"
"mkdir","sys/stat.h","CONFIG_NFILE_DESCRIPTORS > 0 && !defined(CONFIG_DISABLE_MOUNTPOINT)","int","FAR const char*","mode_t"
"mkfifo2","nuttx/fs/fs.h","defined(CONFIG_PIPES) && CONFIG_DEV_FIFO_SIZE > 0","int","FAR const char*","mode_t","size_t"
"mkfifo2","nuttx/drivers/drivers.h","defined(CONFIG_PIPES) && CONFIG_DEV_FIFO_SIZE > 0","int","FAR const char*","mode_t","size_t"
"mmap","sys/mman.h","CONFIG_NFILE_DESCRIPTORS > 0","FAR void*","FAR void*","size_t","int","int","int","off_t"
"mount","sys/mount.h","CONFIG_NFILE_DESCRIPTORS > 0 && !defined(CONFIG_DISABLE_MOUNTPOINT) && defined(CONFIG_FS_READABLE)","int","const char*","const char*","const char*","unsigned long","const void*"
"mq_close","mqueue.h","!defined(CONFIG_DISABLE_MQUEUE)","int","mqd_t"
@ -52,7 +52,7 @@
"open","fcntl.h","CONFIG_NFILE_DESCRIPTORS > 0","int","const char*","int","..."
"opendir","dirent.h","CONFIG_NFILE_DESCRIPTORS > 0","FAR DIR*","FAR const char*"
"pgalloc", "nuttx/arch.h", "defined(CONFIG_BUILD_KERNEL)", "uintptr_t", "uintptr_t", "unsigned int"
"pipe2","nuttx/fs/fs.h","defined(CONFIG_PIPES) && CONFIG_DEV_PIPE_SIZE > 0","int","int [2]|int*","size_t"
"pipe2","nuttx/drivers/drivers.h","defined(CONFIG_PIPES) && CONFIG_DEV_PIPE_SIZE > 0","int","int [2]|int*","size_t"
"poll","poll.h","!defined(CONFIG_DISABLE_POLL) && (CONFIG_NSOCKET_DESCRIPTORS > 0 || CONFIG_NFILE_DESCRIPTORS > 0)","int","FAR struct pollfd*","nfds_t","int"
"prctl","sys/prctl.h", "CONFIG_TASK_NAME_SIZE > 0","int","int","..."
"pread","unistd.h","CONFIG_NSOCKET_DESCRIPTORS > 0 || CONFIG_NFILE_DESCRIPTORS > 0","ssize_t","int","FAR void*","size_t","off_t"

Can't render this file because it has a wrong number of fields in line 2.