summaryrefslogtreecommitdiffstats
path: root/testsuites/libtests/block07
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2012-02-28 17:19:49 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2012-03-13 12:24:18 +0100
commit796967c3df40a51a9028bc83d1a4b6dbeae07c3f (patch)
treeedd7251883f74506a69f76e6e9fbf173de195f50 /testsuites/libtests/block07
parentlibblock: Documentation (diff)
downloadrtems-796967c3df40a51a9028bc83d1a4b6dbeae07c3f.tar.bz2
libblock: Change bdbuf API
The functions o rtems_bdbuf_get(), o rtems_bdbuf_read(), o rtems_bdbuf_syncdev(), and o rtems_bdbuf_purge_dev(), use now the disk device instead of the device identifier. This makes bdbuf independent of rtems_disk_obtain() and rtems_disk_release(). It is the responsiblity of the file system to obtain the disk device. This also reduces the overhead to get a buffer. The key for the AVL tree uses now the disk device instead of the device identifier. The pointer is interpreted as an unsigned integer. This reduces the memory overhead and makes the comparison operation a bit faster. Removed function rtems_bdbuf_purge_major(). This function was too destructive and could have unpredictable side effects.
Diffstat (limited to 'testsuites/libtests/block07')
-rw-r--r--testsuites/libtests/block07/init.c19
1 files changed, 11 insertions, 8 deletions
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");