This is an automated email from the ASF dual-hosted git repository.

ligd pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new c54c9395a5 Revert "drivrs/mtd/filemtd.c: add block device MTD 
interface.  Block MTD interface allows using block device directly as MTD 
instead of having to use file-system in between.  NOTE that this provides the 
opposite capability of FTL which will let you use an MTD interface directly as 
a block device."
c54c9395a5 is described below

commit c54c9395a572c0c68b2ca6bf028e7a09daa41d52
Author: Xiang Xiao <xiaoxi...@xiaomi.com>
AuthorDate: Sat Feb 18 07:48:46 2023 +0800

    Revert "drivrs/mtd/filemtd.c: add block device MTD interface.  Block MTD 
interface allows using block device directly as MTD instead of having to use 
file-system in between.  NOTE that this provides the opposite capability of FTL 
which will let you use an MTD interface directly as a block device."
    
    since filemtd can handle not only char device, but also block device.
    This reverts commit 5ef548677a7f93f18503105c2d9d0a42d155181c.
---
 drivers/mtd/filemtd.c   | 97 +++++++++++++++----------------------------------
 include/nuttx/mtd/mtd.h | 29 ---------------
 2 files changed, 30 insertions(+), 96 deletions(-)

diff --git a/drivers/mtd/filemtd.c b/drivers/mtd/filemtd.c
index 1048461d37..36e2d7e9cf 100644
--- a/drivers/mtd/filemtd.c
+++ b/drivers/mtd/filemtd.c
@@ -700,26 +700,44 @@ static int mtd_loop_ioctl(FAR struct file *filep, int cmd,
  ****************************************************************************/
 
 /****************************************************************************
- * Name: blockmtd_initialize
+ * Name: filemtd_initialize
  *
  * Description:
- *   Create and initialize a BLOCK MTD device instance.
+ *   Create and initialize a FILE MTD device instance.
  *
  * Input Parameters:
- *   path - Path name of the block device backing the MTD device
+ *   path - Path name of the file backing the MTD device
  *
  ****************************************************************************/
 
-FAR struct mtd_dev_s *blockmtd_initialize(FAR const char *path,
-                                          size_t offset, size_t mtdlen,
-                                          int16_t sectsize,
-                                          int32_t erasesize)
+FAR struct mtd_dev_s *filemtd_initialize(FAR const char *path, size_t offset,
+                                         int16_t sectsize, int32_t erasesize)
 {
   FAR struct file_dev_s *priv;
+  struct stat sb;
   size_t nblocks;
+  size_t filelen;
   int mode;
   int ret;
 
+  /* Stat the file */
+
+  ret = nx_stat(path, &sb, 1);
+  if (ret < 0)
+    {
+      ferr("ERROR: Failed to stat %s: %d\n", path, ret);
+      return NULL;
+    }
+
+  filelen = sb.st_size;
+  if (offset > filelen)
+    {
+      ferr("ERROR: Offset beyond end of file\n");
+      return NULL;
+    }
+
+  filelen = filelen - offset;
+
   /* Create an instance of the FILE MTD device state structure */
 
   priv = (FAR struct file_dev_s *)kmm_zalloc(sizeof(struct file_dev_s));
@@ -778,7 +796,7 @@ FAR struct mtd_dev_s *blockmtd_initialize(FAR const char 
*path,
 
   /* Force the size to be an even number of the erase block size */
 
-  nblocks = mtdlen / priv->erasesize;
+  nblocks = filelen / priv->erasesize;
   if (nblocks < 3)
     {
       ferr("ERROR: Need to provide at least three full erase block\n");
@@ -807,17 +825,17 @@ FAR struct mtd_dev_s *blockmtd_initialize(FAR const char 
*path,
 }
 
 /****************************************************************************
- * Name: blockmtd_teardown
+ * Name: filemtd_teardown
  *
  * Description:
- *   Teardown a previously created blockmtd device.
+ *   Teardown a previously created filemtd device.
  *
  * Input Parameters:
  *   dev - Pointer to the mtd driver instance.
  *
  ****************************************************************************/
 
-void blockmtd_teardown(FAR struct mtd_dev_s *dev)
+void filemtd_teardown(FAR struct mtd_dev_s *dev)
 {
   FAR struct file_dev_s *priv = (FAR struct file_dev_s *)dev;
 
@@ -836,66 +854,11 @@ void blockmtd_teardown(FAR struct mtd_dev_s *dev)
   kmm_free(priv);
 }
 
-/****************************************************************************
- * Name: filemtd_initialize
- *
- * Description:
- *   Create and initialize a FILE MTD device instance.
- *
- * Input Parameters:
- *   path - Path name of the file backing the MTD device
- *
- ****************************************************************************/
-
-FAR struct mtd_dev_s *filemtd_initialize(FAR const char *path, size_t offset,
-                                         int16_t sectsize, int32_t erasesize)
-{
-  size_t filelen;
-  struct stat sb;
-  int ret;
-
-  /* Stat the file */
-
-  ret = nx_stat(path, &sb, 1);
-  if (ret < 0)
-    {
-      ferr("ERROR: Failed to stat %s: %d\n", path, ret);
-      return NULL;
-    }
-
-  filelen = sb.st_size;
-
-  if (offset > filelen)
-    {
-      ferr("ERROR: Offset beyond end of file\n");
-      return NULL;
-    }
-
-  return blockmtd_initialize(path, offset, filelen - offset, sectsize,
-                             erasesize);
-}
-
-/****************************************************************************
- * Name: filemtd_teardown
- *
- * Description:
- *   Teardown a previously created filemtd device.
- *
- * Input Parameters:
- *   dev - Pointer to the mtd driver instance.
- *
- ****************************************************************************/
-
-void filemtd_teardown(FAR struct mtd_dev_s *dev)
-{
-  blockmtd_teardown(dev);
-}
-
 /****************************************************************************
  * Name: filemtd_isfilemtd
  *
  * Description:
- *   Tests if the provided mtd is a filemtd or blockmtd device.
+ *   Tests if the provided mtd is a filemtd device.
  *
  * Input Parameters:
  *   mtd - Pointer to the mtd.
diff --git a/include/nuttx/mtd/mtd.h b/include/nuttx/mtd/mtd.h
index 721b4ec2d9..b765bc40b5 100644
--- a/include/nuttx/mtd/mtd.h
+++ b/include/nuttx/mtd/mtd.h
@@ -605,35 +605,6 @@ FAR struct mtd_dev_s *n25qxxx_initialize(FAR struct 
qspi_dev_s *qspi,
 FAR struct mtd_dev_s *w25qxxxjv_initialize(FAR struct qspi_dev_s *qspi,
                                          bool unprotect);
 
-/****************************************************************************
- * Name: blockmtd_initialize
- *
- * Description:
- *   Create and initialize a BLOCK MTD device instance.
- *
- * Input Parameters:
- *   path - Path name of the block device backing the MTD device
- *
- ****************************************************************************/
-
-FAR struct mtd_dev_s *blockmtd_initialize(FAR const char *path,
-                                          size_t offset, size_t mtdlen,
-                                          int16_t sectsize,
-                                          int32_t erasesize);
-
-/****************************************************************************
- * Name: blockmtd_teardown
- *
- * Description:
- *   Teardown a previously created blockmtd device.
- *
- * Input Parameters:
- *   dev - Pointer to the mtd driver instance.
- *
- ****************************************************************************/
-
-void blockmtd_teardown(FAR struct mtd_dev_s *dev);
-
 /****************************************************************************
  * Name: filemtd_initialize
  *

Reply via email to