summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-03-05 10:02:52 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-03-13 12:24:17 +0100
commit5e88538f97eb5cf2b0c14345af4ea937e627ffc3 (patch)
treeba2658cb926d8a83dec3a252d0ffd001b9ac1410
parentlibblock: Add optional free at delete request (diff)
downloadrtems-5e88538f97eb5cf2b0c14345af4ea937e627ffc3.tar.bz2
libblock: Split file
-rw-r--r--cpukit/libblock/Makefile.am1
-rw-r--r--cpukit/libblock/src/ramdisk-init.c69
-rw-r--r--cpukit/libblock/src/ramdisk-register.c80
3 files changed, 89 insertions, 61 deletions
diff --git a/cpukit/libblock/Makefile.am b/cpukit/libblock/Makefile.am
index 15c3852da4..04eca6f05e 100644
--- a/cpukit/libblock/Makefile.am
+++ b/cpukit/libblock/Makefile.am
@@ -14,6 +14,7 @@ libblock_a_SOURCES = src/bdbuf.c \
src/ramdisk-driver.c \
src/ramdisk-init.c \
src/ramdisk-config.c \
+ src/ramdisk-register.c \
src/ide_part_table.c \
src/nvdisk.c \
src/nvdisk-sram.c \
diff --git a/cpukit/libblock/src/ramdisk-init.c b/cpukit/libblock/src/ramdisk-init.c
index fb8def0d83..d5dc1e7041 100644
--- a/cpukit/libblock/src/ramdisk-init.c
+++ b/cpukit/libblock/src/ramdisk-init.c
@@ -7,22 +7,21 @@
*/
/*
- * Copyright (c) 2009
- * embedded brains GmbH
- * Obere Lagerstr. 30
- * D-82178 Puchheim
- * Germany
- * <rtems@embedded-brains.de>
+ * Copyright (c) 2009-2012 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.rtems.com/license/LICENSE.
- *
- * $Id$
*/
#ifdef HAVE_CONFIG_H
-#include "config.h"
+ #include "config.h"
#endif
#include <stdlib.h>
@@ -30,11 +29,6 @@
#include <rtems.h>
#include <rtems/ramdisk.h>
-const rtems_driver_address_table ramdisk_ops = {
- .initialization_entry = NULL,
- RTEMS_GENERIC_BLOCK_DEVICE_DRIVER_ENTRIES
-};
-
ramdisk *ramdisk_allocate(
void *area_begin,
uint32_t block_size,
@@ -77,50 +71,3 @@ void ramdisk_free(ramdisk *rd)
free(rd);
}
}
-
-rtems_status_code ramdisk_register(
- uint32_t block_size,
- rtems_blkdev_bnum block_count,
- bool trace,
- const char *disk,
- dev_t *dev_ptr
-)
-{
- rtems_status_code sc = RTEMS_SUCCESSFUL;
- rtems_device_major_number major = 0;
- ramdisk *rd = NULL;
- dev_t dev = 0;
-
- sc = rtems_io_register_driver(0, &ramdisk_ops, &major);
- if (sc != RTEMS_SUCCESSFUL) {
- return RTEMS_UNSATISFIED;
- }
-
- rd = ramdisk_allocate(NULL, block_size, block_count, trace);
- if (rd == NULL) {
- rtems_io_unregister_driver(major);
-
- return RTEMS_UNSATISFIED;
- }
-
- dev = rtems_filesystem_make_dev_t(major, 0);
-
- sc = rtems_disk_create_phys(
- dev,
- block_size,
- block_count,
- ramdisk_ioctl,
- rd,
- disk
- );
- if (sc != RTEMS_SUCCESSFUL) {
- ramdisk_free(rd);
- rtems_io_unregister_driver(major);
-
- return RTEMS_UNSATISFIED;
- }
-
- *dev_ptr = dev;
-
- return RTEMS_SUCCESSFUL;
-}
diff --git a/cpukit/libblock/src/ramdisk-register.c b/cpukit/libblock/src/ramdisk-register.c
new file mode 100644
index 0000000000..c720a2c33b
--- /dev/null
+++ b/cpukit/libblock/src/ramdisk-register.c
@@ -0,0 +1,80 @@
+/**
+ * @file
+ *
+ * @ingroup rtems_ramdisk
+ *
+ * @brief RAM disk block device implementation.
+ */
+
+/*
+ * Copyright (c) 2009-2012 embedded brains GmbH. All rights reserved.
+ *
+ * embedded brains GmbH
+ * Obere Lagerstr. 30
+ * 82178 Puchheim
+ * Germany
+ * <rtems@embedded-brains.de>
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.com/license/LICENSE.
+ */
+
+#ifdef HAVE_CONFIG_H
+ #include "config.h"
+#endif
+
+#include <rtems.h>
+#include <rtems/ramdisk.h>
+
+const rtems_driver_address_table ramdisk_ops = {
+ .initialization_entry = NULL,
+ RTEMS_GENERIC_BLOCK_DEVICE_DRIVER_ENTRIES
+};
+
+rtems_status_code ramdisk_register(
+ uint32_t block_size,
+ rtems_blkdev_bnum block_count,
+ bool trace,
+ const char *disk,
+ dev_t *dev_ptr
+)
+{
+ rtems_status_code sc = RTEMS_SUCCESSFUL;
+ rtems_device_major_number major = 0;
+ ramdisk *rd = NULL;
+ dev_t dev = 0;
+
+ sc = rtems_io_register_driver(0, &ramdisk_ops, &major);
+ if (sc != RTEMS_SUCCESSFUL) {
+ return RTEMS_UNSATISFIED;
+ }
+
+ rd = ramdisk_allocate(NULL, block_size, block_count, trace);
+ if (rd == NULL) {
+ rtems_io_unregister_driver(major);
+
+ return RTEMS_UNSATISFIED;
+ }
+
+ dev = rtems_filesystem_make_dev_t(major, 0);
+
+ sc = rtems_disk_create_phys(
+ dev,
+ block_size,
+ block_count,
+ ramdisk_ioctl,
+ rd,
+ disk
+ );
+ if (sc != RTEMS_SUCCESSFUL) {
+ ramdisk_free(rd);
+ rtems_io_unregister_driver(major);
+
+ return RTEMS_UNSATISFIED;
+ }
+
+ *dev_ptr = dev;
+
+ return RTEMS_SUCCESSFUL;
+}