[PATCH 21/21] libblock: Add RTEMS_DEPRECATED

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Aug 6 07:14:53 UTC 2018


Close #3358.
---
 cpukit/include/rtems/blkdev.h      |  46 ++++--------
 cpukit/include/rtems/diskdevs.h    | 144 ++++++++-----------------------------
 cpukit/libblock/src/blkdev-imfs.c  |  13 ++--
 cpukit/libblock/src/blkdev-ops.c   |   2 +
 cpukit/libblock/src/blkdev.c       |   2 +
 cpukit/libblock/src/diskdevs.c     |   2 +
 testsuites/libtests/block01/init.c |   2 +
 testsuites/libtests/block11/init.c |   7 +-
 8 files changed, 62 insertions(+), 156 deletions(-)

diff --git a/cpukit/include/rtems/blkdev.h b/cpukit/include/rtems/blkdev.h
index 929cf4fc24..31467a4142 100644
--- a/cpukit/include/rtems/blkdev.h
+++ b/cpukit/include/rtems/blkdev.h
@@ -387,70 +387,48 @@ void rtems_blkstats(
   rtems_blkdev_generic_write, \
   rtems_blkdev_generic_ioctl
 
-/**
- * Generic block device read primitive.
- *
- * Implemented using block device buffer management primitives.
- */
-rtems_device_driver
+/* Use rtems_blkdev_create() instead */
+RTEMS_DEPRECATED rtems_device_driver
 rtems_blkdev_generic_read(
     rtems_device_major_number major,
     rtems_device_minor_number minor,
     void                    * arg
 );
 
-/**
- * Generic block device write primitive.
- *
- * Implemented using block device buffer management primitives.
- */
-rtems_device_driver
+/* Use rtems_blkdev_create() instead */
+RTEMS_DEPRECATED rtems_device_driver
 rtems_blkdev_generic_write(
     rtems_device_major_number major,
     rtems_device_minor_number minor,
     void                    * arg
 );
 
-/**
- * Generic block device open primitive.
- *
- * Implemented using block device buffer management primitives.
- */
-rtems_device_driver
+/* Use rtems_blkdev_create() instead */
+RTEMS_DEPRECATED rtems_device_driver
 rtems_blkdev_generic_open(
     rtems_device_major_number major,
     rtems_device_minor_number minor,
     void                    * arg
 );
 
-/**
- * Generic block device close primitive.
- *
- * Implemented using block device buffer management primitives.
- */
-rtems_device_driver
+/* Use rtems_blkdev_create() instead */
+RTEMS_DEPRECATED rtems_device_driver
 rtems_blkdev_generic_close(
     rtems_device_major_number major,
     rtems_device_minor_number minor,
     void                    * arg
 );
 
-/**
- * Generic block device IO control primitive.
- *
- * Implemented using block device buffer management primitives.
- */
-rtems_device_driver
+/* Use rtems_blkdev_create() instead */
+RTEMS_DEPRECATED rtems_device_driver
 rtems_blkdev_generic_ioctl(
     rtems_device_major_number major,
     rtems_device_minor_number minor,
     void                    * arg
 );
 
-/**
- * @brief Generic block operations driver address table.
- */
-extern const rtems_driver_address_table rtems_blkdev_generic_ops;
+/* Use rtems_blkdev_create() instead */
+RTEMS_DEPRECATED extern const rtems_driver_address_table rtems_blkdev_generic_ops;
 
 /** @} */
 
diff --git a/cpukit/include/rtems/diskdevs.h b/cpukit/include/rtems/diskdevs.h
index 0be766afa3..85d157dcd5 100644
--- a/cpukit/include/rtems/diskdevs.h
+++ b/cpukit/include/rtems/diskdevs.h
@@ -277,21 +277,24 @@ struct rtems_disk_device {
  */
 /**@{**/
 
-static inline dev_t rtems_disk_get_device_identifier(
+/* Use fstat() instead */
+RTEMS_DEPRECATED static inline dev_t rtems_disk_get_device_identifier(
   const rtems_disk_device *dd
 )
 {
   return dd->dev;
 }
 
-static inline rtems_device_major_number rtems_disk_get_major_number(
+/* Use fstat() instead */
+RTEMS_DEPRECATED static inline rtems_device_major_number rtems_disk_get_major_number(
   const rtems_disk_device *dd
 )
 {
   return rtems_filesystem_dev_major_t(dd->dev);
 }
 
-static inline rtems_device_minor_number rtems_disk_get_minor_number(
+/* Use fstat() instead */
+RTEMS_DEPRECATED static inline rtems_device_minor_number rtems_disk_get_minor_number(
   const rtems_disk_device *dd
 )
 {
@@ -340,27 +343,8 @@ static inline rtems_blkdev_bnum rtems_disk_get_block_count(
  */
 /**@{**/
 
-/**
- * @brief Creates a physical disk with device identifier @a dev.
- *
- * The block size @a block_size must be positive.  The disk will have
- * @a block_count blocks.  The block index starts with zero.  The associated disk
- * device driver will be invoked via the IO control handler @a handler.  A
- * device node will be registered in the file system with absolute path @a
- * name, if @a name is not @c NULL.  This function is usually invoked from a
- * block device driver during initialization when a physical device is detected
- * in the system.  The device driver provides an IO control handler to allow
- * block device operations.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_NOT_CONFIGURED Cannot lock disk device operation mutex.
- * @retval RTEMS_INVALID_ADDRESS IO control handler is @c NULL.
- * @retval RTEMS_INVALID_NUMBER Block size is invalid.
- * @retval RTEMS_NO_MEMORY Not enough memory.
- * @retval RTEMS_RESOURCE_IN_USE Disk device descriptor is already in use.
- * @retval RTEMS_UNSATISFIED Cannot create device node.
- */
-rtems_status_code rtems_disk_create_phys(
+/* Use rtems_blkdev_create() instead */
+RTEMS_DEPRECATED rtems_status_code rtems_disk_create_phys(
   dev_t dev,
   uint32_t block_size,
   rtems_blkdev_bnum block_count,
@@ -369,28 +353,8 @@ rtems_status_code rtems_disk_create_phys(
   const char *name
 );
 
-/**
- * @brief Creates a logical disk with device identifier @a dev.
- *
- * A logical disk manages a subset of consecutive blocks contained in the
- * physical disk with identifier @a phys.  The start block index of the logical
- * disk device is @a block_begin.  The block count of the logcal disk will be
- * @a block_count.  The blocks must be within the range of blocks managed by
- * the associated physical disk device.  A device node will be registered in
- * the file system with absolute path @a name, if @a name is not @c NULL.  The
- * block size and IO control handler are inherited by the physical disk.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_NOT_CONFIGURED Cannot lock disk device operation mutex.
- * @retval RTEMS_INVALID_ID Specified physical disk identifier does not
- * correspond to a physical disk.
- * @retval RTEMS_INVALID_NUMBER Begin block or block count are out of range.
- * @retval RTEMS_NO_MEMORY Not enough memory.
- * @retval RTEMS_RESOURCE_IN_USE Disk device descriptor for logical disk
- * identifier is already in use.
- * @retval RTEMS_UNSATISFIED Cannot create device node.
- */
-rtems_status_code rtems_disk_create_log(
+/* Use rtems_blkdev_create_partition() instead */
+RTEMS_DEPRECATED rtems_status_code rtems_disk_create_log(
   dev_t dev,
   dev_t phys,
   rtems_blkdev_bnum block_begin,
@@ -398,42 +362,23 @@ rtems_status_code rtems_disk_create_log(
   const char *name
 );
 
-/**
- * @brief Deletes a physical or logical disk device with identifier @a dev.
- *
- * Marks the disk device as deleted.  When a physical disk device is deleted,
- * all corresponding logical disk devices will marked as deleted too.  Disks
- * that are marked as deleted and have a usage counter of zero will be deleted.
- * The corresponding device nodes will be removed from the file system.  In
- * case of a physical disk deletion the IO control handler will be invoked with
- * a RTEMS_BLKIO_DELETED request.  Disks that are still in use will be deleted
- * upon release.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_NOT_CONFIGURED Cannot lock disk device operation mutex.
- * @retval RTEMS_INVALID_ID No disk for specified device identifier.
+/*
+ * Use rtems_blkdev_create() or rtems_blkdev_create_partition and unlink()
+ * instead.
  */
-rtems_status_code rtems_disk_delete(dev_t dev);
+RTEMS_DEPRECATED rtems_status_code rtems_disk_delete(dev_t dev);
 
-/**
- * @brief Returns the disk device descriptor for the device identifier @a dev.
- *
- * Increments usage counter by one.  You should release the disk device
- * descriptor with rtems_disk_release().
- *
- * @return Pointer to the disk device descriptor or @c NULL if no corresponding
- * disk exists.
+/*
+ * Use rtems_blkdev_create() or rtems_blkdev_create_partition and open()
+ * instead.
  */
-rtems_disk_device *rtems_disk_obtain(dev_t dev);
+RTEMS_DEPRECATED rtems_disk_device *rtems_disk_obtain(dev_t dev);
 
-/**
- * @brief Releases the disk device descriptor @a dd.
- *
- * Decrements usage counter by one.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
+/*
+ * Use rtems_blkdev_create() or rtems_blkdev_create_partition and close()
+ * instead.
  */
-rtems_status_code rtems_disk_release(rtems_disk_device *dd);
+RTEMS_DEPRECATED rtems_status_code rtems_disk_release(rtems_disk_device *dd);
 
 /** @} */
 
@@ -442,50 +387,21 @@ rtems_status_code rtems_disk_release(rtems_disk_device *dd);
  */
 /**@{**/
 
-/**
- * @brief Initializes the disk device management.
- *
- * This functions returns successful if the disk device management is already
- * initialized.  There is no protection against concurrent access.
- *
- * @retval RTEMS_SUCCESSFUL Successful initialization.
- * @retval RTEMS_NO_MEMORY Not enough memory or no semaphore available.
- * @retval RTEMS_UNSATISFIED Block device buffer initialization failed.
- */
-rtems_status_code rtems_disk_io_initialize(void);
+/* Just remove calls to this function */
+RTEMS_DEPRECATED rtems_status_code rtems_disk_io_initialize(void);
 
-/**
- * @brief Releases all resources allocated for disk device management.
- *
- * There is no protection against concurrent access.  If parts of the system
- * are still in use the behaviour is undefined.
- *
- * @retval RTEMS_SUCCESSFUL Successful operation.
- */
-rtems_status_code rtems_disk_io_done(void);
+/* Just remove calls to this function */
+RTEMS_DEPRECATED rtems_status_code rtems_disk_io_done(void);
 
 /** @} */
 
 /** @} */
 
-/**
- * @brief Disk device iterator.
- *
- * Returns the next disk device descriptor with a device identifier larger than
- * @a dev.  If there is no such device, @c NULL will be returned.  Use minus
- * one to start the search.
- *
- * @code
- * rtems_status_code sc = RTEMS_SUCCESSFUL;
- * rtems_disk_device *dd = (dev_t) -1;
- *
- * while (sc == RTEMS_SUCCESSFUL && (dd = rtems_disk_next(dev)) != NULL) {
- *   dev = rtems_disk_get_device_identifier(dd);
- *   sc = rtems_disk_release(dd);
- * }
- * @endcode
+/*
+ * This functionality no longer available.  There is no global registration for
+ * disk devices.
  */
-rtems_disk_device *rtems_disk_next(dev_t dev);
+RTEMS_DEPRECATED rtems_disk_device *rtems_disk_next(dev_t dev);
 
 /* Internal function, do not use */
 rtems_status_code rtems_disk_init_phys(
diff --git a/cpukit/libblock/src/blkdev-imfs.c b/cpukit/libblock/src/blkdev-imfs.c
index a46babb593..881236e167 100644
--- a/cpukit/libblock/src/blkdev-imfs.c
+++ b/cpukit/libblock/src/blkdev-imfs.c
@@ -181,14 +181,19 @@ static int rtems_blkdev_imfs_fstat(
   struct stat *buf
 )
 {
-  rtems_blkdev_imfs_context *ctx =
-    IMFS_generic_get_context_by_location(loc);
-  rtems_disk_device *dd = &ctx->dd;
+  rtems_blkdev_imfs_context *ctx;
+  rtems_disk_device *dd;
+  IMFS_jnode_t *node;
+
+  ctx = IMFS_generic_get_context_by_location(loc);
+  dd = &ctx->dd;
 
-  buf->st_rdev = rtems_disk_get_device_identifier(dd);
   buf->st_blksize = rtems_disk_get_block_size(dd);
   buf->st_blocks = rtems_disk_get_block_count(dd);
 
+  node = loc->node_access;
+  buf->st_rdev = IMFS_generic_get_device_identifier_by_node(node);
+
   return IMFS_stat(loc, buf);
 }
 
diff --git a/cpukit/libblock/src/blkdev-ops.c b/cpukit/libblock/src/blkdev-ops.c
index bf3411daf2..a25857ed4f 100644
--- a/cpukit/libblock/src/blkdev-ops.c
+++ b/cpukit/libblock/src/blkdev-ops.c
@@ -22,6 +22,8 @@
 
 #include <rtems/blkdev.h>
 
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+
 const rtems_driver_address_table rtems_blkdev_generic_ops = {
 	.initialization_entry = NULL,
 	.open_entry = rtems_blkdev_generic_open,
diff --git a/cpukit/libblock/src/blkdev.c b/cpukit/libblock/src/blkdev.c
index 0d1d9104e6..5f17b9b4d7 100644
--- a/cpukit/libblock/src/blkdev.c
+++ b/cpukit/libblock/src/blkdev.c
@@ -24,6 +24,8 @@
 #include "rtems/diskdevs.h"
 #include "rtems/bdbuf.h"
 
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+
 /* rtems_blkdev_generic_read --
  *     Generic block device read primitive. Implemented using block device
  *     buffer management primitives.
diff --git a/cpukit/libblock/src/diskdevs.c b/cpukit/libblock/src/diskdevs.c
index 836cc4973e..b735460e58 100644
--- a/cpukit/libblock/src/diskdevs.c
+++ b/cpukit/libblock/src/diskdevs.c
@@ -28,6 +28,8 @@
 #include <rtems/bdbuf.h>
 #include <rtems/thread.h>
 
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+
 #define DISKTAB_INITIAL_SIZE 8
 
 /* Table of disk devices having the same major number */
diff --git a/testsuites/libtests/block01/init.c b/testsuites/libtests/block01/init.c
index 04b2ef4986..f7761960ed 100644
--- a/testsuites/libtests/block01/init.c
+++ b/testsuites/libtests/block01/init.c
@@ -33,6 +33,8 @@
 #include <rtems/ramdisk.h>
 #include <rtems/diskdevs.h>
 
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+
 const char rtems_test_name[] = "BLOCK 1";
 
 #define ASSERT_SC(sc) rtems_test_assert((sc) == RTEMS_SUCCESSFUL)
diff --git a/testsuites/libtests/block11/init.c b/testsuites/libtests/block11/init.c
index 82e24d6548..b5b3a5d7e2 100644
--- a/testsuites/libtests/block11/init.c
+++ b/testsuites/libtests/block11/init.c
@@ -10,7 +10,7 @@
  * Copyright (c) 2012 embedded brains GmbH.  All rights reserved.
  *
  *  embedded brains GmbH
- *  Obere Lagerstr. 30
+ *  Dornierstr. 4
  *  82178 Puchheim
  *  Germany
  *  <rtems at embedded-brains.de>
@@ -37,10 +37,9 @@
 #include <rtems/diskdevs.h>
 #include <rtems/malloc.h>
 
-const char rtems_test_name[] = "BLOCK 11";
+#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
 
-/* forward declarations to avoid warnings */
-static rtems_task Init(rtems_task_argument argument);
+const char rtems_test_name[] = "BLOCK 11";
 
 #define ASSERT_SC(sc) rtems_test_assert((sc) == RTEMS_SUCCESSFUL)
 
-- 
2.13.7




More information about the devel mailing list