diff --git a/drivers/Kconfig b/drivers/Kconfig index ed3612d085..591023bc1f 100644 --- a/drivers/Kconfig +++ b/drivers/Kconfig @@ -19,7 +19,6 @@ config DRVR_MKRD bool "RAM disk wrapper (mkrd)" default n select FS_READABLE - select FS_WRITABLE ---help--- Build the mkrd() function which serves as a wrapper to simplify creation of RAM disks. If the boardctrl() interface is enabled, diff --git a/drivers/loop/losetup.c b/drivers/loop/losetup.c index f92b4cdae4..df2f8e77d9 100644 --- a/drivers/loop/losetup.c +++ b/drivers/loop/losetup.c @@ -1,36 +1,20 @@ /**************************************************************************** * drivers/loop/losetup.c * - * Copyright (C) 2008-2009, 2011, 2014-2015, 2017-2018 Gregory Nutt. All - * rights reserved. - * Author: Gregory Nutt + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: + * http://www.apache.org/licenses/LICENSE-2.0 * - * 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. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. * ****************************************************************************/ @@ -79,9 +63,7 @@ struct loop_struct_s off_t offset; /* Offset (in bytes) to the first sector */ uint16_t sectsize; /* The size of one sector */ uint8_t opencnt; /* Count of open references to the loop device */ -#ifdef CONFIG_FS_WRITABLE bool writeenabled; /* true: can write to device */ -#endif struct file devfile; /* File struct of char device/file */ }; @@ -94,11 +76,9 @@ static int loop_open(FAR struct inode *inode); static int loop_close(FAR struct inode *inode); static ssize_t loop_read(FAR struct inode *inode, FAR unsigned char *buffer, size_t start_sector, unsigned int nsectors); -#ifdef CONFIG_FS_WRITABLE static ssize_t loop_write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t start_sector, unsigned int nsectors); -#endif static int loop_geometry(FAR struct inode *inode, FAR struct geometry *geometry); @@ -111,11 +91,7 @@ static const struct block_operations g_bops = loop_open, /* open */ loop_close, /* close */ loop_read, /* read */ -#ifdef CONFIG_FS_WRITABLE loop_write, /* write */ -#else - NULL, /* write */ -#endif loop_geometry, /* geometry */ NULL /* ioctl */ #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS @@ -270,7 +246,6 @@ static ssize_t loop_read(FAR struct inode *inode, FAR unsigned char *buffer, * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static ssize_t loop_write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t start_sector, unsigned int nsectors) @@ -310,7 +285,6 @@ static ssize_t loop_write(FAR struct inode *inode, return nbyteswritten / dev->sectsize; } -#endif /**************************************************************************** * Name: loop_geometry @@ -330,11 +304,7 @@ static int loop_geometry(FAR struct inode *inode, dev = (FAR struct loop_struct_s *)inode->i_private; geometry->geo_available = true; geometry->geo_mediachanged = false; -#ifdef CONFIG_FS_WRITABLE geometry->geo_writeenabled = dev->writeenabled; -#else - geometry->geo_writeenabled = false; -#endif geometry->geo_nsectors = dev->nsectors; geometry->geo_sectorsize = dev->sectsize; return OK; @@ -407,7 +377,6 @@ int losetup(FAR const char *devname, FAR const char *filename, /* Open the file. */ -#ifdef CONFIG_FS_WRITABLE /* First try to open the device R/W access (unless we are asked * to open it readonly). */ @@ -423,7 +392,6 @@ int losetup(FAR const char *devname, FAR const char *filename, dev->writeenabled = true; /* Success */ } else -#endif { /* If that fails, then try to open the device read-only */ diff --git a/drivers/mmcsd/mmcsd_sdio.c b/drivers/mmcsd/mmcsd_sdio.c index f30dc02801..776c96ba12 100644 --- a/drivers/mmcsd/mmcsd_sdio.c +++ b/drivers/mmcsd/mmcsd_sdio.c @@ -1,37 +1,20 @@ /**************************************************************************** * drivers/mmcsd/mmcsd_sdio.c * - * Copyright (C) 2009-2013, 2016-2019 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt - * Bob Feretich - * Ivan Ucherdzhiev + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: + * http://www.apache.org/licenses/LICENSE-2.0 * - * 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. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. * ****************************************************************************/ @@ -190,9 +173,7 @@ static int mmcsd_verifystate(FAR struct mmcsd_state_s *priv, /* Transfer helpers *********************************************************/ -#ifdef CONFIG_FS_WRITABLE static bool mmcsd_wrprotected(FAR struct mmcsd_state_s *priv); -#endif static int mmcsd_eventwait(FAR struct mmcsd_state_s *priv, sdio_eventset_t failevents, uint32_t timeout); static int mmcsd_transferready(FAR struct mmcsd_state_s *priv); @@ -211,7 +192,6 @@ static ssize_t mmcsd_readmultiple(FAR struct mmcsd_state_s *priv, static ssize_t mmcsd_reload(FAR void *dev, FAR uint8_t *buffer, off_t startblock, size_t nblocks); #endif -#ifdef CONFIG_FS_WRITABLE static ssize_t mmcsd_writesingle(FAR struct mmcsd_state_s *priv, FAR const uint8_t *buffer, off_t startblock); #ifndef CONFIG_MMCSD_MULTIBLOCK_DISABLE @@ -222,7 +202,6 @@ static ssize_t mmcsd_writemultiple(FAR struct mmcsd_state_s *priv, static ssize_t mmcsd_flush(FAR void *dev, FAR const uint8_t *buffer, off_t startblock, size_t nblocks); #endif -#endif /* Block driver methods *****************************************************/ @@ -230,11 +209,9 @@ static int mmcsd_open(FAR struct inode *inode); static int mmcsd_close(FAR struct inode *inode); static ssize_t mmcsd_read(FAR struct inode *inode, FAR unsigned char *buffer, size_t startsector, unsigned int nsectors); -#ifdef CONFIG_FS_WRITABLE static ssize_t mmcsd_write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t startsector, unsigned int nsectors); -#endif static int mmcsd_geometry(FAR struct inode *inode, FAR struct geometry *geometry); static int mmcsd_ioctl(FAR struct inode *inode, int cmd, @@ -264,11 +241,7 @@ static const struct block_operations g_bops = mmcsd_open, /* open */ mmcsd_close, /* close */ mmcsd_read, /* read */ -#ifdef CONFIG_FS_WRITABLE mmcsd_write, /* write */ -#else - NULL, /* write */ -#endif mmcsd_geometry, /* geometry */ mmcsd_ioctl /* ioctl */ }; @@ -1127,7 +1100,6 @@ static int mmcsd_verifystate(FAR struct mmcsd_state_s *priv, uint32_t state) * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static bool mmcsd_wrprotected(FAR struct mmcsd_state_s *priv) { /* Check if the card is locked (priv->locked) or write protected either (1) @@ -1138,7 +1110,6 @@ static bool mmcsd_wrprotected(FAR struct mmcsd_state_s *priv) return (priv->wrprotect || priv->locked || SDIO_WRPROTECTED(priv->dev)); } -#endif /**************************************************************************** * Name: mmcsd_eventwait @@ -1703,7 +1674,6 @@ static ssize_t mmcsd_reload(FAR void *dev, FAR uint8_t *buffer, * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static ssize_t mmcsd_writesingle(FAR struct mmcsd_state_s *priv, FAR const uint8_t *buffer, off_t startblock) { @@ -1857,7 +1827,6 @@ static ssize_t mmcsd_writesingle(FAR struct mmcsd_state_s *priv, return 1; } -#endif /**************************************************************************** * Name: mmcsd_writemultiple @@ -1869,7 +1838,7 @@ static ssize_t mmcsd_writesingle(FAR struct mmcsd_state_s *priv, * ****************************************************************************/ -#if defined(CONFIG_FS_WRITABLE) && !defined(CONFIG_MMCSD_MULTIBLOCK_DISABLE) +#if !defined(CONFIG_MMCSD_MULTIBLOCK_DISABLE) static ssize_t mmcsd_writemultiple(FAR struct mmcsd_state_s *priv, FAR const uint8_t *buffer, off_t startblock, size_t nblocks) @@ -2085,7 +2054,7 @@ static ssize_t mmcsd_writemultiple(FAR struct mmcsd_state_s *priv, * ****************************************************************************/ -#if defined(CONFIG_FS_WRITABLE) && defined(CONFIG_DRVR_WRITEBUFFER) +#if defined(CONFIG_DRVR_WRITEBUFFER) static ssize_t mmcsd_flush(FAR void *dev, FAR const uint8_t *buffer, off_t startblock, size_t nblocks) { @@ -2272,7 +2241,6 @@ static ssize_t mmcsd_read(FAR struct inode *inode, unsigned char *buffer, * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static ssize_t mmcsd_write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t startsector, unsigned int nsectors) { @@ -2335,7 +2303,6 @@ static ssize_t mmcsd_write(FAR struct inode *inode, FAR const unsigned char *buf return ret; } -#endif /**************************************************************************** * Name: mmcsd_geometry @@ -2371,11 +2338,7 @@ static int mmcsd_geometry(FAR struct inode *inode, struct geometry *geometry) geometry->geo_available = true; geometry->geo_mediachanged = priv->mediachanged; -#ifdef CONFIG_FS_WRITABLE geometry->geo_writeenabled = !mmcsd_wrprotected(priv); -#else - geometry->geo_writeenabled = false; -#endif geometry->geo_nsectors = priv->nblocks; geometry->geo_sectorsize = priv->blocksize; diff --git a/drivers/mmcsd/mmcsd_spi.c b/drivers/mmcsd/mmcsd_spi.c index 5161b4e000..e5ff295ae4 100644 --- a/drivers/mmcsd/mmcsd_spi.c +++ b/drivers/mmcsd/mmcsd_spi.c @@ -1,35 +1,20 @@ /**************************************************************************** * drivers/mmcsd/mmcsd_spi.c * - * Copyright (C) 2008-2010, 2011-2013, 2017 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: + * http://www.apache.org/licenses/LICENSE-2.0 * - * 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. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. * ****************************************************************************/ @@ -78,7 +63,7 @@ #define MMCSD_IDMODE_CLOCK (400000) -#if defined(CONFIG_FS_WRITABLE) && !defined(CONFIG_MMCSD_READONLY) +#if !defined(CONFIG_MMCSD_READONLY) # define MMCSD_MODE 0666 #else # define MMCSD_MODE 0444 @@ -200,7 +185,7 @@ static int mmcsd_getcardinfo(FAR struct mmcsd_slot_s *slot, static int mmcsd_recvblock(FAR struct mmcsd_slot_s *slot, uint8_t *buffer, int nbytes); -#if defined(CONFIG_FS_WRITABLE) && !defined(CONFIG_MMCSD_READONLY) +#if !defined(CONFIG_MMCSD_READONLY) static int mmcsd_xmitblock(FAR struct mmcsd_slot_s *slot, const uint8_t *buffer, int nbytes, uint8_t token); #endif @@ -211,7 +196,7 @@ static int mmcsd_open(FAR struct inode *inode); static int mmcsd_close(FAR struct inode *inode); static ssize_t mmcsd_read(FAR struct inode *inode, unsigned char *buffer, size_t start_sector, unsigned int nsectors); -#if defined(CONFIG_FS_WRITABLE) && !defined(CONFIG_MMCSD_READONLY) +#if !defined(CONFIG_MMCSD_READONLY) static ssize_t mmcsd_write(FAR struct inode *inode, const unsigned char *buffer, size_t start_sector, unsigned int nsectors); @@ -237,7 +222,7 @@ static const struct block_operations g_bops = mmcsd_open, /* open */ mmcsd_close, /* close */ mmcsd_read, /* read */ -#if defined(CONFIG_FS_WRITABLE) && !defined(CONFIG_MMCSD_READONLY) +#if !defined(CONFIG_MMCSD_READONLY) mmcsd_write, /* write */ #else NULL, /* write */ @@ -335,13 +320,13 @@ static const struct mmcsd_cmdinfo_s g_cmd12 = {CMD12, MMCSD_CMDRESP_R1, 0xff}; static const struct mmcsd_cmdinfo_s g_cmd16 = {CMD16, MMCSD_CMDRESP_R1, 0xff}; static const struct mmcsd_cmdinfo_s g_cmd17 = {CMD17, MMCSD_CMDRESP_R1, 0xff}; static const struct mmcsd_cmdinfo_s g_cmd18 = {CMD18, MMCSD_CMDRESP_R1, 0xff}; -#if defined(CONFIG_FS_WRITABLE) && !defined(CONFIG_MMCSD_READONLY) +#if !defined(CONFIG_MMCSD_READONLY) static const struct mmcsd_cmdinfo_s g_cmd24 = {CMD24, MMCSD_CMDRESP_R1, 0xff}; static const struct mmcsd_cmdinfo_s g_cmd25 = {CMD25, MMCSD_CMDRESP_R1, 0xff}; #endif static const struct mmcsd_cmdinfo_s g_cmd55 = {CMD55, MMCSD_CMDRESP_R1, 0xff}; static const struct mmcsd_cmdinfo_s g_cmd58 = {CMD58, MMCSD_CMDRESP_R3, 0xff}; -#if defined(CONFIG_FS_WRITABLE) && !defined(CONFIG_MMCSD_READONLY) +#if !defined(CONFIG_MMCSD_READONLY) static const struct mmcsd_cmdinfo_s g_acmd23 = {ACMD23, MMCSD_CMDRESP_R1, 0xff}; #endif static const struct mmcsd_cmdinfo_s g_acmd41 = {ACMD41, MMCSD_CMDRESP_R1, 0xff}; @@ -979,7 +964,7 @@ static int mmcsd_recvblock(FAR struct mmcsd_slot_s *slot, uint8_t *buffer, * ****************************************************************************/ -#if defined(CONFIG_FS_WRITABLE) && !defined(CONFIG_MMCSD_READONLY) +#if !defined(CONFIG_MMCSD_READONLY) static int mmcsd_xmitblock(FAR struct mmcsd_slot_s *slot, FAR const uint8_t *buffer, int nbytes, uint8_t token) @@ -1018,7 +1003,7 @@ static int mmcsd_xmitblock(FAR struct mmcsd_slot_s *slot, return OK; } -#endif /* CONFIG_FS_WRITABLE && !CONFIG_MMCSD_READONLY */ +#endif /* !CONFIG_MMCSD_READONLY */ /**************************************************************************** * Block Driver Operations @@ -1265,7 +1250,7 @@ errout_with_eio: * ****************************************************************************/ -#if defined(CONFIG_FS_WRITABLE) && !defined(CONFIG_MMCSD_READONLY) +#if !defined(CONFIG_MMCSD_READONLY) static ssize_t mmcsd_write(FAR struct inode *inode, const unsigned char *buffer, size_t start_sector, unsigned int nsectors) { @@ -1511,7 +1496,7 @@ static int mmcsd_geometry(FAR struct inode *inode, struct geometry *geometry) ((slot->state & (MMCSD_SLOTSTATUS_NOTREADY | MMCSD_SLOTSTATUS_NODISK)) == 0); geometry->geo_mediachanged = ((slot->state & MMCSD_SLOTSTATUS_MEDIACHGD) != 0); -#if defined(CONFIG_FS_WRITABLE) && !defined(CONFIG_MMCSD_READONLY) +#if !defined(CONFIG_MMCSD_READONLY) geometry->geo_writeenabled = ((slot->state & MMCSD_SLOTSTATUS_WRPROTECT) == 0); #else diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig index 13c6bb6bec..027689eaf9 100644 --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig @@ -42,7 +42,7 @@ config MTD_PARTITION config FTL_WRITEBUFFER bool "Enable write buffering in the FTL layer" default n - depends on DRVR_WRITEBUFFER && FS_WRITABLE + depends on DRVR_WRITEBUFFER config FTL_READAHEAD bool "Enable read-ahead buffering in the FTL layer" @@ -791,7 +791,6 @@ endchoice # CRC level selection config MTD_SMART_FSCK bool "Enable SMART file system check" default n - depends on FS_WRITABLE ---help--- Enables fsck to check and repair the SMART file system. diff --git a/drivers/mtd/filemtd.c b/drivers/mtd/filemtd.c index e86095c157..ed9eb2c12d 100644 --- a/drivers/mtd/filemtd.c +++ b/drivers/mtd/filemtd.c @@ -506,10 +506,7 @@ FAR struct mtd_dev_s *blockmtd_initialize(FAR const char *path, size_t offset, /* Determine the file open mode */ - mode = O_RDOK; -#ifdef CONFIG_FS_WRITABLE - mode |= O_WROK; -#endif + mode = O_RDOK |= O_WROK; /* Try to open the file. NOTE that block devices will use a character * driver proxy. diff --git a/drivers/mtd/ftl.c b/drivers/mtd/ftl.c index eb1b37b847..c2860bdaae 100644 --- a/drivers/mtd/ftl.c +++ b/drivers/mtd/ftl.c @@ -71,9 +71,7 @@ struct ftl_struct_s uint16_t blkper; /* R/W blocks per erase block */ uint16_t refs; /* Number of references */ bool unlinked; /* The driver has been unlinked */ -#ifdef CONFIG_FS_WRITABLE FAR uint8_t *eblock; /* One, in-memory erase block */ -#endif }; /**************************************************************************** @@ -86,13 +84,11 @@ static ssize_t ftl_reload(FAR void *priv, FAR uint8_t *buffer, off_t startblock, size_t nblocks); static ssize_t ftl_read(FAR struct inode *inode, FAR unsigned char *buffer, size_t start_sector, unsigned int nsectors); -#ifdef CONFIG_FS_WRITABLE static ssize_t ftl_flush(FAR void *priv, FAR const uint8_t *buffer, off_t startblock, size_t nblocks); static ssize_t ftl_write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t start_sector, unsigned int nsectors); -#endif static int ftl_geometry(FAR struct inode *inode, FAR struct geometry *geometry); static int ftl_ioctl(FAR struct inode *inode, int cmd, @@ -110,11 +106,7 @@ static const struct block_operations g_bops = ftl_open, /* open */ ftl_close, /* close */ ftl_read, /* read */ -#ifdef CONFIG_FS_WRITABLE ftl_write, /* write */ -#else - NULL, /* write */ -#endif ftl_geometry, /* geometry */ ftl_ioctl /* ioctl */ #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS @@ -167,12 +159,10 @@ static int ftl_close(FAR struct inode *inode) #ifdef FTL_HAVE_RWBUFFER rwb_uninitialize(&dev->rwb); #endif -#ifdef CONFIG_FS_WRITABLE if (dev->eblock) { kmm_free(dev->eblock); } -#endif kmm_free(dev); } @@ -236,7 +226,6 @@ static ssize_t ftl_read(FAR struct inode *inode, unsigned char *buffer, * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static int ftl_alloc_eblock(FAR struct ftl_struct_s *dev) { if (dev->eblock == NULL) @@ -433,7 +422,6 @@ static ssize_t ftl_flush(FAR void *priv, FAR const uint8_t *buffer, return nblocks; } -#endif /**************************************************************************** * Name: ftl_write @@ -442,7 +430,6 @@ static ssize_t ftl_flush(FAR void *priv, FAR const uint8_t *buffer, * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static ssize_t ftl_write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t start_sector, unsigned int nsectors) @@ -459,7 +446,6 @@ static ssize_t ftl_write(FAR struct inode *inode, return ftl_flush(dev, buffer, start_sector, nsectors); #endif } -#endif /**************************************************************************** * Name: ftl_geometry @@ -481,11 +467,7 @@ static int ftl_geometry(FAR struct inode *inode, dev = (struct ftl_struct_s *)inode->i_private; geometry->geo_available = true; geometry->geo_mediachanged = false; -#ifdef CONFIG_FS_WRITABLE geometry->geo_writeenabled = true; -#else - geometry->geo_writeenabled = false; -#endif geometry->geo_nsectors = dev->geo.neraseblocks * dev->blkper; geometry->geo_sectorsize = dev->geo.blocksize; @@ -583,12 +565,10 @@ static int ftl_unlink(FAR struct inode *inode) #ifdef FTL_HAVE_RWBUFFER rwb_uninitialize(&dev->rwb); #endif -#ifdef CONFIG_FS_WRITABLE if (dev->eblock) { kmm_free(dev->eblock); } -#endif kmm_free(dev); } @@ -664,7 +644,7 @@ int ftl_initialize_by_path(FAR const char *path, FAR struct mtd_dev_s *mtd) dev->rwb.wrflush = ftl_flush; dev->rwb.rhreload = ftl_reload; -#if defined(CONFIG_FS_WRITABLE) && defined(CONFIG_FTL_WRITEBUFFER) +#if defined(CONFIG_FTL_WRITEBUFFER) dev->rwb.wrmaxblocks = dev->blkper; #endif diff --git a/drivers/mtd/smart.c b/drivers/mtd/smart.c index 52cdf442e7..8700c13022 100644 --- a/drivers/mtd/smart.c +++ b/drivers/mtd/smart.c @@ -408,21 +408,17 @@ static ssize_t smart_reload(struct smart_struct_s *dev, FAR uint8_t *buffer, off_t startblock, size_t nblocks); static ssize_t smart_read(FAR struct inode *inode, unsigned char *buffer, size_t start_sector, unsigned int nsectors); -#ifdef CONFIG_FS_WRITABLE static ssize_t smart_write(FAR struct inode *inode, const unsigned char *buffer, size_t start_sector, unsigned int nsectors); -#endif static int smart_geometry(FAR struct inode *inode, struct geometry *geometry); static int smart_ioctl(FAR struct inode *inode, int cmd, unsigned long arg); static int smart_findfreephyssector(FAR struct smart_struct_s *dev, uint8_t canrelocate); -#ifdef CONFIG_FS_WRITABLE static int smart_writesector(FAR struct smart_struct_s *dev, unsigned long arg); static inline int smart_allocsector(FAR struct smart_struct_s *dev, unsigned long requested); -#endif static int smart_readsector(FAR struct smart_struct_s *dev, unsigned long arg); #ifdef CONFIG_MTD_SMART_ENABLE_CRC @@ -457,11 +453,7 @@ static const struct block_operations g_bops = smart_open, /* open */ smart_close, /* close */ smart_read, /* read */ -#ifdef CONFIG_FS_WRITABLE smart_write, /* write */ -#else - NULL, /* write */ -#endif smart_geometry, /* geometry */ smart_ioctl /* ioctl */ }; @@ -907,7 +899,6 @@ static ssize_t smart_read(FAR struct inode *inode, unsigned char *buffer, * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static ssize_t smart_write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t start_sector, unsigned int nsectors) @@ -1018,7 +1009,6 @@ static ssize_t smart_write(FAR struct inode *inode, return nsectors; } -#endif /* CONFIG_FS_WRITABLE */ /**************************************************************************** * Name: smart_geometry @@ -1044,11 +1034,7 @@ static int smart_geometry(FAR struct inode *inode, struct geometry *geometry) #endif geometry->geo_available = true; geometry->geo_mediachanged = false; -#ifdef CONFIG_FS_WRITABLE geometry->geo_writeenabled = true; -#else - geometry->geo_writeenabled = false; -#endif erasesize = dev->geo.erasesize; geometry->geo_nsectors = dev->geo.neraseblocks * erasesize / @@ -3042,7 +3028,6 @@ static crc_t smart_calc_sector_crc(FAR struct smart_struct_s *dev) * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static inline int smart_llformat(FAR struct smart_struct_s *dev, unsigned long arg) { FAR struct smart_sect_header_s *sectorheader; @@ -3248,7 +3233,6 @@ static inline int smart_llformat(FAR struct smart_struct_s *dev, unsigned long a return OK; } -#endif /* CONFIG_FS_WRITABLE */ /**************************************************************************** * Name: smart_relocate_sector @@ -3923,7 +3907,6 @@ retry: * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static int smart_garbagecollect(FAR struct smart_struct_s *dev) { uint16_t collectblock; @@ -4046,7 +4029,6 @@ static int smart_garbagecollect(FAR struct smart_struct_s *dev) errout: return ret; } -#endif /* CONFIG_FS_WRITABLE */ /**************************************************************************** * Name: smart_write_wearstatus @@ -4254,8 +4236,6 @@ static inline int smart_read_wearstatus(FAR struct smart_struct_s *dev) #endif if ((sector != 0) && (physsector == 0xffff)) { -#ifdef CONFIG_FS_WRITABLE - /* This logical sector does not exist yet. We must allocate it */ ret = smart_allocsector(dev, sector); @@ -4265,7 +4245,6 @@ static inline int smart_read_wearstatus(FAR struct smart_struct_s *dev) ret = -EINVAL; goto errout; } -#endif } /* Read the sector */ @@ -4324,7 +4303,6 @@ errout: * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static int smart_write_alloc_sector(FAR struct smart_struct_s *dev, uint16_t logical, uint16_t physical) { @@ -4394,7 +4372,6 @@ static int smart_write_alloc_sector(FAR struct smart_struct_s *dev, return ret; } -#endif /**************************************************************************** * Name: smart_validate_crc @@ -4460,7 +4437,6 @@ static int smart_validate_crc(FAR struct smart_struct_s *dev) * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static int smart_writesector(FAR struct smart_struct_s *dev, unsigned long arg) { @@ -4857,7 +4833,6 @@ static int smart_writesector(FAR struct smart_struct_s *dev, errout: return ret; } -#endif /* CONFIG_FS_WRITABLE */ /**************************************************************************** * Name: smart_readsector @@ -5016,7 +4991,6 @@ errout: * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static inline int smart_allocsector(FAR struct smart_struct_s *dev, unsigned long requested) { @@ -5251,7 +5225,6 @@ static inline int smart_allocsector(FAR struct smart_struct_s *dev, return logsector; } -#endif /* CONFIG_FS_WRITABLE */ /**************************************************************************** * Name: smart_freesector @@ -5262,7 +5235,6 @@ static inline int smart_allocsector(FAR struct smart_struct_s *dev, * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static inline int smart_freesector(FAR struct smart_struct_s *dev, unsigned long logicalsector) { @@ -5365,7 +5337,6 @@ static inline int smart_freesector(FAR struct smart_struct_s *dev, errout: return ret; } -#endif /* CONFIG_FS_WRITABLE */ /**************************************************************************** * Name: smart_ioctl @@ -5436,7 +5407,6 @@ static int smart_ioctl(FAR struct inode *inode, int cmd, unsigned long arg) ret = smart_readsector(dev, arg); goto ok_out; -#ifdef CONFIG_FS_WRITABLE case BIOC_LLFORMAT: /* Perform a low-level format on the flash */ @@ -5481,7 +5451,6 @@ static int smart_ioctl(FAR struct inode *inode, int cmd, unsigned long arg) #endif goto ok_out; -#endif /* CONFIG_FS_WRITABLE */ #if defined(CONFIG_FS_PROCFS) && !defined(CONFIG_FS_PROCFS_EXCLUDE_SMARTFS) case BIOC_GETPROCFSD: diff --git a/drivers/ramdisk.c b/drivers/ramdisk.c index 842c36cd9d..21d2f41bdc 100644 --- a/drivers/ramdisk.c +++ b/drivers/ramdisk.c @@ -1,35 +1,20 @@ /**************************************************************************** * drivers/ramdisk.c * - * Copyright (C) 2008-2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: + * http://www.apache.org/licenses/LICENSE-2.0 * - * 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. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. * ****************************************************************************/ @@ -83,11 +68,7 @@ struct rd_struct_s uint8_t rd_crefs; /* Open reference count */ #endif uint8_t rd_flags; /* See RDFLAG_* definitions */ -#ifdef CONFIG_FS_WRITABLE FAR uint8_t *rd_buffer; /* RAM disk backup memory */ -#else - FAR const uint8_t *rd_buffer; /* ROM disk backup memory */ -#endif }; /**************************************************************************** @@ -103,11 +84,9 @@ static int rd_close(FAR struct inode *inode); static ssize_t rd_read(FAR struct inode *inode, FAR unsigned char *buffer, size_t start_sector, unsigned int nsectors); -#ifdef CONFIG_FS_WRITABLE static ssize_t rd_write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t start_sector, unsigned int nsectors); -#endif static int rd_geometry(FAR struct inode *inode, FAR struct geometry *geometry); static int rd_ioctl(FAR struct inode *inode, int cmd, @@ -131,11 +110,7 @@ static const struct block_operations g_bops = 0, /* close */ #endif rd_read, /* read */ -#ifdef CONFIG_FS_WRITABLE rd_write, /* write */ -#else - NULL, /* write */ -#endif rd_geometry, /* geometry */ rd_ioctl, /* ioctl */ #ifndef CONFIG_DISABLE_PSEUDOFS_OPERATIONS @@ -162,14 +137,12 @@ static void rd_destroy(FAR struct rd_struct_s *dev) /* We we configured to free the RAM disk memory when unlinked? */ -#ifdef CONFIG_FS_WRITABLE if (RDFLAG_IS_UNLINKED(dev->rd_flags)) { /* Yes.. do it */ kmm_free(dev->rd_buffer); } -#endif /* And free the block driver itself */ @@ -284,7 +257,6 @@ static ssize_t rd_read(FAR struct inode *inode, unsigned char *buffer, * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static ssize_t rd_write(FAR struct inode *inode, const unsigned char *buffer, size_t start_sector, unsigned int nsectors) { @@ -315,7 +287,6 @@ static ssize_t rd_write(FAR struct inode *inode, const unsigned char *buffer, return -EFBIG; } -#endif /**************************************************************************** * Name: rd_geometry @@ -336,11 +307,7 @@ static int rd_geometry(FAR struct inode *inode, struct geometry *geometry) dev = (struct rd_struct_s *)inode->i_private; geometry->geo_available = true; geometry->geo_mediachanged = false; -#ifdef CONFIG_FS_WRITABLE geometry->geo_writeenabled = RDFLAG_IS_WRENABLED(dev->rd_flags); -#else - geometry->geo_writeenabled = false; -#endif geometry->geo_nsectors = dev->rd_nsectors; geometry->geo_sectorsize = dev->rd_sectsize; @@ -440,13 +407,8 @@ static int rd_unlink(FAR struct inode *inode) * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE int ramdisk_register(int minor, FAR uint8_t *buffer, uint32_t nsectors, uint16_t sectsize, uint8_t rdflags) -#else -int romdisk_register(int minor, FAR const uint8_t *buffer, uint32_t nsectors, - uint16_t sectsize) -#endif { struct rd_struct_s *dev; char devname[16]; @@ -473,10 +435,7 @@ int romdisk_register(int minor, FAR const uint8_t *buffer, uint32_t nsectors, dev->rd_nsectors = nsectors; /* Number of sectors on device */ dev->rd_sectsize = sectsize; /* The size of one sector */ dev->rd_buffer = buffer; /* RAM disk backup memory */ - -#ifdef CONFIG_FS_WRITABLE dev->rd_flags = rdflags & RDFLAG_USER; -#endif /* Create a ramdisk device name */ diff --git a/drivers/usbdev/Kconfig b/drivers/usbdev/Kconfig index e76ebbc6a2..fb7e112e58 100644 --- a/drivers/usbdev/Kconfig +++ b/drivers/usbdev/Kconfig @@ -572,7 +572,6 @@ menuconfig USBMSC bool "USB Mass storage class device" default n select FS_READABLE - select FS_WRITABLE ---help--- References: "Universal Serial Bus Mass Storage Class, Specification Overview," diff --git a/drivers/usbhost/usbhost_storage.c b/drivers/usbhost/usbhost_storage.c index 62cec1e745..0d41ad7b2f 100644 --- a/drivers/usbhost/usbhost_storage.c +++ b/drivers/usbhost/usbhost_storage.c @@ -1,35 +1,20 @@ /**************************************************************************** * drivers/usbhost/usbhost_storage.c * - * Copyright (C) 2010-2013, 2015-2017 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. The + * ASF licenses this file to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the + * License. You may obtain a copy of the License at * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: + * http://www.apache.org/licenses/LICENSE-2.0 * - * 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. + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. * ****************************************************************************/ @@ -242,11 +227,9 @@ static int usbhost_open(FAR struct inode *inode); static int usbhost_close(FAR struct inode *inode); static ssize_t usbhost_read(FAR struct inode *inode, FAR unsigned char *buffer, size_t startsector, unsigned int nsectors); -#ifdef CONFIG_FS_WRITABLE static ssize_t usbhost_write(FAR struct inode *inode, FAR const unsigned char *buffer, size_t startsector, unsigned int nsectors); -#endif static int usbhost_geometry(FAR struct inode *inode, FAR struct geometry *geometry); static int usbhost_ioctl(FAR struct inode *inode, int cmd, @@ -289,11 +272,7 @@ static const struct block_operations g_bops = usbhost_open, /* open */ usbhost_close, /* close */ usbhost_read, /* read */ -#ifdef CONFIG_FS_WRITABLE usbhost_write, /* write */ -#else - NULL, /* write */ -#endif usbhost_geometry, /* geometry */ usbhost_ioctl /* ioctl */ }; @@ -2070,7 +2049,6 @@ static ssize_t usbhost_read(FAR struct inode *inode, unsigned char *buffer, * ****************************************************************************/ -#ifdef CONFIG_FS_WRITABLE static ssize_t usbhost_write(FAR struct inode *inode, const unsigned char *buffer, size_t startsector, unsigned int nsectors) { @@ -2157,7 +2135,6 @@ static ssize_t usbhost_write(FAR struct inode *inode, const unsigned char *buffe return nbytes < 0 ? (int)nbytes : nsectors; } -#endif /**************************************************************************** * Name: usbhost_geometry @@ -2194,11 +2171,7 @@ static int usbhost_geometry(FAR struct inode *inode, struct geometry *geometry) geometry->geo_available = true; geometry->geo_mediachanged = false; -#ifdef CONFIG_FS_WRITABLE geometry->geo_writeenabled = true; -#else - geometry->geo_writeenabled = false; -#endif geometry->geo_nsectors = priv->nblocks; geometry->geo_sectorsize = priv->blocksize; usbhost_givesem(&priv->exclsem);