gustavonihei commented on a change in pull request #4248:
URL: https://github.com/apache/incubator-nuttx/pull/4248#discussion_r682981692



##########
File path: drivers/mtd/mtd_partition.c
##########
@@ -413,6 +413,25 @@ static int part_ioctl(FAR struct mtd_dev_s *dev, int cmd, 
unsigned long arg)
         }
         break;
 
+      case MTDIOC_PARTINFO:
+        {
+          FAR struct partition_info_s *info =
+            (FAR struct partition_info_s *)arg;
+          if (info != NULL)
+            {
+              info->magic       = 0;
+              info->numsectors  = priv->neraseblocks * priv->blkpererase;
+              info->length      = info->numsectors * priv->blocksize;
+              info->sectorsize  = priv->blocksize;
+              info->startsector = priv->firstblock;
+              info->endsector   = priv->firstblock + info->numsectors;
+              info->parent      = priv->parent->name;
+
+              ret = OK;
+          }
+        }
+        break;
+

Review comment:
       > I would prefer in this order: A 100% Linux compatible solution then 
string parsing via the existing procfs.
   
   A 100% Linux compatible solution implies the creation of a `sysfs` subsystem 
for Linux. Although much desirable, unfortunately is far beyond the scope for 
this PR.
   And string parsing via `procfs` when compared to `ioctl` solution is 
sub-optimal in terms of execution time and code size. Execution time will scale 
depending on the number of partitions to be returned from `/proc/partitions`. 
Code size will increase due to the requirement of enabling the optional 
`procfs` subsystem.
   Besides the fact that the only available method for identifying a partition 
from `/proc/partitions` is via the partition name, which is once again 
sub-optimal considering it involves comparison of strings.
   
   Using `ioctl` only requires a valid file descriptor and does not impose any 
architectural changes to the OS, since the MTD subsystem already implements 
several other `ioctl` commands. Also, the value to be returned via the `ioctl` 
command is readily available in the MTD partition information.
   
   @xiaoxiang781216 Please kindly evaluate the answers from 
https://github.com/apache/incubator-nuttx/pull/4248#discussion_r682578813 and 
also the above reasoning.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to