summaryrefslogtreecommitdiffstats
path: root/testsuites
diff options
context:
space:
mode:
Diffstat (limited to 'testsuites')
-rw-r--r--testsuites/libtests/block02/init.c35
-rw-r--r--testsuites/libtests/block03/init.c27
-rw-r--r--testsuites/libtests/block04/init.c23
-rw-r--r--testsuites/libtests/block05/init.c59
-rw-r--r--testsuites/libtests/block06/init.c78
-rw-r--r--testsuites/libtests/block07/init.c19
-rw-r--r--testsuites/libtests/block08/bdbuf_test1_1.c6
-rw-r--r--testsuites/libtests/block08/bdbuf_test1_2.c4
-rw-r--r--testsuites/libtests/block08/bdbuf_test1_3.c4
-rw-r--r--testsuites/libtests/block08/bdbuf_test1_4.c4
-rw-r--r--testsuites/libtests/block08/bdbuf_test1_5.c4
-rw-r--r--testsuites/libtests/block08/bdbuf_test2_1.c4
-rw-r--r--testsuites/libtests/block08/bdbuf_test2_2.c4
-rw-r--r--testsuites/libtests/block08/bdbuf_test3_1.c6
-rw-r--r--testsuites/libtests/block08/bdbuf_test3_2.c6
-rw-r--r--testsuites/libtests/block08/bdbuf_test3_3.c6
-rw-r--r--testsuites/libtests/block08/bdbuf_test4_1.c4
-rw-r--r--testsuites/libtests/block08/bdbuf_test4_2.c4
-rw-r--r--testsuites/libtests/block08/bdbuf_test4_3.c4
-rw-r--r--testsuites/libtests/block08/bdbuf_tests.c10
-rw-r--r--testsuites/libtests/block08/bdbuf_tests.h8
-rw-r--r--testsuites/libtests/block08/test_disk.c3
-rw-r--r--testsuites/libtests/block09/init.c40
-rw-r--r--testsuites/libtests/block10/init.c20
-rw-r--r--testsuites/samples/fileio/init.c67
25 files changed, 242 insertions, 207 deletions
diff --git a/testsuites/libtests/block02/init.c b/testsuites/libtests/block02/init.c
index 00c83a162f..58b78d3e47 100644
--- a/testsuites/libtests/block02/init.c
+++ b/testsuites/libtests/block02/init.c
@@ -7,12 +7,13 @@
*/
/*
- * 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
@@ -48,9 +49,9 @@
#define BLOCK_COUNT_B 1
-static dev_t dev_a;
+static const rtems_disk_device *dd_a;
-static dev_t dev_b;
+static const rtems_disk_device *dd_b;
static volatile bool sync_done = false;
@@ -67,14 +68,14 @@ static void task_low(rtems_task_argument arg)
printk("L: try access: A0\n");
- sc = rtems_bdbuf_get(dev_a, 0, &bd);
+ sc = rtems_bdbuf_get(dd_a, 0, &bd);
ASSERT_SC(sc);
rtems_test_assert(sync_done);
printk("L: access: A0\n");
- rtems_test_assert(bd->dev == dev_a);
+ rtems_test_assert(bd->dd == dd_a);
printk("*** END OF TEST BLOCK 2 ***\n");
@@ -90,7 +91,7 @@ static void task_high(rtems_task_argument arg)
printk("H: try access: A0\n");
- sc = rtems_bdbuf_get(dev_a, 0, &bd);
+ sc = rtems_bdbuf_get(dd_a, 0, &bd);
ASSERT_SC(sc);
rtems_test_assert(sync_done);
@@ -106,7 +107,7 @@ static void task_high(rtems_task_argument arg)
printk("H: try access: B0\n");
- sc = rtems_bdbuf_get(dev_b, 0, &bd);
+ sc = rtems_bdbuf_get(dd_b, 0, &bd);
ASSERT_SC(sc);
printk("H: access: B0\n");
@@ -127,6 +128,8 @@ static rtems_task Init(rtems_task_argument argument)
{
rtems_status_code sc = RTEMS_SUCCESSFUL;
rtems_bdbuf_buffer *bd = NULL;
+ dev_t dev_a = 0;
+ dev_t dev_b = 0;
printk("\n\n*** TEST BLOCK 2 ***\n");
@@ -139,6 +142,12 @@ static rtems_task Init(rtems_task_argument argument)
sc = ramdisk_register(BLOCK_SIZE_B, BLOCK_COUNT_B, false, "/dev/rdb", &dev_b);
ASSERT_SC(sc);
+ dd_a = rtems_disk_obtain(dev_a);
+ rtems_test_assert(dd_a != NULL);
+
+ dd_b = rtems_disk_obtain(dev_b);
+ rtems_test_assert(dd_b != NULL);
+
sc = rtems_task_create(
rtems_build_name(' ', 'L', 'O', 'W'),
PRIORITY_LOW,
@@ -165,7 +174,7 @@ static rtems_task Init(rtems_task_argument argument)
sc = rtems_task_start(task_id_high, task_high, 0);
ASSERT_SC(sc);
- sc = rtems_bdbuf_get(dev_a, 0, &bd);
+ sc = rtems_bdbuf_get(dd_a, 0, &bd);
ASSERT_SC(sc);
sc = rtems_bdbuf_sync(bd);
diff --git a/testsuites/libtests/block03/init.c b/testsuites/libtests/block03/init.c
index f101eb78cd..2cfb8060a8 100644
--- a/testsuites/libtests/block03/init.c
+++ b/testsuites/libtests/block03/init.c
@@ -7,12 +7,13 @@
*/
/*
- * 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
@@ -44,7 +45,7 @@
#define BLOCK_COUNT 2
-static dev_t dev;
+static const rtems_disk_device *dd;
static volatile bool sync_done = false;
@@ -61,7 +62,7 @@ static void task_low(rtems_task_argument arg)
printk("L: try access: 0\n");
- sc = rtems_bdbuf_get(dev, 0, &bd);
+ sc = rtems_bdbuf_get(dd, 0, &bd);
ASSERT_SC(sc);
rtems_test_assert(sync_done);
@@ -84,7 +85,7 @@ static void task_high(rtems_task_argument arg)
printk("H: try access: 0\n");
- sc = rtems_bdbuf_get(dev, 0, &bd);
+ sc = rtems_bdbuf_get(dd, 0, &bd);
ASSERT_SC(sc);
rtems_test_assert(sync_done);
@@ -100,7 +101,7 @@ static void task_high(rtems_task_argument arg)
printk("H: try access: 1\n");
- sc = rtems_bdbuf_get(dev, 1, &bd);
+ sc = rtems_bdbuf_get(dd, 1, &bd);
ASSERT_SC(sc);
printk("H: access: 1\n");
@@ -121,6 +122,7 @@ static rtems_task Init(rtems_task_argument argument)
{
rtems_status_code sc = RTEMS_SUCCESSFUL;
rtems_bdbuf_buffer *bd = NULL;
+ dev_t dev = 0;
printk("\n\n*** TEST BLOCK 3 ***\n");
@@ -130,6 +132,9 @@ static rtems_task Init(rtems_task_argument argument)
sc = ramdisk_register(BLOCK_SIZE, BLOCK_COUNT, false, "/dev/rda", &dev);
ASSERT_SC(sc);
+ dd = rtems_disk_obtain(dev);
+ rtems_test_assert(dd != NULL);
+
sc = rtems_task_create(
rtems_build_name(' ', 'L', 'O', 'W'),
PRIORITY_LOW,
@@ -156,7 +161,7 @@ static rtems_task Init(rtems_task_argument argument)
sc = rtems_task_start(task_id_high, task_high, 0);
ASSERT_SC(sc);
- sc = rtems_bdbuf_get(dev, 0, &bd);
+ sc = rtems_bdbuf_get(dd, 0, &bd);
ASSERT_SC(sc);
sc = rtems_bdbuf_sync(bd);
diff --git a/testsuites/libtests/block04/init.c b/testsuites/libtests/block04/init.c
index 27b932a63c..ff7b204d2b 100644
--- a/testsuites/libtests/block04/init.c
+++ b/testsuites/libtests/block04/init.c
@@ -7,12 +7,13 @@
*/
/*
- * 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
@@ -44,7 +45,7 @@
#define BLOCK_COUNT 1
-static dev_t dev;
+static const rtems_disk_device *dd;
static rtems_id task_id_low;
@@ -57,7 +58,7 @@ static void task_low(rtems_task_argument arg)
printk("L: try access: 0\n");
- sc = rtems_bdbuf_get(dev, 0, &bd);
+ sc = rtems_bdbuf_get(dd, 0, &bd);
ASSERT_SC(sc);
printk("L: access: 0\n");
@@ -83,7 +84,7 @@ static void task_high(rtems_task_argument arg)
printk("H: try access: 0\n");
- sc = rtems_bdbuf_get(dev, 0, &bd);
+ sc = rtems_bdbuf_get(dd, 0, &bd);
ASSERT_SC(sc);
printk("H: access: 0\n");
@@ -103,6 +104,7 @@ static void task_high(rtems_task_argument arg)
static rtems_task Init(rtems_task_argument argument)
{
rtems_status_code sc = RTEMS_SUCCESSFUL;
+ dev_t dev = 0;
printk("\n\n*** TEST BLOCK 4 ***\n");
@@ -112,6 +114,9 @@ static rtems_task Init(rtems_task_argument argument)
sc = ramdisk_register(BLOCK_SIZE, BLOCK_COUNT, false, "/dev/rda", &dev);
ASSERT_SC(sc);
+ dd = rtems_disk_obtain(dev);
+ rtems_test_assert(dd != NULL);
+
sc = rtems_task_create(
rtems_build_name(' ', 'L', 'O', 'W'),
PRIORITY_LOW,
diff --git a/testsuites/libtests/block05/init.c b/testsuites/libtests/block05/init.c
index e795f7effe..8af26fe937 100644
--- a/testsuites/libtests/block05/init.c
+++ b/testsuites/libtests/block05/init.c
@@ -7,12 +7,13 @@
*/
/*
- * 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
@@ -56,9 +57,9 @@
/* In case of trouble change this to 1 or 2 for more output */
static unsigned output_level = 0;
-static dev_t dev_a;
+static const rtems_disk_device *dd_a;
-static dev_t dev_b;
+static const rtems_disk_device *dd_b;
static rtems_id task_id_init;
@@ -146,24 +147,27 @@ static rtems_bdbuf_buffer *get(enum get_type type, enum blk_kind kind)
rtems_status_code sc = RTEMS_SUCCESSFUL;
rtems_bdbuf_buffer *bd = NULL;
rtems_blkdev_bnum blk_index = 0;
- rtems_status_code (*get_bd)(dev_t, rtems_blkdev_bnum, rtems_bdbuf_buffer **)
- = NULL;
- dev_t dev = 0;
+ rtems_status_code (*get_bd)(
+ const rtems_disk_device *,
+ rtems_blkdev_bnum,
+ rtems_bdbuf_buffer **
+ ) = NULL;
+ const rtems_disk_device *dd = NULL;
size_t bds_per_group = 0;
switch (kind) {
case BLK_A0:
- dev = dev_a;
+ dd = dd_a;
blk_index = 0;
bds_per_group = 2;
break;
case BLK_A1:
- dev = dev_a;
+ dd = dd_a;
blk_index = 1;
bds_per_group = 2;
break;
case BLK_B0:
- dev = dev_b;
+ dd = dd_b;
blk_index = 0;
bds_per_group = 1;
break;
@@ -184,10 +188,10 @@ static rtems_bdbuf_buffer *get(enum get_type type, enum blk_kind kind)
break;
}
- sc = (*get_bd)(dev, blk_index, &bd);
+ sc = (*get_bd)(dd, blk_index, &bd);
rtems_test_assert(
sc == RTEMS_SUCCESSFUL
- && bd->dev == dev
+ && bd->dd == dd
&& bd->block == blk_index
&& bd->group->bds_per_group == bds_per_group
);
@@ -313,8 +317,8 @@ static void execute_test(unsigned i)
sc = rtems_task_resume(task_id_high);
ASSERT_SC(sc);
- sc = rtems_bdbuf_get(dev_b, 0, &bd);
- rtems_test_assert(sc == RTEMS_SUCCESSFUL && bd->dev == dev_b && bd->block == 0);
+ sc = rtems_bdbuf_get(dd_b, 0, &bd);
+ rtems_test_assert(sc == RTEMS_SUCCESSFUL && bd->dd == dd_b && bd->block == 0);
sc = rtems_bdbuf_release(bd);
ASSERT_SC(sc);
@@ -350,10 +354,10 @@ static void execute_test(unsigned i)
print(2, "F\n");
- sc = rtems_bdbuf_syncdev(dev_a);
+ sc = rtems_bdbuf_syncdev(dd_a);
ASSERT_SC(sc);
- sc = rtems_bdbuf_syncdev(dev_b);
+ sc = rtems_bdbuf_syncdev(dd_b);
ASSERT_SC(sc);
}
@@ -383,10 +387,10 @@ static int disk_ioctl(rtems_disk_device *dd, uint32_t req, void *argp)
}
}
-rtems_status_code disk_register(
+static void disk_register(
uint32_t block_size,
rtems_blkdev_bnum block_count,
- dev_t *dev_ptr
+ const rtems_disk_device **dd_ptr
)
{
rtems_status_code sc = RTEMS_SUCCESSFUL;
@@ -408,9 +412,8 @@ rtems_status_code disk_register(
);
ASSERT_SC(sc);
- *dev_ptr = dev;
-
- return RTEMS_SUCCESSFUL;
+ *dd_ptr = rtems_disk_obtain(dev);
+ rtems_test_assert(*dd_ptr!= NULL);
}
static rtems_task Init(rtems_task_argument argument)
@@ -425,11 +428,9 @@ static rtems_task Init(rtems_task_argument argument)
sc = rtems_disk_io_initialize();
ASSERT_SC(sc);
- sc = disk_register(BLOCK_SIZE_A, BLOCK_COUNT_A, &dev_a);
- ASSERT_SC(sc);
+ disk_register(BLOCK_SIZE_A, BLOCK_COUNT_A, &dd_a);
- sc = disk_register(BLOCK_SIZE_B, BLOCK_COUNT_B, &dev_b);
- ASSERT_SC(sc);
+ disk_register(BLOCK_SIZE_B, BLOCK_COUNT_B, &dd_b);
sc = rtems_task_create(
rtems_build_name(' ', 'L', 'O', 'W'),
diff --git a/testsuites/libtests/block06/init.c b/testsuites/libtests/block06/init.c
index fd84049bd4..11e26e2d1f 100644
--- a/testsuites/libtests/block06/init.c
+++ b/testsuites/libtests/block06/init.c
@@ -107,6 +107,7 @@ typedef struct bdbuf_task_control
rtems_device_major_number major;
rtems_device_minor_number minor;
bool passed;
+ const rtems_disk_device *dd;
} bdbuf_task_control;
#define BDBUF_TEST_TASKS (3)
@@ -188,7 +189,7 @@ bdbuf_disk_unlock (bdbuf_disk* bdd)
/**
* BDBUf wait for the wait event.
*/
-rtems_status_code
+static rtems_status_code
bdbuf_wait (const char* who, unsigned long timeout)
{
rtems_status_code sc;
@@ -340,7 +341,8 @@ static void
bdbuf_task_control_init (int task,
bdbuf_task_control* tc,
rtems_id master,
- rtems_device_major_number major)
+ rtems_device_major_number major,
+ const rtems_disk_device *dd)
{
char name[6];
sprintf (name, "bdt%d", task);
@@ -353,6 +355,7 @@ bdbuf_task_control_init (int task,
tc->major = major;
tc->minor = 0;
tc->passed = false;
+ tc->dd = dd;
}
static bool
@@ -608,9 +611,11 @@ static rtems_driver_address_table bdbuf_disk_io_ops = {
*/
static bool
-bdbuf_tests_setup_disk (rtems_device_major_number* major)
+bdbuf_tests_setup_disk (rtems_device_major_number* major,
+ const rtems_disk_device **dd_ptr)
{
rtems_status_code sc;
+ bool ok;
/*
* Register the disk driver.
@@ -620,8 +625,14 @@ bdbuf_tests_setup_disk (rtems_device_major_number* major)
sc = rtems_io_register_driver (RTEMS_DRIVER_AUTO_MAJOR,
&bdbuf_disk_io_ops,
major);
+ ok = sc == RTEMS_SUCCESSFUL;
- return sc == RTEMS_SUCCESSFUL;
+ if (ok) {
+ *dd_ptr = rtems_disk_obtain (rtems_filesystem_make_dev_t (*major, 0));
+ ok = *dd_ptr != NULL;
+ }
+
+ return ok;
}
static bool
@@ -672,10 +683,8 @@ bdbuf_tests_task_0_test_1 (bdbuf_task_control* tc)
for (i = 0; (i < 2) && passed; i++)
{
- dev_t device = rtems_filesystem_make_dev_t (tc->major, tc->minor);
-
bdbuf_test_printf ("%s: rtems_bdbuf_get[0]: ", tc->name);
- sc = rtems_bdbuf_get (device, 0, &bd);
+ sc = rtems_bdbuf_get (tc->dd, 0, &bd);
if (!bdbuf_test_print_sc (sc, true))
{
passed = false;
@@ -722,10 +731,8 @@ bdbuf_tests_task_0_test_2 (bdbuf_task_control* tc)
for (i = 0; (i < 5) && passed; i++)
{
- dev_t device = rtems_filesystem_make_dev_t (tc->major, tc->minor);
-
bdbuf_test_printf ("%s: rtems_bdbuf_get[%d]: ", tc->name, i);
- sc = rtems_bdbuf_get (device, i, &bd);
+ sc = rtems_bdbuf_get (tc->dd, i, &bd);
if (!bdbuf_test_print_sc (sc, true))
passed = false;
@@ -783,7 +790,6 @@ bdbuf_tests_task_0_test_3 (bdbuf_task_control* tc)
rtems_status_code sc;
bool passed;
rtems_bdbuf_buffer* bd;
- dev_t device;
/*
* Set task control's passed to false to handle a timeout.
@@ -791,8 +797,6 @@ bdbuf_tests_task_0_test_3 (bdbuf_task_control* tc)
tc->passed = false;
passed = true;
- device = rtems_filesystem_make_dev_t (tc->major, tc->minor);
-
bdbuf_disk_lock (&bdbuf_disks[tc->minor]);
bdbuf_disks[tc->minor].driver_action = BDBUF_DISK_NOOP;
bdbuf_disk_unlock (&bdbuf_disks[tc->minor]);
@@ -801,7 +805,7 @@ bdbuf_tests_task_0_test_3 (bdbuf_task_control* tc)
* Read the buffer and then release it.
*/
bdbuf_test_printf ("%s: rtems_bdbuf_read[5]: ", tc->name);
- sc = rtems_bdbuf_read (device, 5, &bd);
+ sc = rtems_bdbuf_read (tc->dd, 5, &bd);
if ((passed = bdbuf_test_print_sc (sc, true)))
{
bdbuf_test_printf ("%s: rtems_bdbuf_release_modified[5]: ", tc->name);
@@ -814,7 +818,7 @@ bdbuf_tests_task_0_test_3 (bdbuf_task_control* tc)
* be maintained as modified.
*/
bdbuf_test_printf ("%s: rtems_bdbuf_read[5]: ", tc->name);
- sc = rtems_bdbuf_read (device, 5, &bd);
+ sc = rtems_bdbuf_read (tc->dd, 5, &bd);
if ((passed = bdbuf_test_print_sc (sc, true)))
{
bdbuf_test_printf ("%s: rtems_bdbuf_release[5]: ", tc->name);
@@ -871,10 +875,8 @@ bdbuf_tests_task_0_test_4 (bdbuf_task_control* tc)
for (i = 0; (i < num) && passed; i++)
{
- dev_t device = rtems_filesystem_make_dev_t (tc->major, tc->minor);
-
bdbuf_test_printf ("%s: rtems_bdbuf_read[%d]: ", tc->name, i);
- sc = rtems_bdbuf_read (device, i, &bd);
+ sc = rtems_bdbuf_read (tc->dd, i, &bd);
if (!bdbuf_test_print_sc (sc, true))
passed = false;
@@ -991,10 +993,8 @@ bdbuf_tests_task_0_test_6 (bdbuf_task_control* tc)
for (i = 0; (i < 5) && passed; i++)
{
- dev_t device = rtems_filesystem_make_dev_t (tc->major, tc->minor);
-
bdbuf_test_printf ("%s: rtems_bdbuf_read[%d]: ", tc->name, i);
- sc = rtems_bdbuf_get (device, i, &bd);
+ sc = rtems_bdbuf_get (tc->dd, i, &bd);
if (!bdbuf_test_print_sc (sc, true))
passed = false;
@@ -1030,7 +1030,6 @@ bdbuf_tests_task_0_test_7 (bdbuf_task_control* tc)
int i;
rtems_bdbuf_buffer* bd;
rtems_chain_control buffers;
- dev_t device;
/*
* Set task control's passed to false to handle a timeout.
@@ -1044,8 +1043,6 @@ bdbuf_tests_task_0_test_7 (bdbuf_task_control* tc)
bdbuf_clear_disk_driver_watch (tc);
bdbuf_set_disk_driver_action (tc, BDBUF_DISK_NOOP);
- device = rtems_filesystem_make_dev_t (tc->major, tc->minor);
-
/*
* Get the blocks 0 -> 4 and hold them.
*/
@@ -1054,7 +1051,7 @@ bdbuf_tests_task_0_test_7 (bdbuf_task_control* tc)
for (i = 0; (i < 5) && passed; i++)
{
bdbuf_test_printf ("%s: rtems_bdbuf_read[%d]: ", tc->name, i);
- sc = rtems_bdbuf_get (device, i, &bd);
+ sc = rtems_bdbuf_get (tc->dd, i, &bd);
if (!bdbuf_test_print_sc (sc, true))
passed = false;
@@ -1074,9 +1071,9 @@ bdbuf_tests_task_0_test_7 (bdbuf_task_control* tc)
{
bdbuf_test_printf ("%s: rtems_bdbuf_syncdev[%d:%d]: ",
tc->name, i,
- rtems_filesystem_dev_major_t (device),
- rtems_filesystem_dev_minor_t (device));
- passed = bdbuf_test_print_sc (rtems_bdbuf_syncdev (device), true);
+ tc->major,
+ tc->minor);
+ passed = bdbuf_test_print_sc (rtems_bdbuf_syncdev (tc->dd), true);
}
tc->passed = passed;
@@ -1093,7 +1090,6 @@ bdbuf_tests_task_0_test_8 (bdbuf_task_control* tc)
rtems_chain_control buffers;
rtems_chain_node* node;
rtems_chain_node* pnode;
- dev_t device;
/*
* Set task control's passed to false to handle a timeout.
@@ -1107,8 +1103,6 @@ bdbuf_tests_task_0_test_8 (bdbuf_task_control* tc)
bdbuf_clear_disk_driver_watch (tc);
bdbuf_set_disk_driver_action (tc, BDBUF_DISK_NOOP);
- device = rtems_filesystem_make_dev_t (tc->major, tc->minor);
-
/*
* Get the blocks 0 -> 4 and hold them.
*/
@@ -1117,7 +1111,7 @@ bdbuf_tests_task_0_test_8 (bdbuf_task_control* tc)
for (i = 0; (i < 5) && passed; i++)
{
bdbuf_test_printf ("%s: rtems_bdbuf_read[%d]: ", tc->name, i);
- sc = rtems_bdbuf_get (device, i, &bd);
+ sc = rtems_bdbuf_get (tc->dd, i, &bd);
if (!bdbuf_test_print_sc (sc, true))
passed = false;
@@ -1159,13 +1153,13 @@ bdbuf_tests_task_0_test_8 (bdbuf_task_control* tc)
bdbuf_test_printf ("%s: rtems_bdbuf_syncdev[%d:%d]: checking order\n",
tc->name, i,
- rtems_filesystem_dev_major_t (device),
- rtems_filesystem_dev_minor_t (device));
- sc = rtems_bdbuf_syncdev (device);
+ tc->major,
+ tc->minor);
+ sc = rtems_bdbuf_syncdev (tc->dd);
bdbuf_test_printf ("%s: rtems_bdbuf_syncdev[%d:%d]: ",
tc->name, i,
- rtems_filesystem_dev_major_t (device),
- rtems_filesystem_dev_minor_t (device));
+ tc->major,
+ tc->minor);
passed = bdbuf_test_print_sc (sc, true);
}
@@ -1259,10 +1253,8 @@ bdbuf_tests_ranged_get_release (bdbuf_task_control* tc,
for (i = lower; (i < upper) && passed; i++)
{
- dev_t device = rtems_filesystem_make_dev_t (tc->major, tc->minor);
-
bdbuf_test_printf ("%s: rtems_bdbuf_get[%d]: blocking ...\n", tc->name, i);
- sc = rtems_bdbuf_get (device, i, &bd);
+ sc = rtems_bdbuf_get (tc->dd, i, &bd);
bdbuf_test_printf ("%s: rtems_bdbuf_get[%d]: ", tc->name, i);
if (!bdbuf_test_print_sc (sc, true))
{
@@ -1770,6 +1762,7 @@ bdbuf_tester (void)
rtems_task_priority old_priority;
int t;
bool passed = true;
+ const rtems_disk_device *dd;
/*
* Change priority to a lower one.
@@ -1783,7 +1776,7 @@ bdbuf_tester (void)
/*
* This sets up the buffer pools.
*/
- if (!bdbuf_tests_setup_disk (&major))
+ if (!bdbuf_tests_setup_disk (&major, &dd))
{
bdbuf_test_printf ("disk set up failed\n");
return;
@@ -1804,7 +1797,8 @@ bdbuf_tester (void)
{
bdbuf_task_control_init (t, &tasks[t],
rtems_task_self (),
- major);
+ major,
+ dd);
if (!bdbuf_tests_create_task (&tasks[t],
BDBUF_TESTS_PRI_HIGH - t,
diff --git a/testsuites/libtests/block07/init.c b/testsuites/libtests/block07/init.c
index ea60a1f092..969fd36207 100644
--- a/testsuites/libtests/block07/init.c
+++ b/testsuites/libtests/block07/init.c
@@ -54,7 +54,7 @@
#define BLOCK_COUNT 2
-static dev_t dev;
+static rtems_disk_device *dd;
static rtems_id task_id_low;
@@ -65,12 +65,11 @@ static rtems_id task_id_high;
static void change_block_size(void)
{
int rv = 0;
- uint32_t new_block_size = BLOCK_SIZE_B;
int fd = open("/dev/rda", O_RDWR);
rtems_test_assert(fd >= 0);
- rv = ioctl(fd, RTEMS_BLKIO_SETBLKSIZE, &new_block_size);
+ rv = rtems_disk_fd_set_block_size(fd, BLOCK_SIZE_B);
rtems_test_assert(rv == 0);
rv = close(fd);
@@ -84,7 +83,7 @@ static void task_low(rtems_task_argument arg)
printk("L: try access: 0\n");
- sc = rtems_bdbuf_get(dev, 0, &bd);
+ sc = rtems_bdbuf_get(dd, 0, &bd);
ASSERT_SC(sc);
printk("L: access: 0\n");
@@ -110,7 +109,7 @@ static void task_mid(rtems_task_argument arg)
printk("M: try access: 0\n");
- sc = rtems_bdbuf_get(dev, 0, &bd);
+ sc = rtems_bdbuf_get(dd, 0, &bd);
ASSERT_SC(sc);
printk("M: access: 0\n");
@@ -136,7 +135,7 @@ static void task_high(rtems_task_argument arg)
printk("H: try access: 0\n");
- sc = rtems_bdbuf_get(dev, 0, &bd);
+ sc = rtems_bdbuf_get(dd, 0, &bd);
ASSERT_SC(sc);
printk("H: access: 0\n");
@@ -158,6 +157,7 @@ static rtems_task Init(rtems_task_argument argument)
rtems_status_code sc = RTEMS_SUCCESSFUL;
rtems_task_priority cur_prio = 0;
rtems_bdbuf_buffer *bd = NULL;
+ dev_t dev = 0;
printk("\n\n*** TEST BLOCK 7 ***\n");
@@ -167,6 +167,9 @@ static rtems_task Init(rtems_task_argument argument)
sc = ramdisk_register(BLOCK_SIZE_A, BLOCK_COUNT, false, "/dev/rda", &dev);
ASSERT_SC(sc);
+ dd = rtems_disk_obtain(dev);
+ rtems_test_assert(dd != NULL);
+
sc = rtems_task_create(
rtems_build_name(' ', 'L', 'O', 'W'),
PRIORITY_LOW,
@@ -212,7 +215,7 @@ static rtems_task Init(rtems_task_argument argument)
sc = rtems_task_suspend(task_id_high);
ASSERT_SC(sc);
- sc = rtems_bdbuf_get(dev, 1, &bd);
+ sc = rtems_bdbuf_get(dd, 1, &bd);
ASSERT_SC(sc);
sc = rtems_bdbuf_release(bd);
@@ -220,7 +223,7 @@ static rtems_task Init(rtems_task_argument argument)
printk("I: try access: 0\n");
- sc = rtems_bdbuf_get(dev, 0, &bd);
+ sc = rtems_bdbuf_get(dd, 0, &bd);
ASSERT_SC(sc);
printk("I: access: 0\n");
diff --git a/testsuites/libtests/block08/bdbuf_test1_1.c b/testsuites/libtests/block08/bdbuf_test1_1.c
index 9f3ee06b93..2958f27167 100644
--- a/testsuites/libtests/block08/bdbuf_test1_1.c
+++ b/testsuites/libtests/block08/bdbuf_test1_1.c
@@ -106,7 +106,7 @@ bdbuf_test1_1_thread1(rtems_task_argument arg)
* Step 1-2:
* Successful read operation.
*/
- rc = rtems_bdbuf_read(test_dev, 0, &bd1);
+ rc = rtems_bdbuf_read(test_dd, 0, &bd1);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -124,7 +124,7 @@ bdbuf_test1_1_thread1(rtems_task_argument arg)
* Read operation fails with RTEMS_IO_ERROR code.
* The function shall not update user pointer.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd2);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd2);
if (rc != RTEMS_IO_ERROR || bd2 != NULL)
{
TEST_FAILED();
@@ -137,7 +137,7 @@ bdbuf_test1_1_thread1(rtems_task_argument arg)
* Read operation fails with RTEMS_IO_ERROR code.
* The function shall not update user pointer.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd2);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd2);
if (rc != RTEMS_IO_ERROR || bd2 != NULL)
{
TEST_FAILED();
diff --git a/testsuites/libtests/block08/bdbuf_test1_2.c b/testsuites/libtests/block08/bdbuf_test1_2.c
index 61b978ce49..1d5e44b1e3 100644
--- a/testsuites/libtests/block08/bdbuf_test1_2.c
+++ b/testsuites/libtests/block08/bdbuf_test1_2.c
@@ -122,7 +122,7 @@ bdbuf_test1_2_thread1(rtems_task_argument arg)
* driver will notify about an error, and as the
* result this call will return an error.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd);
if (rc != RTEMS_IO_ERROR || bd != NULL)
{
TEST_FAILED();
@@ -152,7 +152,7 @@ bdbuf_test1_2_thread2(rtems_task_argument arg)
* But main test task will agin tell device driver to return
* RTEMS_IO_ERROR data transfer result.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd);
if (rc != RTEMS_IO_ERROR || bd != NULL)
{
TEST_FAILED();
diff --git a/testsuites/libtests/block08/bdbuf_test1_3.c b/testsuites/libtests/block08/bdbuf_test1_3.c
index 9ea5b653ab..ab5d1dcbc6 100644
--- a/testsuites/libtests/block08/bdbuf_test1_3.c
+++ b/testsuites/libtests/block08/bdbuf_test1_3.c
@@ -131,7 +131,7 @@ bdbuf_test1_3_thread1(rtems_task_argument arg)
* driver will notify about an error, and as the
* result this call will return an error.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd);
if (rc != RTEMS_IO_ERROR || bd != NULL)
{
TEST_FAILED();
@@ -160,7 +160,7 @@ bdbuf_test1_3_thread2(rtems_task_argument arg)
* number, bdbuf library should ask for re-read data again.
* Time time main task will tell driver to report success.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd);
if (rc != RTEMS_SUCCESSFUL || bd == NULL)
{
TEST_FAILED();
diff --git a/testsuites/libtests/block08/bdbuf_test1_4.c b/testsuites/libtests/block08/bdbuf_test1_4.c
index b7a4b0c399..4d6e02835d 100644
--- a/testsuites/libtests/block08/bdbuf_test1_4.c
+++ b/testsuites/libtests/block08/bdbuf_test1_4.c
@@ -125,7 +125,7 @@ bdbuf_test1_4_thread1(rtems_task_argument arg)
* date transfer, and as the result this call
* will return valid buffer.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -161,7 +161,7 @@ bdbuf_test1_4_thread2(rtems_task_argument arg)
* On step 4 thread #1 releases buffer and as the result
* our read operation should finish with success.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
diff --git a/testsuites/libtests/block08/bdbuf_test1_5.c b/testsuites/libtests/block08/bdbuf_test1_5.c
index 4e09359652..c054db320f 100644
--- a/testsuites/libtests/block08/bdbuf_test1_5.c
+++ b/testsuites/libtests/block08/bdbuf_test1_5.c
@@ -101,7 +101,7 @@ bdbuf_test1_5_thread1(rtems_task_argument arg)
* Step 1:
* read blk #N on thread #1
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -133,7 +133,7 @@ bdbuf_test1_5_thread2(rtems_task_argument arg)
* Try to read block #N. Right now thread #1 owns
* this buffer, so we will block waiting for buffer.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
diff --git a/testsuites/libtests/block08/bdbuf_test2_1.c b/testsuites/libtests/block08/bdbuf_test2_1.c
index 6005657024..435d7184a0 100644
--- a/testsuites/libtests/block08/bdbuf_test2_1.c
+++ b/testsuites/libtests/block08/bdbuf_test2_1.c
@@ -142,7 +142,7 @@ bdbuf_test2_1_thread1(rtems_task_argument arg)
* date transfer, and as the result this call
* will return valid buffer.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -178,7 +178,7 @@ bdbuf_test2_1_thread2(rtems_task_argument arg)
* On step 4 thread #1 releases buffer and as the result
* our read operation should finish with success.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
diff --git a/testsuites/libtests/block08/bdbuf_test2_2.c b/testsuites/libtests/block08/bdbuf_test2_2.c
index 394a158426..5ee614c44c 100644
--- a/testsuites/libtests/block08/bdbuf_test2_2.c
+++ b/testsuites/libtests/block08/bdbuf_test2_2.c
@@ -142,7 +142,7 @@ bdbuf_test2_2_thread1(rtems_task_argument arg)
* date transfer, and as the result this call
* will return valid buffer.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -178,7 +178,7 @@ bdbuf_test2_2_thread2(rtems_task_argument arg)
* On step 4 thread #1 releases buffer and as the result
* our read operation should finish with success.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
diff --git a/testsuites/libtests/block08/bdbuf_test3_1.c b/testsuites/libtests/block08/bdbuf_test3_1.c
index cdee6eb4be..592fa019c3 100644
--- a/testsuites/libtests/block08/bdbuf_test3_1.c
+++ b/testsuites/libtests/block08/bdbuf_test3_1.c
@@ -116,7 +116,7 @@ bdbuf_test3_1_thread1(rtems_task_argument arg)
* [An entry is found in AVL tree, removed from modified list and
* returned with state ACCESS_MODIFIED]
*/
- rc = rtems_bdbuf_get(test_dev, TEST_BLK_NUM_N, &bd);
+ rc = rtems_bdbuf_get(test_dd, TEST_BLK_NUM_N, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -128,7 +128,7 @@ bdbuf_test3_1_thread1(rtems_task_argument arg)
TEST_FAILED();
}
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM_N, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM_N, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -166,7 +166,7 @@ bdbuf_test3_1_thread2(rtems_task_argument arg)
* this thread blocks on
* rtems_bdbuf_wait(pool, &pool->waiting, &pool->wait_waiters)]
*/
- rc = rtems_bdbuf_get(test_dev, TEST_BLK_NUM_M, &bd);
+ rc = rtems_bdbuf_get(test_dd, TEST_BLK_NUM_M, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
diff --git a/testsuites/libtests/block08/bdbuf_test3_2.c b/testsuites/libtests/block08/bdbuf_test3_2.c
index b9c97754fb..111b57fdf7 100644
--- a/testsuites/libtests/block08/bdbuf_test3_2.c
+++ b/testsuites/libtests/block08/bdbuf_test3_2.c
@@ -117,7 +117,7 @@ bdbuf_test3_2_thread1(rtems_task_argument arg)
* Step 1:
* Call rtems_bdbuf_read(#N) to get a buffer;
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM_N1, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM_N1, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -150,7 +150,7 @@ bdbuf_test3_2_thread2(rtems_task_argument arg)
* Step 2:
* In thread #2 call get(#N2)
*/
- rc = rtems_bdbuf_get(test_dev, TEST_BLK_NUM_N2, &bd);
+ rc = rtems_bdbuf_get(test_dd, TEST_BLK_NUM_N2, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -180,7 +180,7 @@ bdbuf_test3_2_thread3(rtems_task_argument arg)
* Step 3:
* In thread #3 call get(#N3)
*/
- rc = rtems_bdbuf_get(test_dev, TEST_BLK_NUM_N3, &bd);
+ rc = rtems_bdbuf_get(test_dd, TEST_BLK_NUM_N3, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
diff --git a/testsuites/libtests/block08/bdbuf_test3_3.c b/testsuites/libtests/block08/bdbuf_test3_3.c
index 13ac7a25fb..27dbfa2687 100644
--- a/testsuites/libtests/block08/bdbuf_test3_3.c
+++ b/testsuites/libtests/block08/bdbuf_test3_3.c
@@ -128,7 +128,7 @@ bdbuf_test3_3_thread1(rtems_task_argument arg)
* Step 1:
* Call rtems_bdbuf_read(#N) to get a buffer;
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM_N1, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM_N1, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -161,7 +161,7 @@ bdbuf_test3_3_thread2(rtems_task_argument arg)
* Step 2:
* In thread #2 call read(#N2)
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM_N2, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM_N2, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -191,7 +191,7 @@ bdbuf_test3_3_thread3(rtems_task_argument arg)
* Step 3:
* In thread #3 call read(#N3)
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM_N3, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM_N3, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
diff --git a/testsuites/libtests/block08/bdbuf_test4_1.c b/testsuites/libtests/block08/bdbuf_test4_1.c
index 6961c35020..914216d0c1 100644
--- a/testsuites/libtests/block08/bdbuf_test4_1.c
+++ b/testsuites/libtests/block08/bdbuf_test4_1.c
@@ -122,7 +122,7 @@ bdbuf_test4_1_thread1(rtems_task_argument arg)
* Step 1:
* Call rtems_bdbuf_read(#N) in thread #1;
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM_N, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM_N, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -158,7 +158,7 @@ bdbuf_test4_1_thread2(rtems_task_argument arg)
* In thread #2 call rtems_bdbuf_read(#N).
* We will block on this call.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM_N, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM_N, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
diff --git a/testsuites/libtests/block08/bdbuf_test4_2.c b/testsuites/libtests/block08/bdbuf_test4_2.c
index 628e65eaf9..c1d8890661 100644
--- a/testsuites/libtests/block08/bdbuf_test4_2.c
+++ b/testsuites/libtests/block08/bdbuf_test4_2.c
@@ -109,7 +109,7 @@ bdbuf_test4_2_thread1(rtems_task_argument arg)
* Step 1:
* Call rtems_bdbuf_read(#N) in thread #1;
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM_N, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM_N, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -143,7 +143,7 @@ bdbuf_test4_2_thread2(rtems_task_argument arg)
* In thread #2 call read(#N).
* We will block on this call.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM_N, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM_N, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
diff --git a/testsuites/libtests/block08/bdbuf_test4_3.c b/testsuites/libtests/block08/bdbuf_test4_3.c
index 55de280f3d..ab7861ee14 100644
--- a/testsuites/libtests/block08/bdbuf_test4_3.c
+++ b/testsuites/libtests/block08/bdbuf_test4_3.c
@@ -103,7 +103,7 @@ bdbuf_test4_3_thread1(rtems_task_argument arg)
* Step 1:
* Call rtems_bdbuf_read(#N) in thread #1;
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM_N, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM_N, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
@@ -137,7 +137,7 @@ bdbuf_test4_3_thread2(rtems_task_argument arg)
* In thread #2 call rtems_bdbuf_read(#N).
* We will block on this call.
*/
- rc = rtems_bdbuf_read(test_dev, TEST_BLK_NUM_N, &bd);
+ rc = rtems_bdbuf_read(test_dd, TEST_BLK_NUM_N, &bd);
if (rc != RTEMS_SUCCESSFUL)
{
TEST_FAILED();
diff --git a/testsuites/libtests/block08/bdbuf_tests.c b/testsuites/libtests/block08/bdbuf_tests.c
index bc6b772fb2..f265a094c1 100644
--- a/testsuites/libtests/block08/bdbuf_tests.c
+++ b/testsuites/libtests/block08/bdbuf_tests.c
@@ -49,7 +49,7 @@ struct bdbuf_test_descr {
#define TEST_SEM_ATTRIBS RTEMS_DEFAULT_ATTRIBUTES
/** Device ID used for testing */
-dev_t test_dev = (dev_t)-1;
+const rtems_disk_device *test_dd = NULL;
/** Test result variable */
bool good_test_result = true;
@@ -108,6 +108,7 @@ run_bdbuf_tests()
rtems_disk_device *disk;
rtems_status_code sc;
dev_t dev = -1;
+ dev_t test_dev;
unsigned int i;
rtems_device_major_number major;
@@ -153,6 +154,13 @@ run_bdbuf_tests()
return;
}
+ test_dd = rtems_disk_obtain(test_dev);
+ if (test_dd == NULL)
+ {
+ printf("Failed to obtain %s disk\n", TEST_DISK_NAME);
+ return;
+ }
+
/*
* On initialization test disk device driver registers
* its RX message queue, so we just need to locate it.
diff --git a/testsuites/libtests/block08/bdbuf_tests.h b/testsuites/libtests/block08/bdbuf_tests.h
index e8affa1cbc..ecd932fa4d 100644
--- a/testsuites/libtests/block08/bdbuf_tests.h
+++ b/testsuites/libtests/block08/bdbuf_tests.h
@@ -85,7 +85,7 @@ typedef struct bdbuf_test_msg {
union {
struct driver_req {
- dev_t dev;
+ const rtems_disk_device *dd;
uint32_t req;
void *argp;
} driver_req;
@@ -152,7 +152,7 @@ typedef struct test_ctx {
extern test_ctx g_test_ctx;
/** Device ID used for testing */
-extern dev_t test_dev;
+extern const rtems_disk_device *test_dd;
/**
* Create a message queue for test driver that is used for
@@ -259,7 +259,7 @@ extern bool good_test_result;
do { \
WAIT_DRV_MSG(msg_); \
if ((msg_)->val.driver_req.req != RTEMS_BLKIO_REQUEST || \
- (msg_)->val.driver_req.dev != test_dev || \
+ (msg_)->val.driver_req.dd != test_dd || \
((rtems_blkdev_request *) \
((msg_)->val.driver_req.argp))->req != \
RTEMS_BLKDEV_REQ_WRITE) \
@@ -267,7 +267,7 @@ extern bool good_test_result;
printk("Unexpected message received by disk driver: " \
"req - 0x%x (0x%x), dev - %d (%d)\n", \
(msg_)->val.driver_req.req, RTEMS_BLKIO_REQUEST, \
- (msg_)->val.driver_req.dev, test_dev); \
+ (msg_)->val.driver_req.dd, test_dd); \
return; \
} \
} while (0)
diff --git a/testsuites/libtests/block08/test_disk.c b/testsuites/libtests/block08/test_disk.c
index 358b3614ae..461914f345 100644
--- a/testsuites/libtests/block08/test_disk.c
+++ b/testsuites/libtests/block08/test_disk.c
@@ -34,7 +34,6 @@ static Objects_Id testq_id = OBJECTS_ID_NONE;
static int
test_disk_ioctl(rtems_disk_device *dd, uint32_t req, void *argp)
{
- dev_t dev = rtems_disk_get_device_identifier(dd);
rtems_status_code rc;
bdbuf_test_msg msg;
size_t msg_size;
@@ -66,7 +65,7 @@ test_disk_ioctl(rtems_disk_device *dd, uint32_t req, void *argp)
memset(&msg, 0, sizeof(msg));
msg.type = BDBUF_TEST_MSG_TYPE_DRIVER_REQ;
- msg.val.driver_req.dev = dev;
+ msg.val.driver_req.dd = dd;
msg.val.driver_req.req = req;
msg.val.driver_req.argp = argp;
diff --git a/testsuites/libtests/block09/init.c b/testsuites/libtests/block09/init.c
index 5d7a8b7e69..b7426c36c2 100644
--- a/testsuites/libtests/block09/init.c
+++ b/testsuites/libtests/block09/init.c
@@ -7,12 +7,13 @@
*/
/*
- * 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
@@ -108,7 +109,7 @@ static int disk_ioctl(rtems_disk_device *dd, uint32_t req, void *arg)
}
}
-rtems_status_code disk_register(
+static rtems_status_code disk_register(
uint32_t block_size,
rtems_blkdev_bnum block_count,
dev_t *dev_ptr
@@ -139,7 +140,7 @@ rtems_status_code disk_register(
}
static void check_read(
- dev_t dev,
+ const rtems_disk_device *dd,
rtems_blkdev_bnum block,
rtems_status_code expected_sc
)
@@ -147,7 +148,7 @@ static void check_read(
rtems_status_code sc = RTEMS_SUCCESSFUL;
rtems_bdbuf_buffer *bd = NULL;
- sc = rtems_bdbuf_read(dev, block, &bd);
+ sc = rtems_bdbuf_read(dd, block, &bd);
assert(sc == expected_sc);
if (sc == RTEMS_SUCCESSFUL) {
@@ -161,6 +162,7 @@ static rtems_task Init(rtems_task_argument argument)
rtems_status_code sc = RTEMS_SUCCESSFUL;
rtems_bdbuf_buffer *bd = NULL;
dev_t dev = 0;
+ rtems_disk_device *dd = NULL;
printk("\n\n*** TEST BLOCK 9 ***\n");
@@ -170,14 +172,17 @@ static rtems_task Init(rtems_task_argument argument)
sc = disk_register(BLOCK_SIZE, BLOCK_COUNT, &dev);
ASSERT_SC(sc);
- check_read(dev, BLOCK_READ_IO_ERROR, RTEMS_IO_ERROR);
- check_read(dev, BLOCK_READ_UNSATISFIED, RTEMS_UNSATISFIED);
- check_read(dev, BLOCK_READ_SUCCESSFUL, RTEMS_SUCCESSFUL);
- check_read(dev, BLOCK_WRITE_IO_ERROR, RTEMS_SUCCESSFUL);
+ dd = rtems_disk_obtain(dev);
+ assert(dd != NULL);
+
+ check_read(dd, BLOCK_READ_IO_ERROR, RTEMS_IO_ERROR);
+ check_read(dd, BLOCK_READ_UNSATISFIED, RTEMS_UNSATISFIED);
+ check_read(dd, BLOCK_READ_SUCCESSFUL, RTEMS_SUCCESSFUL);
+ check_read(dd, BLOCK_WRITE_IO_ERROR, RTEMS_SUCCESSFUL);
/* Check write IO error */
- sc = rtems_bdbuf_read(dev, BLOCK_WRITE_IO_ERROR, &bd);
+ sc = rtems_bdbuf_read(dd, BLOCK_WRITE_IO_ERROR, &bd);
ASSERT_SC(sc);
bd->buffer [0] = 1;
@@ -185,7 +190,7 @@ static rtems_task Init(rtems_task_argument argument)
sc = rtems_bdbuf_sync(bd);
ASSERT_SC(sc);
- sc = rtems_bdbuf_read(dev, BLOCK_WRITE_IO_ERROR, &bd);
+ sc = rtems_bdbuf_read(dd, BLOCK_WRITE_IO_ERROR, &bd);
ASSERT_SC(sc);
assert(bd->buffer [0] == 0);
@@ -195,7 +200,7 @@ static rtems_task Init(rtems_task_argument argument)
/* Check write to deleted disk */
- sc = rtems_bdbuf_read(dev, BLOCK_READ_SUCCESSFUL, &bd);
+ sc = rtems_bdbuf_read(dd, BLOCK_READ_SUCCESSFUL, &bd);
ASSERT_SC(sc);
sc = rtems_disk_delete(dev);
@@ -204,6 +209,9 @@ static rtems_task Init(rtems_task_argument argument)
sc = rtems_bdbuf_sync(bd);
ASSERT_SC(sc);
+ sc = rtems_disk_release(dd);
+ ASSERT_SC(sc);
+
printk("*** END OF TEST BLOCK 9 ***\n");
exit(0);
diff --git a/testsuites/libtests/block10/init.c b/testsuites/libtests/block10/init.c
index 18af160be1..80ca98e5ae 100644
--- a/testsuites/libtests/block10/init.c
+++ b/testsuites/libtests/block10/init.c
@@ -52,7 +52,7 @@ typedef rtems_bdbuf_buffer *(*access_func)(char task);
typedef void (*release_func)(char task, rtems_bdbuf_buffer *bd);
-static dev_t dev;
+static const rtems_disk_device *dd;
static rtems_id task_id_init;
@@ -110,7 +110,7 @@ static int disk_ioctl(rtems_disk_device *dd, uint32_t req, void *arg)
}
}
-rtems_status_code disk_register(
+static rtems_status_code disk_register(
uint32_t block_size,
rtems_blkdev_bnum block_count,
dev_t *dev_ptr
@@ -147,7 +147,7 @@ static rtems_bdbuf_buffer *do_get(char task)
printk("%c: try get\n", task);
- sc = rtems_bdbuf_get(dev, 0, &bd);
+ sc = rtems_bdbuf_get(dd, 0, &bd);
ASSERT_SC(sc);
printk("%c: get\n", task);
@@ -162,13 +162,13 @@ static rtems_bdbuf_buffer *do_get_mod(char task)
printk("%c: try get modified\n", task);
- sc = rtems_bdbuf_get(dev, 0, &bd);
+ sc = rtems_bdbuf_get(dd, 0, &bd);
ASSERT_SC(sc);
sc = rtems_bdbuf_release_modified(bd);
ASSERT_SC(sc);
- sc = rtems_bdbuf_get(dev, 0, &bd);
+ sc = rtems_bdbuf_get(dd, 0, &bd);
ASSERT_SC(sc);
printk("%c: get modified\n", task);
@@ -183,7 +183,7 @@ static rtems_bdbuf_buffer *do_read(char task)
printk("%c: try read\n", task);
- sc = rtems_bdbuf_read(dev, 0, &bd);
+ sc = rtems_bdbuf_read(dd, 0, &bd);
ASSERT_SC(sc);
printk("%c: read\n", task);
@@ -203,7 +203,7 @@ static void do_rel(char task, rtems_bdbuf_buffer *bd)
printk("%c: release done\n", task);
}
-void do_rel_mod(char task, rtems_bdbuf_buffer *bd)
+static void do_rel_mod(char task, rtems_bdbuf_buffer *bd)
{
rtems_status_code sc = RTEMS_SUCCESSFUL;
@@ -231,7 +231,7 @@ static void purge(char task)
{
printk("%c: purge\n", task);
- rtems_bdbuf_purge_dev(dev);
+ rtems_bdbuf_purge_dev(dd);
}
static void task_purger(rtems_task_argument arg)
@@ -387,6 +387,7 @@ static const char *purger_assoc_table [PURGER_COUNT] = {
static rtems_task Init(rtems_task_argument argument)
{
rtems_status_code sc = RTEMS_SUCCESSFUL;
+ dev_t dev = 0;
size_t i_w = 0;
size_t i_ac = 0;
size_t i_rel = 0;
@@ -402,6 +403,9 @@ static rtems_task Init(rtems_task_argument argument)
sc = disk_register(BLOCK_SIZE, BLOCK_COUNT, &dev);
ASSERT_SC(sc);
+ dd = rtems_disk_obtain(dev);
+ assert(dd != NULL);
+
sc = rtems_task_create(
rtems_build_name('P', 'U', 'R', 'G'),
PRIORITY_HIGH,
diff --git a/testsuites/samples/fileio/init.c b/testsuites/samples/fileio/init.c
index f8c33fc261..5c63744e9a 100644
--- a/testsuites/samples/fileio/init.c
+++ b/testsuites/samples/fileio/init.c
@@ -325,23 +325,9 @@ shell_bdbuf_trace (int argc, char* argv[])
}
static int
-disk_test_set_block_size (dev_t dev, size_t size)
+disk_test_set_block_size (rtems_disk_device *dd, size_t size)
{
- rtems_disk_device* dd;
- int rc;
-
- dd = rtems_disk_obtain (dev);
- if (!dd)
- {
- printf ("error: cannot obtain disk\n");
- return 1;
- }
-
- rc = dd->ioctl (dd, RTEMS_BLKIO_SETBLKSIZE, &size);
-
- rtems_disk_release (dd);
-
- return rc;
+ return dd->ioctl (dd, RTEMS_BLKIO_SETBLKSIZE, &size);
}
static int
@@ -353,37 +339,50 @@ disk_test_write_blocks (dev_t dev, int start, int count, size_t size)
int i;
rtems_bdbuf_buffer* bd;
rtems_status_code sc;
+ int rv = 0;
+ rtems_disk_device* dd;
+
+ dd = rtems_disk_obtain (dev);
+ if (!dd)
+ {
+ printf ("error: cannot obtain disk\n");
+ rv = 1;
+ }
- if (disk_test_set_block_size (dev, size) < 0)
+ if (rv == 0 && disk_test_set_block_size (dd, size) < 0)
{
printf ("error: set block size failed: %s\n", strerror (errno));
- return 1;
+ rv = 1;
}
- for (block = start; block < (start + count); block++)
+ for (block = start; rv == 0 && block < (start + count); block++)
{
- sc = rtems_bdbuf_read (dev, block, &bd);
- if (sc != RTEMS_SUCCESSFUL)
+ sc = rtems_bdbuf_read (dd, block, &bd);
+ if (sc == RTEMS_SUCCESSFUL)
{
- printf ("error: get block %d bd failed: %s\n",
- block, rtems_status_text (sc));
- return 1;
- }
+ ip = (uint32_t*) bd->buffer;
+ for (i = 0; i < (size / sizeof (uint32_t)); i++, ip++, value++)
+ *ip = (size << 16) | value;
- ip = (uint32_t*) bd->buffer;
- for (i = 0; i < (size / sizeof (uint32_t)); i++, ip++, value++)
- *ip = (size << 16) | value;
-
- sc = rtems_bdbuf_release_modified (bd);
- if (sc != RTEMS_SUCCESSFUL)
+ sc = rtems_bdbuf_release_modified (bd);
+ if (sc != RTEMS_SUCCESSFUL)
+ {
+ printf ("error: release block %d bd failed: %s\n",
+ block, rtems_status_text (sc));
+ rv = 1;
+ }
+ }
+ else
{
- printf ("error: release block %d bd failed: %s\n",
+ printf ("error: get block %d bd failed: %s\n",
block, rtems_status_text (sc));
- return 1;
+ rv = 1;
}
}
- return 0;
+ rtems_disk_release (dd);
+
+ return rv;
}
static int