Index: cpukit/libblock/include/rtems/blkdev.h
===================================================================
--- cpukit/libblock/include/rtems/blkdev.h	(revision 9f0a68ce5afca9d21d34bab83d42fbe4bb0cf8ef)
+++ cpukit/libblock/include/rtems/blkdev.h	(revision eb93595b4ce63eea6e144d77a6bcbfb82225e73d)
@@ -42,5 +42,5 @@
 
 /**
- * Block device request type.
+ * @brief Block device request type.
  *
  * @warning The sync request is an IO one and only used from the cache. Use the
@@ -65,5 +65,5 @@
 
 /**
- * Block device scatter or gather buffer structure.
+ * @brief Block device scatter or gather buffer structure.
  */
 typedef struct rtems_blkdev_sg_buffer {
@@ -167,8 +167,8 @@
 
 /**
- * The start block in a request.
- *
- * Only valid if the driver has returned the @ref RTEMS_BLKIO_CAPABILITIES of
- * @ref RTEMS_BLKDEV_CAP_MULTISECTOR_CONT.
+ * @brief The start block in a request.
+ *
+ * Only valid if the driver has returned the
+ * @ref RTEMS_BLKDEV_CAP_MULTISECTOR_CONT capability.
  */
 #define RTEMS_BLKDEV_START_BLOCK(req) (req->bufs[0].block)
@@ -253,5 +253,11 @@
 
 /**
- * Only consecutive multi-sector buffer requests are supported.
+ * @name Block Device Driver Capabilities
+ *
+ * @{
+ */
+
+/**
+ * @brief Only consecutive multi-sector buffer requests are supported.
  *
  * This option means the cache will only supply multiple buffers that are
@@ -262,88 +268,17 @@
 
 /**
- * The driver will accept a sync call. A sync call is made to a driver
- * after a bdbuf cache sync has finished.
+ * @brief The driver will accept a sync call.
+ *
+ * A sync call is made to a driver after a bdbuf cache sync has finished.
  */
 #define RTEMS_BLKDEV_CAP_SYNC (1 << 1)
 
-/**
- * The device driver interface conventions suppose that a driver may contain an
- * initialize, open, close, read, write and IO control entry points. These
- * primitives (except initialize) can be implemented in a generic fashion based
- * upon the supplied block device driver IO control handler. Every block device
- * driver should provide an initialize entry point, which registers the
- * appropriate IO control handler.
- */
-#define RTEMS_GENERIC_BLOCK_DEVICE_DRIVER_ENTRIES \
-  rtems_blkdev_generic_open, \
-  rtems_blkdev_generic_close, \
-  rtems_blkdev_generic_read, \
-  rtems_blkdev_generic_write, \
-  rtems_blkdev_generic_ioctl
-
-/**
- * Generic block device read primitive.
- *
- * Implemented using block device buffer management primitives.
- */
-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
-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
-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
-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
-rtems_blkdev_generic_ioctl(
-    rtems_device_major_number major,
-    rtems_device_minor_number minor,
-    void                    * arg
-);
-
-/**
- * Common IO control primitive.
- *
- * Use this in all block devices to handle the common set of ioctl requests.
+/** @} */
+
+/**
+ * @brief Common IO control primitive.
+ *
+ * Use this in all block devices to handle the common set of IO control
+ * requests.
  */
 int
@@ -351,28 +286,26 @@
 
 /**
- * @brief Generic block operations driver address table.
- */
-extern const rtems_driver_address_table rtems_blkdev_generic_ops;
-
-/**
  * @brief Creates a block device.
  *
+ * The block size is set to the media block size.
+ *
  * @param[in] device The path for the new block device.
- * @param[in] block_size The block size.  Must be positive.
- * @param[in] block_count The block count.  Must be positive.
+ * @param[in] media_block_size The media block size in bytes.  Must be positive.
+ * @param[in] media_block_count The media block count.  Must be positive.
  * @param[in] handler The block device IO control handler.  Must not be @c NULL.
  * @param[in] driver_data The block device driver data.
  *
  * @retval RTEMS_SUCCESSFUL Successful operation.
- * @retval RTEMS_INVALID_NUMBER Block size or block count is not positive.
+ * @retval RTEMS_INVALID_NUMBER Media block size or count is not positive.
  * @retval RTEMS_NO_MEMORY Not enough memory.
  * @retval RTEMS_UNSATISFIED Cannot create generic device node.
  *
- * @see rtems_blkdev_create_partition() and rtems_blkdev_request.
+ * @see rtems_blkdev_create_partition(), rtems_bdbuf_set_block_size(), and
+ * rtems_blkdev_request.
  */
 rtems_status_code rtems_blkdev_create(
   const char *device,
-  uint32_t block_size,
-  rtems_blkdev_bnum block_count,
+  uint32_t media_block_size,
+  rtems_blkdev_bnum media_block_count,
   rtems_block_device_ioctl handler,
   void *driver_data
@@ -380,15 +313,17 @@
 
 /**
- * @brief Creates a partition within a block device.
- *
- * A partition manages a subset of consecutive blocks contained in a block
+ * @brief Creates a partition within a parent block device.
+ *
+ * A partition manages a subset of consecutive blocks contained in a parent block
  * device.  The blocks must be within the range of blocks managed by the
- * associated block device.  The media block size, block size, and IO control
- * handler are inherited by the block device.
+ * associated parent block device.  The media block size and IO control
+ * handler are inherited by the parent block device.  The block size is set to
+ * the media block size.
  *
  * @param[in] partition The path for the new partition device.
- * @param[in] device The block device path.
- * @param[in] block_begin The block begin of the partition.
- * @param[in] block_count The block count of the partition.
+ * @param[in] parent_block_device The parent block device path.
+ * @param[in] media_block_begin The media block begin of the partition within
+ * the parent block device.
+ * @param[in] media_block_count The media block count of the partition.
  *
  * @retval RTEMS_SUCCESSFUL Successful operation.
@@ -400,11 +335,11 @@
  * @retval RTEMS_UNSATISFIED Cannot create generic device node.
  *
- * @see rtems_blkdev_create().
+ * @see rtems_blkdev_create() and rtems_bdbuf_set_block_size().
  */
 rtems_status_code rtems_blkdev_create_partition(
   const char *partition,
-  const char *device,
-  rtems_blkdev_bnum block_begin,
-  rtems_blkdev_bnum block_count
+  const char *parent_block_device,
+  rtems_blkdev_bnum media_block_begin,
+  rtems_blkdev_bnum media_block_count
 );
 
@@ -429,4 +364,96 @@
 /** @} */
 
+/**
+ * @defgroup rtems_blkdev_generic Generic Disk Device
+ *
+ * @ingroup rtems_blkdev
+ *
+ * Generic disk device operations for standard RTEMS IO drivers.
+ *
+ * @{
+ */
+
+/**
+ * The device driver interface conventions suppose that a driver may contain an
+ * initialize, open, close, read, write and IO control entry points. These
+ * primitives (except initialize) can be implemented in a generic fashion based
+ * upon the supplied block device driver IO control handler. Every block device
+ * driver should provide an initialize entry point, which registers the
+ * appropriate IO control handler.
+ */
+#define RTEMS_GENERIC_BLOCK_DEVICE_DRIVER_ENTRIES \
+  rtems_blkdev_generic_open, \
+  rtems_blkdev_generic_close, \
+  rtems_blkdev_generic_read, \
+  rtems_blkdev_generic_write, \
+  rtems_blkdev_generic_ioctl
+
+/**
+ * Generic block device read primitive.
+ *
+ * Implemented using block device buffer management primitives.
+ */
+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
+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
+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
+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
+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;
+
+/** @} */
+
 #ifdef __cplusplus
 }
