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