From bde8be291e614d3dfbca1adb2ee722c23cb51c39 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 1 Aug 2018 06:38:41 +0200 Subject: libtests/block06: Use rtems_blkdev_create() Update #3358. --- testsuites/libtests/block06/block06.scn | 820 ++++++++++++++++---------------- testsuites/libtests/block06/init.c | 234 ++++----- 2 files changed, 499 insertions(+), 555 deletions(-) (limited to 'testsuites') diff --git a/testsuites/libtests/block06/block06.scn b/testsuites/libtests/block06/block06.scn index c18724e30e..9606dd5b64 100644 --- a/testsuites/libtests/block06/block06.scn +++ b/testsuites/libtests/block06/block06.scn @@ -1,512 +1,516 @@ -*** TEST BLOCK 6 *** -lower priority to 31: successful completion -register disk driver -disk io init: successful completion +*** BEGIN OF TEST BLOCK 6 *** +*** TEST VERSION: 5.0.0.0875607358b38443acf395ad675a4f07794d5f95 +*** TEST STATE: EXPECTED-PASS +*** TEST BUILD: RTEMS_NETWORKING RTEMS_POSIX_API RTEMS_SMP +*** TEST TOOLS: 7.3.0 20180125 (RTEMS 5, RSB 6d9c77c77d271d1fc2dfe8493d6713930b52a6dd, Newlib 3.0.0) +register disks disk init: /dev/bddisk0 -disk lock: successful completion +disk lock: RTEMS_SUCCESSFUL disk init: /dev/bddisk1 -disk lock: successful completion -creating task: bdt0: priority: 30: successful completion -starting task: bdt0: successful completion -creating task: bdt1: priority: 29: successful completion -starting task: bdt1: successful completion -creating task: bdt2: priority: 28: successful completion -starting task: bdt2: successful completion +disk lock: RTEMS_SUCCESSFUL +lower priority to 31: RTEMS_SUCCESSFUL +creating task: bdt0: priority: 30: RTEMS_SUCCESSFUL +starting task: bdt0: RTEMS_SUCCESSFUL +creating task: bdt1: priority: 29: RTEMS_SUCCESSFUL +starting task: bdt1: RTEMS_SUCCESSFUL +creating task: bdt2: priority: 28: RTEMS_SUCCESSFUL +starting task: bdt2: RTEMS_SUCCESSFUL test 1: Task 0 get buffer 0 from pool 0 -master: wake task 0: 0a010003: successful completion -bdt0: rtems_bdbuf_get[0]: successful completion -bdt0: rtems_bdbuf_release[0]: successful completion -bdt0: rtems_bdbuf_get[0]: successful completion -bdt0: rtems_bdbuf_release[0]: successful completion +master: wake task 0: 0a010003: bdt0: rtems_bdbuf_get[0]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release[0]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_get[0]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release[0]: RTEMS_SUCCESSFUL +RTEMS_SUCCESSFUL test 1: passed test 2: Task 0 get buffer 0 -> 4 from pool 0, task 2 and 1 block getting -master: wake task 0: 0a010003: successful completion -bdt0: rtems_bdbuf_get[0]: successful completion -bdt0: rtems_bdbuf_get[1]: successful completion -bdt0: rtems_bdbuf_get[2]: successful completion -bdt0: rtems_bdbuf_get[3]: successful completion -bdt0: rtems_bdbuf_get[4]: successful completion -bdt0: wake master: 0a010001: successful completion -master: wake task 1: 0a010004: successful completion -master: wake task 2: 0a010005: successful completion -master: wake task 0: 0a010003: successful completion -bdt2: rtems_bdbuf_get[0]: blocking ... -bdt1: rtems_bdbuf_get[0]: blocking ... -bdt0: rtems_bdbuf_release[0]: unblocks task 1 -bdt2: rtems_bdbuf_get[0]: successful completion -bdt2: rtems_bdbuf_release[0]: successful completion -bdt2: wake master: 0a010001: successful completion +master: wake task 0: 0a010003: bdt0: rtems_bdbuf_get[0]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_get[1]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_get[2]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_get[3]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_get[4]: RTEMS_SUCCESSFUL +bdt0: wake master: 0a010001: RTEMS_SUCCESSFUL +RTEMS_SUCCESSFUL +master: wake task 1: 0a010004: bdt1: rtems_bdbuf_get[0]: blocking ... +RTEMS_SUCCESSFUL +master: wake task 2: 0a010005: bdt2: rtems_bdbuf_get[0]: blocking ... +RTEMS_SUCCESSFUL +master: wake task 0: 0a010003: bdt0: rtems_bdbuf_release[0]: unblocks task 1 +bdt2: rtems_bdbuf_get[0]: RTEMS_SUCCESSFUL +bdt2: rtems_bdbuf_release[0]: RTEMS_SUCCESSFUL +bdt2: wake master: 0a010001: RTEMS_SUCCESSFUL bdt2: rtems_bdbuf_get[1]: blocking ... -bdt1: rtems_bdbuf_get[0]: successful completion -bdt1: rtems_bdbuf_release[0]: successful completion +bdt1: rtems_bdbuf_get[0]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[0]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[1]: blocking ... -bdt0: rtems_bdbuf_release[0]: successful completion -master: wake task 0: 0a010003: successful completion -bdt0: rtems_bdbuf_release[1]: unblocks task 1 -bdt2: rtems_bdbuf_get[1]: successful completion -bdt2: rtems_bdbuf_release[1]: successful completion -bdt2: wake master: 0a010001: successful completion +bdt0: rtems_bdbuf_release[0]: RTEMS_SUCCESSFUL +RTEMS_SUCCESSFUL +master: wake task 0: 0a010003: bdt0: rtems_bdbuf_release[1]: unblocks task 1 +bdt2: rtems_bdbuf_get[1]: RTEMS_SUCCESSFUL +bdt2: rtems_bdbuf_release[1]: RTEMS_SUCCESSFUL +bdt2: wake master: 0a010001: RTEMS_SUCCESSFUL bdt2: rtems_bdbuf_get[2]: blocking ... -bdt1: rtems_bdbuf_get[1]: successful completion -bdt1: rtems_bdbuf_release[1]: successful completion +bdt1: rtems_bdbuf_get[1]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[1]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[2]: blocking ... -bdt0: rtems_bdbuf_release[1]: successful completion -master: wake task 0: 0a010003: successful completion -bdt0: rtems_bdbuf_release[2]: unblocks task 1 -bdt2: rtems_bdbuf_get[2]: successful completion -bdt2: rtems_bdbuf_release[2]: successful completion -bdt2: wake master: 0a010001: successful completion +bdt0: rtems_bdbuf_release[1]: RTEMS_SUCCESSFUL +RTEMS_SUCCESSFUL +master: wake task 0: 0a010003: bdt0: rtems_bdbuf_release[2]: unblocks task 1 +bdt2: rtems_bdbuf_get[2]: RTEMS_SUCCESSFUL +bdt2: rtems_bdbuf_release[2]: RTEMS_SUCCESSFUL +bdt2: wake master: 0a010001: RTEMS_SUCCESSFUL bdt2: rtems_bdbuf_get[3]: blocking ... -bdt1: rtems_bdbuf_get[2]: successful completion -bdt1: rtems_bdbuf_release[2]: successful completion +bdt1: rtems_bdbuf_get[2]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[2]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[3]: blocking ... -bdt0: rtems_bdbuf_release[2]: successful completion -master: wake task 0: 0a010003: successful completion -bdt0: rtems_bdbuf_release[3]: unblocks task 1 -bdt2: rtems_bdbuf_get[3]: successful completion -bdt2: rtems_bdbuf_release[3]: successful completion -bdt2: wake master: 0a010001: successful completion +bdt0: rtems_bdbuf_release[2]: RTEMS_SUCCESSFUL +RTEMS_SUCCESSFUL +master: wake task 0: 0a010003: bdt0: rtems_bdbuf_release[3]: unblocks task 1 +bdt2: rtems_bdbuf_get[3]: RTEMS_SUCCESSFUL +bdt2: rtems_bdbuf_release[3]: RTEMS_SUCCESSFUL +bdt2: wake master: 0a010001: RTEMS_SUCCESSFUL bdt2: rtems_bdbuf_get[4]: blocking ... -bdt1: rtems_bdbuf_get[3]: successful completion -bdt1: rtems_bdbuf_release[3]: successful completion +bdt1: rtems_bdbuf_get[3]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[3]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[4]: blocking ... -bdt0: rtems_bdbuf_release[3]: successful completion -master: wake task 0: 0a010003: successful completion -bdt0: rtems_bdbuf_release[4]: unblocks task 1 -bdt2: rtems_bdbuf_get[4]: successful completion -bdt2: rtems_bdbuf_release[4]: successful completion -bdt2: wake master: 0a010001: successful completion -bdt1: rtems_bdbuf_get[4]: successful completion -bdt1: rtems_bdbuf_release[4]: successful completion -bdt0: rtems_bdbuf_release[4]: successful completion +bdt0: rtems_bdbuf_release[3]: RTEMS_SUCCESSFUL +RTEMS_SUCCESSFUL +master: wake task 0: 0a010003: bdt0: rtems_bdbuf_release[4]: unblocks task 1 +bdt2: rtems_bdbuf_get[4]: RTEMS_SUCCESSFUL +bdt2: rtems_bdbuf_release[4]: RTEMS_SUCCESSFUL +bdt2: wake master: 0a010001: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_get[4]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[4]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release[4]: RTEMS_SUCCESSFUL +RTEMS_SUCCESSFUL test 2: passed test 3: Task 0 read buffer 5, modify and release modified -master: wake task 0: 0a010003: successful completion -bdt0: rtems_bdbuf_read[5]: successful completion -bdt0: rtems_bdbuf_release_modified[5]: successful completion -bdt0: rtems_bdbuf_read[5]: successful completion -bdt0: rtems_bdbuf_release[5]: successful completion -bdt0: disk ioctl: wake watcher: 0a010003: successful completion +master: wake task 0: 0a010003: bdt0: rtems_bdbuf_read[5]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[5]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[5]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release[5]: RTEMS_SUCCESSFUL +RTEMS_SUCCESSFUL +bdt0: disk ioctl: wake watcher: 0a010003: RTEMS_SUCCESSFUL test 3: passed test 4: Task 0 read all buffers, task 1 blocks waiting for acessed buffer -master: wake task 0: 0a010003: successful completion -bdt0: rtems_bdbuf_read[0]: successful completion -bdt0: rtems_bdbuf_read[1]: successful completion -bdt0: rtems_bdbuf_read[2]: successful completion -bdt0: rtems_bdbuf_read[3]: successful completion -bdt0: rtems_bdbuf_read[4]: successful completion -bdt0: rtems_bdbuf_read[5]: successful completion -bdt0: rtems_bdbuf_read[6]: successful completion -bdt0: rtems_bdbuf_read[7]: successful completion -bdt0: rtems_bdbuf_read[8]: successful completion -bdt0: rtems_bdbuf_read[9]: successful completion -bdt0: rtems_bdbuf_read[10]: successful completion -bdt0: rtems_bdbuf_read[11]: successful completion -bdt0: rtems_bdbuf_read[12]: successful completion -bdt0: rtems_bdbuf_read[13]: successful completion -bdt0: rtems_bdbuf_read[14]: successful completion -bdt0: rtems_bdbuf_read[15]: successful completion -bdt0: rtems_bdbuf_read[16]: successful completion -bdt0: rtems_bdbuf_read[17]: successful completion -bdt0: rtems_bdbuf_read[18]: successful completion -bdt0: rtems_bdbuf_read[19]: successful completion -bdt0: rtems_bdbuf_read[20]: successful completion -bdt0: rtems_bdbuf_read[21]: successful completion -bdt0: rtems_bdbuf_read[22]: successful completion -bdt0: rtems_bdbuf_read[23]: successful completion -bdt0: rtems_bdbuf_read[24]: successful completion -bdt0: rtems_bdbuf_read[25]: successful completion -bdt0: rtems_bdbuf_read[26]: successful completion -bdt0: rtems_bdbuf_read[27]: successful completion -bdt0: rtems_bdbuf_read[28]: successful completion -bdt0: rtems_bdbuf_read[29]: successful completion -bdt0: rtems_bdbuf_read[30]: successful completion -bdt0: rtems_bdbuf_read[31]: successful completion -bdt0: rtems_bdbuf_read[32]: successful completion -bdt0: rtems_bdbuf_read[33]: successful completion -bdt0: rtems_bdbuf_read[34]: successful completion -bdt0: rtems_bdbuf_read[35]: successful completion -bdt0: rtems_bdbuf_read[36]: successful completion -bdt0: rtems_bdbuf_read[37]: successful completion -bdt0: rtems_bdbuf_read[38]: successful completion -bdt0: rtems_bdbuf_read[39]: successful completion -bdt0: rtems_bdbuf_read[40]: successful completion -bdt0: rtems_bdbuf_read[41]: successful completion -bdt0: rtems_bdbuf_read[42]: successful completion -bdt0: rtems_bdbuf_read[43]: successful completion -bdt0: rtems_bdbuf_read[44]: successful completion -bdt0: rtems_bdbuf_read[45]: successful completion -bdt0: rtems_bdbuf_read[46]: successful completion -bdt0: rtems_bdbuf_read[47]: successful completion -bdt0: rtems_bdbuf_read[48]: successful completion -bdt0: rtems_bdbuf_read[49]: successful completion -bdt0: rtems_bdbuf_read[50]: successful completion -bdt0: rtems_bdbuf_read[51]: successful completion -bdt0: rtems_bdbuf_read[52]: successful completion -bdt0: rtems_bdbuf_read[53]: successful completion -bdt0: rtems_bdbuf_read[54]: successful completion -bdt0: rtems_bdbuf_read[55]: successful completion -bdt0: rtems_bdbuf_read[56]: successful completion -bdt0: rtems_bdbuf_read[57]: successful completion -bdt0: rtems_bdbuf_read[58]: successful completion -bdt0: rtems_bdbuf_read[59]: successful completion -bdt0: rtems_bdbuf_read[60]: successful completion -bdt0: rtems_bdbuf_read[61]: successful completion -bdt0: rtems_bdbuf_read[62]: successful completion -bdt0: rtems_bdbuf_read[63]: successful completion -bdt0: wake master: 0a010001: successful completion -master: wake task 1: 0a010004: successful completion -bdt1: rtems_bdbuf_get[0]: blocking ... -master: wake task 0: 0a010003: successful completion +master: wake task 0: 0a010003: bdt0: rtems_bdbuf_read[0]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[1]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[2]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[3]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[4]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[5]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[6]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[7]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[8]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[9]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[10]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[11]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[12]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[13]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[14]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[15]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[16]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[17]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[18]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[19]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[20]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[21]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[22]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[23]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[24]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[25]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[26]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[27]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[28]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[29]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[30]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[31]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[32]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[33]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[34]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[35]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[36]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[37]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[38]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[39]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[40]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[41]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[42]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[43]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[44]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[45]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[46]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[47]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[48]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[49]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[50]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[51]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[52]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[53]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[54]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[55]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[56]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[57]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[58]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[59]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[60]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[61]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[62]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[63]: RTEMS_SUCCESSFUL +bdt0: wake master: 0a010001: RTEMS_SUCCESSFUL +RTEMS_SUCCESSFUL +master: wake task 1: 0a010004: bdt1: rtems_bdbuf_get[0]: blocking ... +RTEMS_SUCCESSFUL +master: wake task 0: 0a010003: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[0]: unblocks task 1 -bdt1: rtems_bdbuf_get[0]: successful completion -bdt1: rtems_bdbuf_release[0]: successful completion +bdt1: rtems_bdbuf_get[0]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[0]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[1]: blocking ... -bdt0: rtems_bdbuf_release_modified[0]: successful completion +bdt0: rtems_bdbuf_release_modified[0]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[1]: unblocks task 1 -bdt1: rtems_bdbuf_get[1]: successful completion -bdt1: rtems_bdbuf_release[1]: successful completion +bdt1: rtems_bdbuf_get[1]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[1]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[2]: blocking ... -bdt0: rtems_bdbuf_release_modified[1]: successful completion +bdt0: rtems_bdbuf_release_modified[1]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[2]: unblocks task 1 -bdt1: rtems_bdbuf_get[2]: successful completion -bdt1: rtems_bdbuf_release[2]: successful completion +bdt1: rtems_bdbuf_get[2]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[2]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[3]: blocking ... -bdt0: rtems_bdbuf_release_modified[2]: successful completion +bdt0: rtems_bdbuf_release_modified[2]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[3]: unblocks task 1 -bdt1: rtems_bdbuf_get[3]: successful completion -bdt1: rtems_bdbuf_release[3]: successful completion +bdt1: rtems_bdbuf_get[3]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[3]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[4]: blocking ... -bdt0: rtems_bdbuf_release_modified[3]: successful completion +bdt0: rtems_bdbuf_release_modified[3]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[4]: unblocks task 1 -bdt1: rtems_bdbuf_get[4]: successful completion -bdt1: rtems_bdbuf_release[4]: successful completion +bdt1: rtems_bdbuf_get[4]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[4]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[5]: blocking ... -bdt0: rtems_bdbuf_release_modified[4]: successful completion +bdt0: rtems_bdbuf_release_modified[4]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[5]: unblocks task 1 -bdt1: rtems_bdbuf_get[5]: successful completion -bdt1: rtems_bdbuf_release[5]: successful completion +bdt1: rtems_bdbuf_get[5]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[5]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[6]: blocking ... -bdt0: rtems_bdbuf_release_modified[5]: successful completion +bdt0: rtems_bdbuf_release_modified[5]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[6]: unblocks task 1 -bdt1: rtems_bdbuf_get[6]: successful completion -bdt1: rtems_bdbuf_release[6]: successful completion +bdt1: rtems_bdbuf_get[6]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[6]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[7]: blocking ... -bdt0: rtems_bdbuf_release_modified[6]: successful completion +bdt0: rtems_bdbuf_release_modified[6]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[7]: unblocks task 1 -bdt1: rtems_bdbuf_get[7]: successful completion -bdt1: rtems_bdbuf_release[7]: successful completion +bdt1: rtems_bdbuf_get[7]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[7]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[8]: blocking ... -bdt0: rtems_bdbuf_release_modified[7]: successful completion +bdt0: rtems_bdbuf_release_modified[7]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[8]: unblocks task 1 -bdt1: rtems_bdbuf_get[8]: successful completion -bdt1: rtems_bdbuf_release[8]: successful completion -bdt0: rtems_bdbuf_release_modified[8]: successful completion +bdt1: rtems_bdbuf_get[8]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[8]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[8]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[9]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[9]: successful completion +bdt0: rtems_bdbuf_release_modified[9]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[10]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[10]: successful completion +bdt0: rtems_bdbuf_release_modified[10]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[11]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[11]: successful completion +bdt0: rtems_bdbuf_release_modified[11]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[12]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[12]: successful completion +bdt0: rtems_bdbuf_release_modified[12]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[13]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[13]: successful completion +bdt0: rtems_bdbuf_release_modified[13]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[14]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[14]: successful completion +bdt0: rtems_bdbuf_release_modified[14]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[15]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[15]: successful completion +bdt0: rtems_bdbuf_release_modified[15]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[16]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[16]: successful completion +bdt0: rtems_bdbuf_release_modified[16]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[17]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[17]: successful completion +bdt0: rtems_bdbuf_release_modified[17]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[18]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[18]: successful completion +bdt0: rtems_bdbuf_release_modified[18]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[19]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[19]: successful completion +bdt0: rtems_bdbuf_release_modified[19]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[20]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[20]: successful completion +bdt0: rtems_bdbuf_release_modified[20]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[21]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[21]: successful completion +bdt0: rtems_bdbuf_release_modified[21]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[22]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[22]: successful completion +bdt0: rtems_bdbuf_release_modified[22]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[23]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[23]: successful completion +bdt0: rtems_bdbuf_release_modified[23]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[24]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[24]: successful completion +bdt0: rtems_bdbuf_release_modified[24]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[25]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[25]: successful completion +bdt0: rtems_bdbuf_release_modified[25]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[26]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[26]: successful completion +bdt0: rtems_bdbuf_release_modified[26]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[27]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[27]: successful completion +bdt0: rtems_bdbuf_release_modified[27]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[28]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[28]: successful completion +bdt0: rtems_bdbuf_release_modified[28]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[29]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[29]: successful completion +bdt0: rtems_bdbuf_release_modified[29]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[30]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[30]: successful completion +bdt0: rtems_bdbuf_release_modified[30]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[31]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[31]: successful completion -bdt0: disk ioctl: wake watcher: 0a010003: successful completion -bdt0: rtems_bdbuf_release_modified[32]: successful completion -bdt0: rtems_bdbuf_release_modified[33]: successful completion -bdt0: rtems_bdbuf_release_modified[34]: successful completion -bdt0: rtems_bdbuf_release_modified[35]: successful completion -bdt0: rtems_bdbuf_release_modified[36]: successful completion -bdt0: rtems_bdbuf_release_modified[37]: successful completion -bdt0: rtems_bdbuf_release_modified[38]: successful completion -bdt0: rtems_bdbuf_release_modified[39]: successful completion -bdt0: rtems_bdbuf_release_modified[40]: successful completion -bdt0: rtems_bdbuf_release_modified[41]: successful completion -bdt0: rtems_bdbuf_release_modified[42]: successful completion -bdt0: rtems_bdbuf_release_modified[43]: successful completion -bdt0: rtems_bdbuf_release_modified[44]: successful completion -bdt0: rtems_bdbuf_release_modified[45]: successful completion -bdt0: rtems_bdbuf_release_modified[46]: successful completion -bdt0: rtems_bdbuf_release_modified[47]: successful completion -bdt0: rtems_bdbuf_release_modified[48]: successful completion -bdt0: rtems_bdbuf_release_modified[49]: successful completion -bdt0: rtems_bdbuf_release_modified[50]: successful completion -bdt0: rtems_bdbuf_release_modified[51]: successful completion -bdt0: rtems_bdbuf_release_modified[52]: successful completion -bdt0: rtems_bdbuf_release_modified[53]: successful completion -bdt0: rtems_bdbuf_release_modified[54]: successful completion -bdt0: rtems_bdbuf_release_modified[55]: successful completion -bdt0: rtems_bdbuf_release_modified[56]: successful completion -bdt0: rtems_bdbuf_release_modified[57]: successful completion -bdt0: rtems_bdbuf_release_modified[58]: successful completion -bdt0: rtems_bdbuf_release_modified[59]: successful completion -bdt0: rtems_bdbuf_release_modified[60]: successful completion -bdt0: rtems_bdbuf_release_modified[61]: successful completion -bdt0: rtems_bdbuf_release_modified[62]: successful completion -bdt0: rtems_bdbuf_release_modified[63]: successful completion -bdt0: disk ioctl: wake watcher: 0a010003: successful completion +bdt0: rtems_bdbuf_release_modified[31]: RTEMS_SUCCESSFUL +bdt0: disk ioctl: wake watcher: 0a010003: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[32]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[33]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[34]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[35]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[36]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[37]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[38]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[39]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[40]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[41]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[42]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[43]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[44]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[45]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[46]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[47]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[48]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[49]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[50]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[51]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[52]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[53]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[54]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[55]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[56]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[57]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[58]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[59]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[60]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[61]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[62]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[63]: RTEMS_SUCCESSFUL +bdt0: disk ioctl: wake watcher: 0a010003: RTEMS_SUCCESSFUL test 4: passed test 5: Task 0 read all buffers, task 1 blocks waiting for new buffer -master: wake task 0: 0a010003: successful completion -bdt0: rtems_bdbuf_read[0]: successful completion -bdt0: rtems_bdbuf_read[1]: successful completion -bdt0: rtems_bdbuf_read[2]: successful completion -bdt0: rtems_bdbuf_read[3]: successful completion -bdt0: rtems_bdbuf_read[4]: successful completion -bdt0: rtems_bdbuf_read[5]: successful completion -bdt0: rtems_bdbuf_read[6]: successful completion -bdt0: rtems_bdbuf_read[7]: successful completion -bdt0: rtems_bdbuf_read[8]: successful completion -bdt0: rtems_bdbuf_read[9]: successful completion -bdt0: rtems_bdbuf_read[10]: successful completion -bdt0: rtems_bdbuf_read[11]: successful completion -bdt0: rtems_bdbuf_read[12]: successful completion -bdt0: rtems_bdbuf_read[13]: successful completion -bdt0: rtems_bdbuf_read[14]: successful completion -bdt0: rtems_bdbuf_read[15]: successful completion -bdt0: rtems_bdbuf_read[16]: successful completion -bdt0: rtems_bdbuf_read[17]: successful completion -bdt0: rtems_bdbuf_read[18]: successful completion -bdt0: rtems_bdbuf_read[19]: successful completion -bdt0: rtems_bdbuf_read[20]: successful completion -bdt0: rtems_bdbuf_read[21]: successful completion -bdt0: rtems_bdbuf_read[22]: successful completion -bdt0: rtems_bdbuf_read[23]: successful completion -bdt0: rtems_bdbuf_read[24]: successful completion -bdt0: rtems_bdbuf_read[25]: successful completion -bdt0: rtems_bdbuf_read[26]: successful completion -bdt0: rtems_bdbuf_read[27]: successful completion -bdt0: rtems_bdbuf_read[28]: successful completion -bdt0: rtems_bdbuf_read[29]: successful completion -bdt0: rtems_bdbuf_read[30]: successful completion -bdt0: rtems_bdbuf_read[31]: successful completion -bdt0: rtems_bdbuf_read[32]: successful completion -bdt0: rtems_bdbuf_read[33]: successful completion -bdt0: rtems_bdbuf_read[34]: successful completion -bdt0: rtems_bdbuf_read[35]: successful completion -bdt0: rtems_bdbuf_read[36]: successful completion -bdt0: rtems_bdbuf_read[37]: successful completion -bdt0: rtems_bdbuf_read[38]: successful completion -bdt0: rtems_bdbuf_read[39]: successful completion -bdt0: rtems_bdbuf_read[40]: successful completion -bdt0: rtems_bdbuf_read[41]: successful completion -bdt0: rtems_bdbuf_read[42]: successful completion -bdt0: rtems_bdbuf_read[43]: successful completion -bdt0: rtems_bdbuf_read[44]: successful completion -bdt0: rtems_bdbuf_read[45]: successful completion -bdt0: rtems_bdbuf_read[46]: successful completion -bdt0: rtems_bdbuf_read[47]: successful completion -bdt0: rtems_bdbuf_read[48]: successful completion -bdt0: rtems_bdbuf_read[49]: successful completion -bdt0: rtems_bdbuf_read[50]: successful completion -bdt0: rtems_bdbuf_read[51]: successful completion -bdt0: rtems_bdbuf_read[52]: successful completion -bdt0: rtems_bdbuf_read[53]: successful completion -bdt0: rtems_bdbuf_read[54]: successful completion -bdt0: rtems_bdbuf_read[55]: successful completion -bdt0: rtems_bdbuf_read[56]: successful completion -bdt0: rtems_bdbuf_read[57]: successful completion -bdt0: rtems_bdbuf_read[58]: successful completion -bdt0: rtems_bdbuf_read[59]: successful completion -bdt0: rtems_bdbuf_read[60]: successful completion -bdt0: rtems_bdbuf_read[61]: successful completion -bdt0: rtems_bdbuf_read[62]: successful completion -bdt0: rtems_bdbuf_read[63]: successful completion -bdt0: wake master: 0a010001: successful completion -master: wake task 1: 0a010004: successful completion -bdt1: rtems_bdbuf_get[20]: blocking ... -master: wake task 0: 0a010003: successful completion +master: wake task 0: 0a010003: bdt0: rtems_bdbuf_read[0]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[1]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[2]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[3]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[4]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[5]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[6]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[7]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[8]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[9]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[10]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[11]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[12]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[13]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[14]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[15]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[16]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[17]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[18]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[19]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[20]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[21]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[22]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[23]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[24]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[25]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[26]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[27]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[28]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[29]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[30]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[31]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[32]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[33]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[34]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[35]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[36]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[37]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[38]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[39]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[40]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[41]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[42]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[43]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[44]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[45]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[46]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[47]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[48]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[49]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[50]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[51]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[52]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[53]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[54]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[55]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[56]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[57]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[58]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[59]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[60]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[61]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[62]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[63]: RTEMS_SUCCESSFUL +bdt0: wake master: 0a010001: RTEMS_SUCCESSFUL +RTEMS_SUCCESSFUL +master: wake task 1: 0a010004: bdt1: rtems_bdbuf_get[20]: blocking ... +RTEMS_SUCCESSFUL +master: wake task 0: 0a010003: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[0]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[0]: successful completion +bdt0: rtems_bdbuf_release_modified[0]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[1]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[1]: successful completion +bdt0: rtems_bdbuf_release_modified[1]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[2]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[2]: successful completion +bdt0: rtems_bdbuf_release_modified[2]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[3]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[3]: successful completion +bdt0: rtems_bdbuf_release_modified[3]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[4]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[4]: successful completion +bdt0: rtems_bdbuf_release_modified[4]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[5]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[5]: successful completion +bdt0: rtems_bdbuf_release_modified[5]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[6]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[6]: successful completion +bdt0: rtems_bdbuf_release_modified[6]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[7]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[7]: successful completion +bdt0: rtems_bdbuf_release_modified[7]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[8]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[8]: successful completion +bdt0: rtems_bdbuf_release_modified[8]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[9]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[9]: successful completion +bdt0: rtems_bdbuf_release_modified[9]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[10]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[10]: successful completion +bdt0: rtems_bdbuf_release_modified[10]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[11]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[11]: successful completion +bdt0: rtems_bdbuf_release_modified[11]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[12]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[12]: successful completion +bdt0: rtems_bdbuf_release_modified[12]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[13]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[13]: successful completion +bdt0: rtems_bdbuf_release_modified[13]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[14]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[14]: successful completion +bdt0: rtems_bdbuf_release_modified[14]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[15]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[15]: successful completion +bdt0: rtems_bdbuf_release_modified[15]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[16]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[16]: successful completion +bdt0: rtems_bdbuf_release_modified[16]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[17]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[17]: successful completion +bdt0: rtems_bdbuf_release_modified[17]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[18]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[18]: successful completion +bdt0: rtems_bdbuf_release_modified[18]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[19]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[19]: successful completion +bdt0: rtems_bdbuf_release_modified[19]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[20]: unblocks task 1 -bdt1: rtems_bdbuf_get[20]: successful completion -bdt1: rtems_bdbuf_release[20]: successful completion +bdt1: rtems_bdbuf_get[20]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[20]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[21]: blocking ... -bdt0: rtems_bdbuf_release_modified[20]: successful completion +bdt0: rtems_bdbuf_release_modified[20]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[21]: unblocks task 1 -bdt1: rtems_bdbuf_get[21]: successful completion -bdt1: rtems_bdbuf_release[21]: successful completion +bdt1: rtems_bdbuf_get[21]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[21]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[22]: blocking ... -bdt0: rtems_bdbuf_release_modified[21]: successful completion +bdt0: rtems_bdbuf_release_modified[21]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[22]: unblocks task 1 -bdt1: rtems_bdbuf_get[22]: successful completion -bdt1: rtems_bdbuf_release[22]: successful completion +bdt1: rtems_bdbuf_get[22]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[22]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[23]: blocking ... -bdt0: rtems_bdbuf_release_modified[22]: successful completion +bdt0: rtems_bdbuf_release_modified[22]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[23]: unblocks task 1 -bdt1: rtems_bdbuf_get[23]: successful completion -bdt1: rtems_bdbuf_release[23]: successful completion +bdt1: rtems_bdbuf_get[23]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[23]: RTEMS_SUCCESSFUL bdt1: rtems_bdbuf_get[24]: blocking ... -bdt0: rtems_bdbuf_release_modified[23]: successful completion +bdt0: rtems_bdbuf_release_modified[23]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[24]: unblocks task 1 -bdt1: rtems_bdbuf_get[24]: successful completion -bdt1: rtems_bdbuf_release[24]: successful completion -bdt0: rtems_bdbuf_release_modified[24]: successful completion +bdt1: rtems_bdbuf_get[24]: RTEMS_SUCCESSFUL +bdt1: rtems_bdbuf_release[24]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[24]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[25]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[25]: successful completion +bdt0: rtems_bdbuf_release_modified[25]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[26]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[26]: successful completion +bdt0: rtems_bdbuf_release_modified[26]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[27]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[27]: successful completion +bdt0: rtems_bdbuf_release_modified[27]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[28]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[28]: successful completion +bdt0: rtems_bdbuf_release_modified[28]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[29]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[29]: successful completion +bdt0: rtems_bdbuf_release_modified[29]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[30]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[30]: successful completion +bdt0: rtems_bdbuf_release_modified[30]: RTEMS_SUCCESSFUL bdt0: rtems_bdbuf_release_modified[31]: unblocks task 1 -bdt0: rtems_bdbuf_release_modified[31]: successful completion -bdt0: disk ioctl: wake watcher: 0a010003: successful completion -bdt0: rtems_bdbuf_release_modified[32]: successful completion -bdt0: rtems_bdbuf_release_modified[33]: successful completion -bdt0: rtems_bdbuf_release_modified[34]: successful completion -bdt0: rtems_bdbuf_release_modified[35]: successful completion -bdt0: rtems_bdbuf_release_modified[36]: successful completion -bdt0: rtems_bdbuf_release_modified[37]: successful completion -bdt0: rtems_bdbuf_release_modified[38]: successful completion -bdt0: rtems_bdbuf_release_modified[39]: successful completion -bdt0: rtems_bdbuf_release_modified[40]: successful completion -bdt0: rtems_bdbuf_release_modified[41]: successful completion -bdt0: rtems_bdbuf_release_modified[42]: successful completion -bdt0: rtems_bdbuf_release_modified[43]: successful completion -bdt0: rtems_bdbuf_release_modified[44]: successful completion -bdt0: rtems_bdbuf_release_modified[45]: successful completion -bdt0: rtems_bdbuf_release_modified[46]: successful completion -bdt0: rtems_bdbuf_release_modified[47]: successful completion -bdt0: rtems_bdbuf_release_modified[48]: successful completion -bdt0: rtems_bdbuf_release_modified[49]: successful completion -bdt0: rtems_bdbuf_release_modified[50]: successful completion -bdt0: rtems_bdbuf_release_modified[51]: successful completion -bdt0: rtems_bdbuf_release_modified[52]: successful completion -bdt0: rtems_bdbuf_release_modified[53]: successful completion -bdt0: rtems_bdbuf_release_modified[54]: successful completion -bdt0: rtems_bdbuf_release_modified[55]: successful completion -bdt0: rtems_bdbuf_release_modified[56]: successful completion -bdt0: rtems_bdbuf_release_modified[57]: successful completion -bdt0: rtems_bdbuf_release_modified[58]: successful completion -bdt0: rtems_bdbuf_release_modified[59]: successful completion -bdt0: rtems_bdbuf_release_modified[60]: successful completion -bdt0: rtems_bdbuf_release_modified[61]: successful completion -bdt0: rtems_bdbuf_release_modified[62]: successful completion -bdt0: rtems_bdbuf_release_modified[63]: successful completion -bdt0: disk ioctl: wake watcher: 0a010003: successful completion +bdt0: rtems_bdbuf_release_modified[31]: RTEMS_SUCCESSFUL +bdt0: disk ioctl: wake watcher: 0a010003: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[32]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[33]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[34]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[35]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[36]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[37]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[38]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[39]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[40]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[41]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[42]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[43]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[44]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[45]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[46]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[47]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[48]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[49]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[50]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[51]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[52]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[53]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[54]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[55]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[56]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[57]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[58]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[59]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[60]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[61]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[62]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[63]: RTEMS_SUCCESSFUL +bdt0: disk ioctl: wake watcher: 0a010003: RTEMS_SUCCESSFUL test 5: passed test 6: Task 0 release modified 4 buffers then syncs a 5th buffer -master: wake task 0: 0a010003: successful completion -bdt0: rtems_bdbuf_read[0]: successful completion -bdt0: rtems_bdbuf_read[1]: successful completion -bdt0: rtems_bdbuf_read[2]: successful completion -bdt0: rtems_bdbuf_read[3]: successful completion -bdt0: rtems_bdbuf_read[4]: successful completion -bdt0: rtems_bdbuf_release_modified[0]: successful completion -bdt0: rtems_bdbuf_release_modified[1]: successful completion -bdt0: rtems_bdbuf_release_modified[2]: successful completion -bdt0: rtems_bdbuf_release_modified[3]: successful completion -bdt0: rtems_bdbuf_sync[4]: successful completion +master: wake task 0: 0a010003: bdt0: rtems_bdbuf_read[0]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[1]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[2]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[3]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[4]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[0]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[1]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[2]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[3]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_sync[4]: RTEMS_SUCCESSFUL +RTEMS_SUCCESSFUL test 6: passed test 7: Task 0 release modified 5 buffers then sync the device -master: wake task 0: 0a010003: successful completion -bdt0: rtems_bdbuf_read[0]: successful completion -bdt0: rtems_bdbuf_read[1]: successful completion -bdt0: rtems_bdbuf_read[2]: successful completion -bdt0: rtems_bdbuf_read[3]: successful completion -bdt0: rtems_bdbuf_read[4]: successful completion -bdt0: rtems_bdbuf_release_modified[0]: successful completion -bdt0: rtems_bdbuf_release_modified[1]: successful completion -bdt0: rtems_bdbuf_release_modified[2]: successful completion -bdt0: rtems_bdbuf_release_modified[3]: successful completion -bdt0: rtems_bdbuf_release_modified[4]: successful completion -bdt0: rtems_bdbuf_syncdev[5:2]: successful completion +master: wake task 0: 0a010003: bdt0: rtems_bdbuf_read[0]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[1]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[2]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[3]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[4]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[0]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[1]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[2]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[3]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[4]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_syncdev[0: RTEMS_SUCCESSFUL +RTEMS_SUCCESSFUL test 7: passed test 8: Task 0 releases modified 5 buffers is out or order sequence and the driver checks the buffers are in order -master: wake task 0: 0a010003: successful completion -bdt0: rtems_bdbuf_read[0]: successful completion -bdt0: rtems_bdbuf_read[1]: successful completion -bdt0: rtems_bdbuf_read[2]: successful completion -bdt0: rtems_bdbuf_read[3]: successful completion -bdt0: rtems_bdbuf_read[4]: successful completion -bdt0: rtems_bdbuf_release_modified[4]: successful completion -bdt0: rtems_bdbuf_release_modified[3]: successful completion -bdt0: rtems_bdbuf_release_modified[0]: successful completion -bdt0: rtems_bdbuf_release_modified[1]: successful completion -bdt0: rtems_bdbuf_release_modified[2]: successful completion -bdt0: rtems_bdbuf_syncdev[3:2]: checking order +master: wake task 0: 0a010003: bdt0: rtems_bdbuf_read[0]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[1]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[2]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[3]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_read[4]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[4]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[3]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[0]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[1]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_release_modified[2]: RTEMS_SUCCESSFUL +bdt0: rtems_bdbuf_syncdev[0]: checking order disk ioctl: multi-block order check: count = 5 -bdt0: rtems_bdbuf_syncdev[3:2]: successful completion +bdt0: rtems_bdbuf_syncdev[0]: RTEMS_SUCCESSFUL +RTEMS_SUCCESSFUL test 8: passed + *** END OF TEST BLOCK 6 *** diff --git a/testsuites/libtests/block06/init.c b/testsuites/libtests/block06/init.c index bd04a15eed..7c6facf8d2 100644 --- a/testsuites/libtests/block06/init.c +++ b/testsuites/libtests/block06/init.c @@ -17,6 +17,7 @@ #endif #include +#include #include #include #include @@ -24,6 +25,7 @@ #include #include #include +#include #include #include @@ -58,11 +60,6 @@ const rtems_bdbuf_config rtems_bdbuf_configuration = }; #endif -/** - * Let the IO system allocation the next available major number. - */ -#define RTEMS_DRIVER_AUTO_MAJOR (0) - /** * The bdbuf disk driver base name. */ @@ -84,17 +81,19 @@ typedef enum bdbuf_disk_action */ typedef struct bdbuf_disk { - const char* name; - rtems_id lock; - uint32_t block_size; - uint32_t block_count; - bdbuf_disk_action driver_action; - const char* watcher_name; - rtems_id watcher; - int watch_count; - const char* waiting_name; - rtems_id waiting; - uint32_t driver_sleep; + const char* name; + uint32_t minor; + rtems_id lock; + uint32_t block_size; + uint32_t block_count; + bdbuf_disk_action driver_action; + const char* watcher_name; + rtems_id watcher; + int watch_count; + const char* waiting_name; + rtems_id waiting; + uint32_t driver_sleep; + rtems_disk_device* dd; } bdbuf_disk; /* @@ -112,10 +111,8 @@ typedef struct bdbuf_task_control rtems_id task; rtems_id master; int test; - rtems_device_major_number major; - rtems_device_minor_number minor; + bdbuf_disk *bdd; bool passed; - rtems_disk_device *dd; } bdbuf_task_control; #define BDBUF_TEST_TASKS (3) @@ -255,11 +252,11 @@ bdbuf_set_disk_driver_watch (bdbuf_task_control* tc, int count) /* * Set up a disk watch and wait for the write to happen. */ - bdbuf_disk_lock (&bdbuf_disks[tc->minor]); - bdbuf_disks[tc->minor].watcher_name = tc->name; - bdbuf_disks[tc->minor].watcher = tc->task; - bdbuf_disks[tc->minor].watch_count = count; - bdbuf_disk_unlock (&bdbuf_disks[tc->minor]); + bdbuf_disk_lock (tc->bdd); + tc->bdd->watcher_name = tc->name; + tc->bdd->watcher = tc->task; + tc->bdd->watch_count = count; + bdbuf_disk_unlock (tc->bdd); } /** @@ -271,11 +268,11 @@ bdbuf_clear_disk_driver_watch (bdbuf_task_control* tc) /* * Set up a disk watch and wait for the write to happen. */ - bdbuf_disk_lock (&bdbuf_disks[tc->minor]); - bdbuf_disks[tc->minor].watcher_name = 0; - bdbuf_disks[tc->minor].watcher = 0; - bdbuf_disks[tc->minor].watch_count = 0; - bdbuf_disk_unlock (&bdbuf_disks[tc->minor]); + bdbuf_disk_lock (tc->bdd); + tc->bdd->watcher_name = 0; + tc->bdd->watcher = 0; + tc->bdd->watch_count = 0; + bdbuf_disk_unlock (tc->bdd); } /** @@ -304,9 +301,9 @@ bdbuf_set_disk_driver_action (bdbuf_task_control* tc, bdbuf_disk_action action) /* * Set up a disk action. */ - bdbuf_disk_lock (&bdbuf_disks[tc->minor]); - bdbuf_disks[tc->minor].driver_action = action; - bdbuf_disk_unlock (&bdbuf_disks[tc->minor]); + bdbuf_disk_lock (tc->bdd); + tc->bdd->driver_action = action; + bdbuf_disk_unlock (tc->bdd); } /** @@ -332,9 +329,7 @@ bdbuf_sleep (unsigned long msecs) static void bdbuf_task_control_init (int task, bdbuf_task_control* tc, - rtems_id master, - rtems_device_major_number major, - rtems_disk_device *dd) + rtems_id master) { char name[6]; sprintf (name, "bdt%d", task); @@ -344,10 +339,8 @@ bdbuf_task_control_init (int task, tc->task = 0; tc->master = master; tc->test = 0; - tc->major = major; - tc->minor = 0; + tc->bdd = NULL; tc->passed = false; - tc->dd = dd; } static bool @@ -521,7 +514,7 @@ bdbuf_disk_ioctl (rtems_disk_device *dd, uint32_t req, void* argp) break; default: - errno = EINVAL; + rtems_blkdev_ioctl (dd, req, argp); break; } @@ -532,35 +525,26 @@ bdbuf_disk_ioctl (rtems_disk_device *dd, uint32_t req, void* argp) return errno == 0 ? 0 : -1; } -/** - * BDBuf disk device driver initialization. - * - * @param major Disk major device number. - * @param minor Minor device number, not applicable. - * @param arg Initialization argument, not applicable. - */ -static rtems_device_driver -bdbuf_disk_initialize (rtems_device_major_number major, - rtems_device_minor_number minor, - void* arg) +static rtems_status_code +bdbuf_disk_initialize(void) { - rtems_status_code sc; + uint32_t minor; - printf ("disk io init: "); - sc = rtems_disk_io_initialize (); - if (!bdbuf_test_print_sc (sc, true)) - return sc; + printf ("register disks\n"); for (minor = 0; minor < BDBUF_DISKS; minor++) { char name[sizeof (BDBUF_DISK_DEVICE_BASE_NAME) + 10]; bdbuf_disk* bdd = &bdbuf_disks[minor]; rtems_status_code sc; + int fd; + int rv; snprintf (name, sizeof (name), BDBUF_DISK_DEVICE_BASE_NAME "%" PRIu32, minor); bdd->name = strdup (name); + bdd->minor = minor; printf ("disk init: %s\n", bdd->name); printf ("disk lock: "); @@ -574,9 +558,8 @@ bdbuf_disk_initialize (rtems_device_major_number major, bdd->block_size = 512 * (minor + 1); bdd->block_count = BDBUF_SIZE * (minor + 1); - sc = rtems_disk_create_phys(rtems_filesystem_make_dev_t (major, minor), - bdd->block_size, bdd->block_count, - bdbuf_disk_ioctl, bdd, name); + sc = rtems_blkdev_create(name, bdd->block_size, bdd->block_count, + bdbuf_disk_ioctl, bdd); if (sc != RTEMS_SUCCESSFUL) { printf ("disk init: create phys failed: "); @@ -584,49 +567,17 @@ bdbuf_disk_initialize (rtems_device_major_number major, return sc; } - } - return RTEMS_SUCCESSFUL; -} + fd = open(name, O_RDWR); + rtems_test_assert(fd >= 0); -/** - * Create the RAM Disk Driver entry. - */ -static rtems_driver_address_table bdbuf_disk_io_ops = { - initialization_entry: bdbuf_disk_initialize, - open_entry: rtems_blkdev_generic_open, - close_entry: rtems_blkdev_generic_close, - read_entry: rtems_blkdev_generic_read, - write_entry: rtems_blkdev_generic_write, - control_entry: rtems_blkdev_generic_ioctl -}; - -/** - * Set up the disk. - */ + rv = rtems_disk_fd_get_disk_device(fd, &bdd->dd); + rtems_test_assert(rv == 0); -static bool -bdbuf_tests_setup_disk (rtems_device_major_number *major, - rtems_disk_device **dd_ptr) -{ - rtems_status_code sc; - bool ok; - - /* - * Register the disk driver. - */ - printf ("register disk driver\n"); - - sc = rtems_io_register_driver (RTEMS_DRIVER_AUTO_MAJOR, - &bdbuf_disk_io_ops, - major); - ok = sc == RTEMS_SUCCESSFUL; - - if (ok) { - *dd_ptr = rtems_disk_obtain (rtems_filesystem_make_dev_t (*major, 0)); - ok = *dd_ptr != NULL; + rv = close(fd); + rtems_test_assert(rv == 0); } - return ok; + return RTEMS_SUCCESSFUL; } static bool @@ -678,7 +629,7 @@ bdbuf_tests_task_0_test_1 (bdbuf_task_control* tc) for (i = 0; (i < 2) && passed; i++) { printf ("%s: rtems_bdbuf_get[0]: ", tc->name); - sc = rtems_bdbuf_get (tc->dd, 0, &bd); + sc = rtems_bdbuf_get (tc->bdd->dd, 0, &bd); if (!bdbuf_test_print_sc (sc, true)) { passed = false; @@ -726,7 +677,7 @@ bdbuf_tests_task_0_test_2 (bdbuf_task_control* tc) for (i = 0; (i < 5) && passed; i++) { printf ("%s: rtems_bdbuf_get[%d]: ", tc->name, i); - sc = rtems_bdbuf_get (tc->dd, i, &bd); + sc = rtems_bdbuf_get (tc->bdd->dd, i, &bd); if (!bdbuf_test_print_sc (sc, true)) passed = false; @@ -791,15 +742,15 @@ bdbuf_tests_task_0_test_3 (bdbuf_task_control* tc) tc->passed = false; passed = true; - bdbuf_disk_lock (&bdbuf_disks[tc->minor]); - bdbuf_disks[tc->minor].driver_action = BDBUF_DISK_NOOP; - bdbuf_disk_unlock (&bdbuf_disks[tc->minor]); + bdbuf_disk_lock (tc->bdd); + tc->bdd->driver_action = BDBUF_DISK_NOOP; + bdbuf_disk_unlock (tc->bdd); /* * Read the buffer and then release it. */ printf ("%s: rtems_bdbuf_read[5]: ", tc->name); - sc = rtems_bdbuf_read (tc->dd, 5, &bd); + sc = rtems_bdbuf_read (tc->bdd->dd, 5, &bd); if ((passed = bdbuf_test_print_sc (sc, true))) { printf ("%s: rtems_bdbuf_release_modified[5]: ", tc->name); @@ -812,7 +763,7 @@ bdbuf_tests_task_0_test_3 (bdbuf_task_control* tc) * be maintained as modified. */ printf ("%s: rtems_bdbuf_read[5]: ", tc->name); - sc = rtems_bdbuf_read (tc->dd, 5, &bd); + sc = rtems_bdbuf_read (tc->bdd->dd, 5, &bd); if ((passed = bdbuf_test_print_sc (sc, true))) { printf ("%s: rtems_bdbuf_release[5]: ", tc->name); @@ -870,7 +821,7 @@ bdbuf_tests_task_0_test_4 (bdbuf_task_control* tc) for (i = 0; (i < num) && passed; i++) { printf ("%s: rtems_bdbuf_read[%zd]: ", tc->name, i); - sc = rtems_bdbuf_read (tc->dd, i, &bd); + sc = rtems_bdbuf_read (tc->bdd->dd, i, &bd); if (!bdbuf_test_print_sc (sc, true)) passed = false; @@ -987,7 +938,7 @@ bdbuf_tests_task_0_test_6 (bdbuf_task_control* tc) for (i = 0; (i < 5) && passed; i++) { printf ("%s: rtems_bdbuf_read[%d]: ", tc->name, i); - sc = rtems_bdbuf_get (tc->dd, i, &bd); + sc = rtems_bdbuf_get (tc->bdd->dd, i, &bd); if (!bdbuf_test_print_sc (sc, true)) passed = false; @@ -1044,7 +995,7 @@ bdbuf_tests_task_0_test_7 (bdbuf_task_control* tc) for (i = 0; (i < 5) && passed; i++) { printf ("%s: rtems_bdbuf_read[%d]: ", tc->name, i); - sc = rtems_bdbuf_get (tc->dd, i, &bd); + sc = rtems_bdbuf_get (tc->bdd->dd, i, &bd); if (!bdbuf_test_print_sc (sc, true)) passed = false; @@ -1062,11 +1013,10 @@ bdbuf_tests_task_0_test_7 (bdbuf_task_control* tc) if (passed) { - printf ("%s: rtems_bdbuf_syncdev[%" PRIuLEAST32 ":%" PRIuLEAST32 "]: ", + printf ("%s: rtems_bdbuf_syncdev[%" PRIu32 ": ", tc->name, - tc->major, - tc->minor); - passed = bdbuf_test_print_sc (rtems_bdbuf_syncdev (tc->dd), true); + tc->bdd->minor); + passed = bdbuf_test_print_sc (rtems_bdbuf_syncdev (tc->bdd->dd), true); } tc->passed = passed; @@ -1104,7 +1054,7 @@ bdbuf_tests_task_0_test_8 (bdbuf_task_control* tc) for (i = 0; (i < 5) && passed; i++) { printf ("%s: rtems_bdbuf_read[%d]: ", tc->name, i); - sc = rtems_bdbuf_get (tc->dd, i, &bd); + sc = rtems_bdbuf_get (tc->bdd->dd, i, &bd); if (!bdbuf_test_print_sc (sc, true)) passed = false; @@ -1144,15 +1094,13 @@ bdbuf_tests_task_0_test_8 (bdbuf_task_control* tc) */ bdbuf_set_disk_driver_action (tc, BDBUF_DISK_BLOCKS_INORDER); - printf ("%s: rtems_bdbuf_syncdev[%" PRIuLEAST32 ":%" PRIiLEAST32 "]: checking order\n", + printf ("%s: rtems_bdbuf_syncdev[%" PRIu32 "]: checking order\n", tc->name, - tc->major, - tc->minor); - sc = rtems_bdbuf_syncdev (tc->dd); - printf ("%s: rtems_bdbuf_syncdev[%" PRIuLEAST32 ":%" PRIuLEAST32 "]: ", + tc->bdd->minor); + sc = rtems_bdbuf_syncdev (tc->bdd->dd); + printf ("%s: rtems_bdbuf_syncdev[%" PRIu32 "]: ", tc->name, - tc->major, - tc->minor); + tc->bdd->minor); passed = bdbuf_test_print_sc (sc, true); } @@ -1247,7 +1195,7 @@ bdbuf_tests_ranged_get_release (bdbuf_task_control* tc, for (i = lower; (i < upper) && passed; i++) { printf ("%s: rtems_bdbuf_get[%d]: blocking ...\n", tc->name, i); - sc = rtems_bdbuf_get (tc->dd, i, &bd); + sc = rtems_bdbuf_get (tc->bdd->dd, i, &bd); printf ("%s: rtems_bdbuf_get[%d]: ", tc->name, i); if (!bdbuf_test_print_sc (sc, true)) { @@ -1436,7 +1384,7 @@ bdbuf_test_1 (bdbuf_task_control* tasks) /* * Use pool 0. */ - tasks[0].minor = 0; + tasks[0].bdd = &bdbuf_disks[0]; bdbuf_send_wait_event ("master", "wake task 0", tasks[0].task); @@ -1462,9 +1410,9 @@ bdbuf_test_2 (bdbuf_task_control* tasks) /* * Use pool 0. */ - tasks[0].minor = 0; - tasks[1].minor = 0; - tasks[2].minor = 0; + tasks[0].bdd = &bdbuf_disks[0]; + tasks[1].bdd = &bdbuf_disks[0]; + tasks[2].bdd = &bdbuf_disks[0]; /* * Wake task 0 and wait for it to have all the buffers. @@ -1517,7 +1465,7 @@ bdbuf_test_3 (bdbuf_task_control* tasks) /* * Use pool 0. */ - tasks[0].minor = 0; + tasks[0].bdd = &bdbuf_disks[0]; /* * Wake task 0. @@ -1542,8 +1490,8 @@ bdbuf_test_4 (bdbuf_task_control* tasks) /* * Use pool 0. */ - tasks[0].minor = 0; - tasks[1].minor = 0; + tasks[0].bdd = &bdbuf_disks[0]; + tasks[1].bdd = &bdbuf_disks[0]; /* * Wake task 0. @@ -1588,8 +1536,8 @@ bdbuf_test_5 (bdbuf_task_control* tasks) /* * Use pool 0. */ - tasks[0].minor = 0; - tasks[1].minor = 0; + tasks[0].bdd = &bdbuf_disks[0]; + tasks[1].bdd = &bdbuf_disks[0]; /* * Wake task 0. @@ -1632,7 +1580,7 @@ bdbuf_test_6 (bdbuf_task_control* tasks) /* * Use pool 0. */ - tasks[0].minor = 0; + tasks[0].bdd = &bdbuf_disks[0]; /* * Wake task 0. @@ -1655,7 +1603,7 @@ bdbuf_test_7 (bdbuf_task_control* tasks) /* * Use pool 0. */ - tasks[0].minor = 0; + tasks[0].bdd = &bdbuf_disks[0]; /* * Wake task 0. @@ -1678,7 +1626,7 @@ bdbuf_test_8 (bdbuf_task_control* tasks) /* * Use pool 0. */ - tasks[0].minor = 0; + tasks[0].bdd = &bdbuf_disks[0]; /* * Wake task 0. @@ -1750,12 +1698,14 @@ static bdbuf_test_ident bdbuf_tests[] = static void bdbuf_tester (void) { - rtems_device_major_number major; bdbuf_task_control tasks[BDBUF_TEST_TASKS]; rtems_task_priority old_priority; int t; bool passed = true; - rtems_disk_device *dd; + rtems_status_code sc; + + sc = bdbuf_disk_initialize(); + rtems_test_assert(sc == RTEMS_SUCCESSFUL); /* * Change priority to a lower one. @@ -1766,15 +1716,6 @@ bdbuf_tester (void) &old_priority), true); - /* - * This sets up the buffer pools. - */ - if (!bdbuf_tests_setup_disk (&major, &dd)) - { - printf ("disk set up failed\n"); - return; - } - /* * Make sure the swapout task has run. The user could block * the swapout task from running until later. This is not @@ -1789,9 +1730,7 @@ bdbuf_tester (void) for (t = 0; t < BDBUF_TEST_TASKS; t++) { bdbuf_task_control_init (t, &tasks[t], - rtems_task_self (), - major, - dd); + rtems_task_self ()); if (!bdbuf_tests_create_task (&tasks[t], BDBUF_TESTS_PRI_HIGH - t, @@ -1832,10 +1771,11 @@ static rtems_task Init(rtems_task_argument argument) #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER #define CONFIGURE_APPLICATION_NEEDS_LIBBLOCK +#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 4 + #define CONFIGURE_BDBUF_TASK_STACK_SIZE BDBUF_TEST_STACK_SIZE #define CONFIGURE_MAXIMUM_TASKS (1 + BDBUF_TEST_TASKS) -#define CONFIGURE_MAXIMUM_DRIVERS 3 #define CONFIGURE_MAXIMUM_SEMAPHORES 2 #define CONFIGURE_EXTRA_TASK_STACKS \ -- cgit v1.2.3