libtests/block06: Use rtems_blkdev_create()

Update #3358.
This commit is contained in:
Sebastian Huber
2018-08-01 06:38:41 +02:00
parent 678277132b
commit bde8be291e
2 changed files with 501 additions and 557 deletions

View File

@@ -1,512 +1,516 @@
*** TEST BLOCK 6 *** *** BEGIN OF TEST BLOCK 6 ***
lower priority to 31: successful completion *** TEST VERSION: 5.0.0.0875607358b38443acf395ad675a4f07794d5f95
register disk driver *** TEST STATE: EXPECTED-PASS
disk io init: successful completion *** 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 init: /dev/bddisk0
disk lock: successful completion disk lock: RTEMS_SUCCESSFUL
disk init: /dev/bddisk1 disk init: /dev/bddisk1
disk lock: successful completion disk lock: RTEMS_SUCCESSFUL
creating task: bdt0: priority: 30: successful completion lower priority to 31: RTEMS_SUCCESSFUL
starting task: bdt0: successful completion creating task: bdt0: priority: 30: RTEMS_SUCCESSFUL
creating task: bdt1: priority: 29: successful completion starting task: bdt0: RTEMS_SUCCESSFUL
starting task: bdt1: successful completion creating task: bdt1: priority: 29: RTEMS_SUCCESSFUL
creating task: bdt2: priority: 28: successful completion starting task: bdt1: RTEMS_SUCCESSFUL
starting task: bdt2: successful completion creating task: bdt2: priority: 28: RTEMS_SUCCESSFUL
starting task: bdt2: RTEMS_SUCCESSFUL
test 1: Task 0 get buffer 0 from pool 0 test 1: Task 0 get buffer 0 from pool 0
master: wake task 0: 0a010003: successful completion master: wake task 0: 0a010003: bdt0: rtems_bdbuf_get[0]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_get[0]: successful completion bdt0: rtems_bdbuf_release[0]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release[0]: successful completion bdt0: rtems_bdbuf_get[0]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_get[0]: successful completion bdt0: rtems_bdbuf_release[0]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release[0]: successful completion RTEMS_SUCCESSFUL
test 1: passed test 1: passed
test 2: Task 0 get buffer 0 -> 4 from pool 0, task 2 and 1 block getting test 2: Task 0 get buffer 0 -> 4 from pool 0, task 2 and 1 block getting
master: wake task 0: 0a010003: successful completion master: wake task 0: 0a010003: bdt0: rtems_bdbuf_get[0]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_get[0]: successful completion bdt0: rtems_bdbuf_get[1]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_get[1]: successful completion bdt0: rtems_bdbuf_get[2]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_get[2]: successful completion bdt0: rtems_bdbuf_get[3]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_get[3]: successful completion bdt0: rtems_bdbuf_get[4]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_get[4]: successful completion bdt0: wake master: 0a010001: RTEMS_SUCCESSFUL
bdt0: wake master: 0a010001: successful completion RTEMS_SUCCESSFUL
master: wake task 1: 0a010004: successful completion master: wake task 1: 0a010004: bdt1: rtems_bdbuf_get[0]: blocking ...
master: wake task 2: 0a010005: successful completion RTEMS_SUCCESSFUL
master: wake task 0: 0a010003: successful completion master: wake task 2: 0a010005: bdt2: rtems_bdbuf_get[0]: blocking ...
bdt2: rtems_bdbuf_get[0]: blocking ... RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[0]: blocking ... master: wake task 0: 0a010003: bdt0: rtems_bdbuf_release[0]: unblocks task 1
bdt0: rtems_bdbuf_release[0]: unblocks task 1 bdt2: rtems_bdbuf_get[0]: RTEMS_SUCCESSFUL
bdt2: rtems_bdbuf_get[0]: successful completion bdt2: rtems_bdbuf_release[0]: RTEMS_SUCCESSFUL
bdt2: rtems_bdbuf_release[0]: successful completion bdt2: wake master: 0a010001: RTEMS_SUCCESSFUL
bdt2: wake master: 0a010001: successful completion
bdt2: rtems_bdbuf_get[1]: blocking ... bdt2: rtems_bdbuf_get[1]: blocking ...
bdt1: rtems_bdbuf_get[0]: successful completion bdt1: rtems_bdbuf_get[0]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[0]: successful completion bdt1: rtems_bdbuf_release[0]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[1]: blocking ... bdt1: rtems_bdbuf_get[1]: blocking ...
bdt0: rtems_bdbuf_release[0]: successful completion bdt0: rtems_bdbuf_release[0]: RTEMS_SUCCESSFUL
master: wake task 0: 0a010003: successful completion RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release[1]: unblocks task 1 master: wake task 0: 0a010003: bdt0: rtems_bdbuf_release[1]: unblocks task 1
bdt2: rtems_bdbuf_get[1]: successful completion bdt2: rtems_bdbuf_get[1]: RTEMS_SUCCESSFUL
bdt2: rtems_bdbuf_release[1]: successful completion bdt2: rtems_bdbuf_release[1]: RTEMS_SUCCESSFUL
bdt2: wake master: 0a010001: successful completion bdt2: wake master: 0a010001: RTEMS_SUCCESSFUL
bdt2: rtems_bdbuf_get[2]: blocking ... bdt2: rtems_bdbuf_get[2]: blocking ...
bdt1: rtems_bdbuf_get[1]: successful completion bdt1: rtems_bdbuf_get[1]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[1]: successful completion bdt1: rtems_bdbuf_release[1]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[2]: blocking ... bdt1: rtems_bdbuf_get[2]: blocking ...
bdt0: rtems_bdbuf_release[1]: successful completion bdt0: rtems_bdbuf_release[1]: RTEMS_SUCCESSFUL
master: wake task 0: 0a010003: successful completion RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release[2]: unblocks task 1 master: wake task 0: 0a010003: bdt0: rtems_bdbuf_release[2]: unblocks task 1
bdt2: rtems_bdbuf_get[2]: successful completion bdt2: rtems_bdbuf_get[2]: RTEMS_SUCCESSFUL
bdt2: rtems_bdbuf_release[2]: successful completion bdt2: rtems_bdbuf_release[2]: RTEMS_SUCCESSFUL
bdt2: wake master: 0a010001: successful completion bdt2: wake master: 0a010001: RTEMS_SUCCESSFUL
bdt2: rtems_bdbuf_get[3]: blocking ... bdt2: rtems_bdbuf_get[3]: blocking ...
bdt1: rtems_bdbuf_get[2]: successful completion bdt1: rtems_bdbuf_get[2]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[2]: successful completion bdt1: rtems_bdbuf_release[2]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[3]: blocking ... bdt1: rtems_bdbuf_get[3]: blocking ...
bdt0: rtems_bdbuf_release[2]: successful completion bdt0: rtems_bdbuf_release[2]: RTEMS_SUCCESSFUL
master: wake task 0: 0a010003: successful completion RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release[3]: unblocks task 1 master: wake task 0: 0a010003: bdt0: rtems_bdbuf_release[3]: unblocks task 1
bdt2: rtems_bdbuf_get[3]: successful completion bdt2: rtems_bdbuf_get[3]: RTEMS_SUCCESSFUL
bdt2: rtems_bdbuf_release[3]: successful completion bdt2: rtems_bdbuf_release[3]: RTEMS_SUCCESSFUL
bdt2: wake master: 0a010001: successful completion bdt2: wake master: 0a010001: RTEMS_SUCCESSFUL
bdt2: rtems_bdbuf_get[4]: blocking ... bdt2: rtems_bdbuf_get[4]: blocking ...
bdt1: rtems_bdbuf_get[3]: successful completion bdt1: rtems_bdbuf_get[3]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[3]: successful completion bdt1: rtems_bdbuf_release[3]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[4]: blocking ... bdt1: rtems_bdbuf_get[4]: blocking ...
bdt0: rtems_bdbuf_release[3]: successful completion bdt0: rtems_bdbuf_release[3]: RTEMS_SUCCESSFUL
master: wake task 0: 0a010003: successful completion RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release[4]: unblocks task 1 master: wake task 0: 0a010003: bdt0: rtems_bdbuf_release[4]: unblocks task 1
bdt2: rtems_bdbuf_get[4]: successful completion bdt2: rtems_bdbuf_get[4]: RTEMS_SUCCESSFUL
bdt2: rtems_bdbuf_release[4]: successful completion bdt2: rtems_bdbuf_release[4]: RTEMS_SUCCESSFUL
bdt2: wake master: 0a010001: successful completion bdt2: wake master: 0a010001: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[4]: successful completion bdt1: rtems_bdbuf_get[4]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[4]: successful completion bdt1: rtems_bdbuf_release[4]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release[4]: successful completion bdt0: rtems_bdbuf_release[4]: RTEMS_SUCCESSFUL
RTEMS_SUCCESSFUL
test 2: passed test 2: passed
test 3: Task 0 read buffer 5, modify and release modified test 3: Task 0 read buffer 5, modify and release modified
master: wake task 0: 0a010003: successful completion master: wake task 0: 0a010003: bdt0: rtems_bdbuf_read[5]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[5]: successful completion bdt0: rtems_bdbuf_release_modified[5]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[5]: successful completion bdt0: rtems_bdbuf_read[5]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[5]: successful completion bdt0: rtems_bdbuf_release[5]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release[5]: successful completion RTEMS_SUCCESSFUL
bdt0: disk ioctl: wake watcher: 0a010003: successful completion bdt0: disk ioctl: wake watcher: 0a010003: RTEMS_SUCCESSFUL
test 3: passed test 3: passed
test 4: Task 0 read all buffers, task 1 blocks waiting for acessed buffer test 4: Task 0 read all buffers, task 1 blocks waiting for acessed buffer
master: wake task 0: 0a010003: successful completion master: wake task 0: 0a010003: bdt0: rtems_bdbuf_read[0]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[0]: successful completion bdt0: rtems_bdbuf_read[1]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[1]: successful completion bdt0: rtems_bdbuf_read[2]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[2]: successful completion bdt0: rtems_bdbuf_read[3]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[3]: successful completion bdt0: rtems_bdbuf_read[4]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[4]: successful completion bdt0: rtems_bdbuf_read[5]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[5]: successful completion bdt0: rtems_bdbuf_read[6]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[6]: successful completion bdt0: rtems_bdbuf_read[7]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[7]: successful completion bdt0: rtems_bdbuf_read[8]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[8]: successful completion bdt0: rtems_bdbuf_read[9]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[9]: successful completion bdt0: rtems_bdbuf_read[10]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[10]: successful completion bdt0: rtems_bdbuf_read[11]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[11]: successful completion bdt0: rtems_bdbuf_read[12]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[12]: successful completion bdt0: rtems_bdbuf_read[13]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[13]: successful completion bdt0: rtems_bdbuf_read[14]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[14]: successful completion bdt0: rtems_bdbuf_read[15]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[15]: successful completion bdt0: rtems_bdbuf_read[16]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[16]: successful completion bdt0: rtems_bdbuf_read[17]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[17]: successful completion bdt0: rtems_bdbuf_read[18]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[18]: successful completion bdt0: rtems_bdbuf_read[19]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[19]: successful completion bdt0: rtems_bdbuf_read[20]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[20]: successful completion bdt0: rtems_bdbuf_read[21]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[21]: successful completion bdt0: rtems_bdbuf_read[22]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[22]: successful completion bdt0: rtems_bdbuf_read[23]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[23]: successful completion bdt0: rtems_bdbuf_read[24]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[24]: successful completion bdt0: rtems_bdbuf_read[25]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[25]: successful completion bdt0: rtems_bdbuf_read[26]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[26]: successful completion bdt0: rtems_bdbuf_read[27]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[27]: successful completion bdt0: rtems_bdbuf_read[28]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[28]: successful completion bdt0: rtems_bdbuf_read[29]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[29]: successful completion bdt0: rtems_bdbuf_read[30]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[30]: successful completion bdt0: rtems_bdbuf_read[31]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[31]: successful completion bdt0: rtems_bdbuf_read[32]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[32]: successful completion bdt0: rtems_bdbuf_read[33]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[33]: successful completion bdt0: rtems_bdbuf_read[34]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[34]: successful completion bdt0: rtems_bdbuf_read[35]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[35]: successful completion bdt0: rtems_bdbuf_read[36]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[36]: successful completion bdt0: rtems_bdbuf_read[37]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[37]: successful completion bdt0: rtems_bdbuf_read[38]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[38]: successful completion bdt0: rtems_bdbuf_read[39]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[39]: successful completion bdt0: rtems_bdbuf_read[40]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[40]: successful completion bdt0: rtems_bdbuf_read[41]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[41]: successful completion bdt0: rtems_bdbuf_read[42]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[42]: successful completion bdt0: rtems_bdbuf_read[43]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[43]: successful completion bdt0: rtems_bdbuf_read[44]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[44]: successful completion bdt0: rtems_bdbuf_read[45]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[45]: successful completion bdt0: rtems_bdbuf_read[46]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[46]: successful completion bdt0: rtems_bdbuf_read[47]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[47]: successful completion bdt0: rtems_bdbuf_read[48]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[48]: successful completion bdt0: rtems_bdbuf_read[49]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[49]: successful completion bdt0: rtems_bdbuf_read[50]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[50]: successful completion bdt0: rtems_bdbuf_read[51]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[51]: successful completion bdt0: rtems_bdbuf_read[52]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[52]: successful completion bdt0: rtems_bdbuf_read[53]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[53]: successful completion bdt0: rtems_bdbuf_read[54]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[54]: successful completion bdt0: rtems_bdbuf_read[55]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[55]: successful completion bdt0: rtems_bdbuf_read[56]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[56]: successful completion bdt0: rtems_bdbuf_read[57]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[57]: successful completion bdt0: rtems_bdbuf_read[58]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[58]: successful completion bdt0: rtems_bdbuf_read[59]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[59]: successful completion bdt0: rtems_bdbuf_read[60]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[60]: successful completion bdt0: rtems_bdbuf_read[61]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[61]: successful completion bdt0: rtems_bdbuf_read[62]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[62]: successful completion bdt0: rtems_bdbuf_read[63]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[63]: successful completion bdt0: wake master: 0a010001: RTEMS_SUCCESSFUL
bdt0: wake master: 0a010001: successful completion RTEMS_SUCCESSFUL
master: wake task 1: 0a010004: successful completion master: wake task 1: 0a010004: bdt1: rtems_bdbuf_get[0]: blocking ...
bdt1: rtems_bdbuf_get[0]: blocking ... RTEMS_SUCCESSFUL
master: wake task 0: 0a010003: successful completion master: wake task 0: 0a010003: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[0]: unblocks task 1 bdt0: rtems_bdbuf_release_modified[0]: unblocks task 1
bdt1: rtems_bdbuf_get[0]: successful completion bdt1: rtems_bdbuf_get[0]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[0]: successful completion bdt1: rtems_bdbuf_release[0]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[1]: blocking ... 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 bdt0: rtems_bdbuf_release_modified[1]: unblocks task 1
bdt1: rtems_bdbuf_get[1]: successful completion bdt1: rtems_bdbuf_get[1]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[1]: successful completion bdt1: rtems_bdbuf_release[1]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[2]: blocking ... 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 bdt0: rtems_bdbuf_release_modified[2]: unblocks task 1
bdt1: rtems_bdbuf_get[2]: successful completion bdt1: rtems_bdbuf_get[2]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[2]: successful completion bdt1: rtems_bdbuf_release[2]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[3]: blocking ... 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 bdt0: rtems_bdbuf_release_modified[3]: unblocks task 1
bdt1: rtems_bdbuf_get[3]: successful completion bdt1: rtems_bdbuf_get[3]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[3]: successful completion bdt1: rtems_bdbuf_release[3]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[4]: blocking ... 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 bdt0: rtems_bdbuf_release_modified[4]: unblocks task 1
bdt1: rtems_bdbuf_get[4]: successful completion bdt1: rtems_bdbuf_get[4]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[4]: successful completion bdt1: rtems_bdbuf_release[4]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[5]: blocking ... 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 bdt0: rtems_bdbuf_release_modified[5]: unblocks task 1
bdt1: rtems_bdbuf_get[5]: successful completion bdt1: rtems_bdbuf_get[5]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[5]: successful completion bdt1: rtems_bdbuf_release[5]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[6]: blocking ... 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 bdt0: rtems_bdbuf_release_modified[6]: unblocks task 1
bdt1: rtems_bdbuf_get[6]: successful completion bdt1: rtems_bdbuf_get[6]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[6]: successful completion bdt1: rtems_bdbuf_release[6]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[7]: blocking ... 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 bdt0: rtems_bdbuf_release_modified[7]: unblocks task 1
bdt1: rtems_bdbuf_get[7]: successful completion bdt1: rtems_bdbuf_get[7]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[7]: successful completion bdt1: rtems_bdbuf_release[7]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[8]: blocking ... 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 bdt0: rtems_bdbuf_release_modified[8]: unblocks task 1
bdt1: rtems_bdbuf_get[8]: successful completion bdt1: rtems_bdbuf_get[8]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[8]: successful completion bdt1: rtems_bdbuf_release[8]: RTEMS_SUCCESSFUL
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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: unblocks task 1
bdt0: rtems_bdbuf_release_modified[31]: successful completion bdt0: rtems_bdbuf_release_modified[31]: RTEMS_SUCCESSFUL
bdt0: disk ioctl: wake watcher: 0a010003: successful completion bdt0: disk ioctl: wake watcher: 0a010003: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[32]: successful completion bdt0: rtems_bdbuf_release_modified[32]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[33]: successful completion bdt0: rtems_bdbuf_release_modified[33]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[34]: successful completion bdt0: rtems_bdbuf_release_modified[34]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[35]: successful completion bdt0: rtems_bdbuf_release_modified[35]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[36]: successful completion bdt0: rtems_bdbuf_release_modified[36]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[37]: successful completion bdt0: rtems_bdbuf_release_modified[37]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[38]: successful completion bdt0: rtems_bdbuf_release_modified[38]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[39]: successful completion bdt0: rtems_bdbuf_release_modified[39]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[40]: successful completion bdt0: rtems_bdbuf_release_modified[40]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[41]: successful completion bdt0: rtems_bdbuf_release_modified[41]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[42]: successful completion bdt0: rtems_bdbuf_release_modified[42]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[43]: successful completion bdt0: rtems_bdbuf_release_modified[43]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[44]: successful completion bdt0: rtems_bdbuf_release_modified[44]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[45]: successful completion bdt0: rtems_bdbuf_release_modified[45]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[46]: successful completion bdt0: rtems_bdbuf_release_modified[46]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[47]: successful completion bdt0: rtems_bdbuf_release_modified[47]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[48]: successful completion bdt0: rtems_bdbuf_release_modified[48]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[49]: successful completion bdt0: rtems_bdbuf_release_modified[49]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[50]: successful completion bdt0: rtems_bdbuf_release_modified[50]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[51]: successful completion bdt0: rtems_bdbuf_release_modified[51]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[52]: successful completion bdt0: rtems_bdbuf_release_modified[52]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[53]: successful completion bdt0: rtems_bdbuf_release_modified[53]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[54]: successful completion bdt0: rtems_bdbuf_release_modified[54]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[55]: successful completion bdt0: rtems_bdbuf_release_modified[55]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[56]: successful completion bdt0: rtems_bdbuf_release_modified[56]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[57]: successful completion bdt0: rtems_bdbuf_release_modified[57]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[58]: successful completion bdt0: rtems_bdbuf_release_modified[58]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[59]: successful completion bdt0: rtems_bdbuf_release_modified[59]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[60]: successful completion bdt0: rtems_bdbuf_release_modified[60]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[61]: successful completion bdt0: rtems_bdbuf_release_modified[61]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[62]: successful completion bdt0: rtems_bdbuf_release_modified[62]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[63]: successful completion bdt0: rtems_bdbuf_release_modified[63]: RTEMS_SUCCESSFUL
bdt0: disk ioctl: wake watcher: 0a010003: successful completion bdt0: disk ioctl: wake watcher: 0a010003: RTEMS_SUCCESSFUL
test 4: passed test 4: passed
test 5: Task 0 read all buffers, task 1 blocks waiting for new buffer test 5: Task 0 read all buffers, task 1 blocks waiting for new buffer
master: wake task 0: 0a010003: successful completion master: wake task 0: 0a010003: bdt0: rtems_bdbuf_read[0]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[0]: successful completion bdt0: rtems_bdbuf_read[1]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[1]: successful completion bdt0: rtems_bdbuf_read[2]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[2]: successful completion bdt0: rtems_bdbuf_read[3]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[3]: successful completion bdt0: rtems_bdbuf_read[4]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[4]: successful completion bdt0: rtems_bdbuf_read[5]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[5]: successful completion bdt0: rtems_bdbuf_read[6]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[6]: successful completion bdt0: rtems_bdbuf_read[7]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[7]: successful completion bdt0: rtems_bdbuf_read[8]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[8]: successful completion bdt0: rtems_bdbuf_read[9]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[9]: successful completion bdt0: rtems_bdbuf_read[10]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[10]: successful completion bdt0: rtems_bdbuf_read[11]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[11]: successful completion bdt0: rtems_bdbuf_read[12]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[12]: successful completion bdt0: rtems_bdbuf_read[13]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[13]: successful completion bdt0: rtems_bdbuf_read[14]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[14]: successful completion bdt0: rtems_bdbuf_read[15]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[15]: successful completion bdt0: rtems_bdbuf_read[16]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[16]: successful completion bdt0: rtems_bdbuf_read[17]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[17]: successful completion bdt0: rtems_bdbuf_read[18]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[18]: successful completion bdt0: rtems_bdbuf_read[19]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[19]: successful completion bdt0: rtems_bdbuf_read[20]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[20]: successful completion bdt0: rtems_bdbuf_read[21]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[21]: successful completion bdt0: rtems_bdbuf_read[22]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[22]: successful completion bdt0: rtems_bdbuf_read[23]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[23]: successful completion bdt0: rtems_bdbuf_read[24]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[24]: successful completion bdt0: rtems_bdbuf_read[25]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[25]: successful completion bdt0: rtems_bdbuf_read[26]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[26]: successful completion bdt0: rtems_bdbuf_read[27]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[27]: successful completion bdt0: rtems_bdbuf_read[28]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[28]: successful completion bdt0: rtems_bdbuf_read[29]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[29]: successful completion bdt0: rtems_bdbuf_read[30]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[30]: successful completion bdt0: rtems_bdbuf_read[31]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[31]: successful completion bdt0: rtems_bdbuf_read[32]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[32]: successful completion bdt0: rtems_bdbuf_read[33]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[33]: successful completion bdt0: rtems_bdbuf_read[34]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[34]: successful completion bdt0: rtems_bdbuf_read[35]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[35]: successful completion bdt0: rtems_bdbuf_read[36]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[36]: successful completion bdt0: rtems_bdbuf_read[37]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[37]: successful completion bdt0: rtems_bdbuf_read[38]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[38]: successful completion bdt0: rtems_bdbuf_read[39]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[39]: successful completion bdt0: rtems_bdbuf_read[40]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[40]: successful completion bdt0: rtems_bdbuf_read[41]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[41]: successful completion bdt0: rtems_bdbuf_read[42]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[42]: successful completion bdt0: rtems_bdbuf_read[43]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[43]: successful completion bdt0: rtems_bdbuf_read[44]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[44]: successful completion bdt0: rtems_bdbuf_read[45]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[45]: successful completion bdt0: rtems_bdbuf_read[46]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[46]: successful completion bdt0: rtems_bdbuf_read[47]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[47]: successful completion bdt0: rtems_bdbuf_read[48]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[48]: successful completion bdt0: rtems_bdbuf_read[49]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[49]: successful completion bdt0: rtems_bdbuf_read[50]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[50]: successful completion bdt0: rtems_bdbuf_read[51]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[51]: successful completion bdt0: rtems_bdbuf_read[52]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[52]: successful completion bdt0: rtems_bdbuf_read[53]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[53]: successful completion bdt0: rtems_bdbuf_read[54]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[54]: successful completion bdt0: rtems_bdbuf_read[55]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[55]: successful completion bdt0: rtems_bdbuf_read[56]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[56]: successful completion bdt0: rtems_bdbuf_read[57]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[57]: successful completion bdt0: rtems_bdbuf_read[58]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[58]: successful completion bdt0: rtems_bdbuf_read[59]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[59]: successful completion bdt0: rtems_bdbuf_read[60]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[60]: successful completion bdt0: rtems_bdbuf_read[61]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[61]: successful completion bdt0: rtems_bdbuf_read[62]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[62]: successful completion bdt0: rtems_bdbuf_read[63]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[63]: successful completion bdt0: wake master: 0a010001: RTEMS_SUCCESSFUL
bdt0: wake master: 0a010001: successful completion RTEMS_SUCCESSFUL
master: wake task 1: 0a010004: successful completion master: wake task 1: 0a010004: bdt1: rtems_bdbuf_get[20]: blocking ...
bdt1: rtems_bdbuf_get[20]: blocking ... RTEMS_SUCCESSFUL
master: wake task 0: 0a010003: successful completion master: wake task 0: 0a010003: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[0]: unblocks task 1 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: 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]: unblocks task 1
bdt1: rtems_bdbuf_get[20]: successful completion bdt1: rtems_bdbuf_get[20]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[20]: successful completion bdt1: rtems_bdbuf_release[20]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[21]: blocking ... 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 bdt0: rtems_bdbuf_release_modified[21]: unblocks task 1
bdt1: rtems_bdbuf_get[21]: successful completion bdt1: rtems_bdbuf_get[21]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[21]: successful completion bdt1: rtems_bdbuf_release[21]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[22]: blocking ... 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 bdt0: rtems_bdbuf_release_modified[22]: unblocks task 1
bdt1: rtems_bdbuf_get[22]: successful completion bdt1: rtems_bdbuf_get[22]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[22]: successful completion bdt1: rtems_bdbuf_release[22]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[23]: blocking ... 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 bdt0: rtems_bdbuf_release_modified[23]: unblocks task 1
bdt1: rtems_bdbuf_get[23]: successful completion bdt1: rtems_bdbuf_get[23]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[23]: successful completion bdt1: rtems_bdbuf_release[23]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_get[24]: blocking ... 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 bdt0: rtems_bdbuf_release_modified[24]: unblocks task 1
bdt1: rtems_bdbuf_get[24]: successful completion bdt1: rtems_bdbuf_get[24]: RTEMS_SUCCESSFUL
bdt1: rtems_bdbuf_release[24]: successful completion bdt1: rtems_bdbuf_release[24]: RTEMS_SUCCESSFUL
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]: 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]: 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]: 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]: 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]: 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]: 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]: unblocks task 1
bdt0: rtems_bdbuf_release_modified[31]: successful completion bdt0: rtems_bdbuf_release_modified[31]: RTEMS_SUCCESSFUL
bdt0: disk ioctl: wake watcher: 0a010003: successful completion bdt0: disk ioctl: wake watcher: 0a010003: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[32]: successful completion bdt0: rtems_bdbuf_release_modified[32]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[33]: successful completion bdt0: rtems_bdbuf_release_modified[33]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[34]: successful completion bdt0: rtems_bdbuf_release_modified[34]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[35]: successful completion bdt0: rtems_bdbuf_release_modified[35]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[36]: successful completion bdt0: rtems_bdbuf_release_modified[36]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[37]: successful completion bdt0: rtems_bdbuf_release_modified[37]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[38]: successful completion bdt0: rtems_bdbuf_release_modified[38]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[39]: successful completion bdt0: rtems_bdbuf_release_modified[39]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[40]: successful completion bdt0: rtems_bdbuf_release_modified[40]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[41]: successful completion bdt0: rtems_bdbuf_release_modified[41]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[42]: successful completion bdt0: rtems_bdbuf_release_modified[42]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[43]: successful completion bdt0: rtems_bdbuf_release_modified[43]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[44]: successful completion bdt0: rtems_bdbuf_release_modified[44]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[45]: successful completion bdt0: rtems_bdbuf_release_modified[45]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[46]: successful completion bdt0: rtems_bdbuf_release_modified[46]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[47]: successful completion bdt0: rtems_bdbuf_release_modified[47]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[48]: successful completion bdt0: rtems_bdbuf_release_modified[48]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[49]: successful completion bdt0: rtems_bdbuf_release_modified[49]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[50]: successful completion bdt0: rtems_bdbuf_release_modified[50]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[51]: successful completion bdt0: rtems_bdbuf_release_modified[51]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[52]: successful completion bdt0: rtems_bdbuf_release_modified[52]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[53]: successful completion bdt0: rtems_bdbuf_release_modified[53]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[54]: successful completion bdt0: rtems_bdbuf_release_modified[54]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[55]: successful completion bdt0: rtems_bdbuf_release_modified[55]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[56]: successful completion bdt0: rtems_bdbuf_release_modified[56]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[57]: successful completion bdt0: rtems_bdbuf_release_modified[57]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[58]: successful completion bdt0: rtems_bdbuf_release_modified[58]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[59]: successful completion bdt0: rtems_bdbuf_release_modified[59]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[60]: successful completion bdt0: rtems_bdbuf_release_modified[60]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[61]: successful completion bdt0: rtems_bdbuf_release_modified[61]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[62]: successful completion bdt0: rtems_bdbuf_release_modified[62]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[63]: successful completion bdt0: rtems_bdbuf_release_modified[63]: RTEMS_SUCCESSFUL
bdt0: disk ioctl: wake watcher: 0a010003: successful completion bdt0: disk ioctl: wake watcher: 0a010003: RTEMS_SUCCESSFUL
test 5: passed test 5: passed
test 6: Task 0 release modified 4 buffers then syncs a 5th buffer test 6: Task 0 release modified 4 buffers then syncs a 5th buffer
master: wake task 0: 0a010003: successful completion master: wake task 0: 0a010003: bdt0: rtems_bdbuf_read[0]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[0]: successful completion bdt0: rtems_bdbuf_read[1]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[1]: successful completion bdt0: rtems_bdbuf_read[2]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[2]: successful completion bdt0: rtems_bdbuf_read[3]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[3]: successful completion bdt0: rtems_bdbuf_read[4]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[4]: successful completion bdt0: rtems_bdbuf_release_modified[0]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[0]: successful completion bdt0: rtems_bdbuf_release_modified[1]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[1]: successful completion bdt0: rtems_bdbuf_release_modified[2]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[2]: successful completion bdt0: rtems_bdbuf_release_modified[3]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[3]: successful completion bdt0: rtems_bdbuf_sync[4]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_sync[4]: successful completion RTEMS_SUCCESSFUL
test 6: passed test 6: passed
test 7: Task 0 release modified 5 buffers then sync the device test 7: Task 0 release modified 5 buffers then sync the device
master: wake task 0: 0a010003: successful completion master: wake task 0: 0a010003: bdt0: rtems_bdbuf_read[0]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[0]: successful completion bdt0: rtems_bdbuf_read[1]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[1]: successful completion bdt0: rtems_bdbuf_read[2]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[2]: successful completion bdt0: rtems_bdbuf_read[3]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[3]: successful completion bdt0: rtems_bdbuf_read[4]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[4]: successful completion bdt0: rtems_bdbuf_release_modified[0]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[0]: successful completion bdt0: rtems_bdbuf_release_modified[1]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[1]: successful completion bdt0: rtems_bdbuf_release_modified[2]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[2]: successful completion bdt0: rtems_bdbuf_release_modified[3]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[3]: successful completion bdt0: rtems_bdbuf_release_modified[4]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[4]: successful completion bdt0: rtems_bdbuf_syncdev[0: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_syncdev[5:2]: successful completion RTEMS_SUCCESSFUL
test 7: passed 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 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 master: wake task 0: 0a010003: bdt0: rtems_bdbuf_read[0]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[0]: successful completion bdt0: rtems_bdbuf_read[1]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[1]: successful completion bdt0: rtems_bdbuf_read[2]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[2]: successful completion bdt0: rtems_bdbuf_read[3]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[3]: successful completion bdt0: rtems_bdbuf_read[4]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_read[4]: successful completion bdt0: rtems_bdbuf_release_modified[4]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[4]: successful completion bdt0: rtems_bdbuf_release_modified[3]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[3]: successful completion bdt0: rtems_bdbuf_release_modified[0]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[0]: successful completion bdt0: rtems_bdbuf_release_modified[1]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[1]: successful completion bdt0: rtems_bdbuf_release_modified[2]: RTEMS_SUCCESSFUL
bdt0: rtems_bdbuf_release_modified[2]: successful completion bdt0: rtems_bdbuf_syncdev[0]: checking order
bdt0: rtems_bdbuf_syncdev[3:2]: checking order
disk ioctl: multi-block order check: count = 5 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 test 8: passed
*** END OF TEST BLOCK 6 *** *** END OF TEST BLOCK 6 ***

View File

@@ -17,6 +17,7 @@
#endif #endif
#include <errno.h> #include <errno.h>
#include <fcntl.h>
#include <setjmp.h> #include <setjmp.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
@@ -24,6 +25,7 @@
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <inttypes.h> #include <inttypes.h>
#include <unistd.h>
#include <rtems.h> #include <rtems.h>
#include <rtems/chain.h> #include <rtems/chain.h>
@@ -58,11 +60,6 @@ const rtems_bdbuf_config rtems_bdbuf_configuration =
}; };
#endif #endif
/**
* Let the IO system allocation the next available major number.
*/
#define RTEMS_DRIVER_AUTO_MAJOR (0)
/** /**
* The bdbuf disk driver base name. * The bdbuf disk driver base name.
*/ */
@@ -84,17 +81,19 @@ typedef enum bdbuf_disk_action
*/ */
typedef struct bdbuf_disk typedef struct bdbuf_disk
{ {
const char* name; const char* name;
rtems_id lock; uint32_t minor;
uint32_t block_size; rtems_id lock;
uint32_t block_count; uint32_t block_size;
bdbuf_disk_action driver_action; uint32_t block_count;
const char* watcher_name; bdbuf_disk_action driver_action;
rtems_id watcher; const char* watcher_name;
int watch_count; rtems_id watcher;
const char* waiting_name; int watch_count;
rtems_id waiting; const char* waiting_name;
uint32_t driver_sleep; rtems_id waiting;
uint32_t driver_sleep;
rtems_disk_device* dd;
} bdbuf_disk; } bdbuf_disk;
/* /*
@@ -112,10 +111,8 @@ typedef struct bdbuf_task_control
rtems_id task; rtems_id task;
rtems_id master; rtems_id master;
int test; int test;
rtems_device_major_number major; bdbuf_disk *bdd;
rtems_device_minor_number minor;
bool passed; bool passed;
rtems_disk_device *dd;
} bdbuf_task_control; } bdbuf_task_control;
#define BDBUF_TEST_TASKS (3) #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. * Set up a disk watch and wait for the write to happen.
*/ */
bdbuf_disk_lock (&bdbuf_disks[tc->minor]); bdbuf_disk_lock (tc->bdd);
bdbuf_disks[tc->minor].watcher_name = tc->name; tc->bdd->watcher_name = tc->name;
bdbuf_disks[tc->minor].watcher = tc->task; tc->bdd->watcher = tc->task;
bdbuf_disks[tc->minor].watch_count = count; tc->bdd->watch_count = count;
bdbuf_disk_unlock (&bdbuf_disks[tc->minor]); 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. * Set up a disk watch and wait for the write to happen.
*/ */
bdbuf_disk_lock (&bdbuf_disks[tc->minor]); bdbuf_disk_lock (tc->bdd);
bdbuf_disks[tc->minor].watcher_name = 0; tc->bdd->watcher_name = 0;
bdbuf_disks[tc->minor].watcher = 0; tc->bdd->watcher = 0;
bdbuf_disks[tc->minor].watch_count = 0; tc->bdd->watch_count = 0;
bdbuf_disk_unlock (&bdbuf_disks[tc->minor]); 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. * Set up a disk action.
*/ */
bdbuf_disk_lock (&bdbuf_disks[tc->minor]); bdbuf_disk_lock (tc->bdd);
bdbuf_disks[tc->minor].driver_action = action; tc->bdd->driver_action = action;
bdbuf_disk_unlock (&bdbuf_disks[tc->minor]); bdbuf_disk_unlock (tc->bdd);
} }
/** /**
@@ -332,9 +329,7 @@ bdbuf_sleep (unsigned long msecs)
static void static void
bdbuf_task_control_init (int task, bdbuf_task_control_init (int task,
bdbuf_task_control* tc, bdbuf_task_control* tc,
rtems_id master, rtems_id master)
rtems_device_major_number major,
rtems_disk_device *dd)
{ {
char name[6]; char name[6];
sprintf (name, "bdt%d", task); sprintf (name, "bdt%d", task);
@@ -344,10 +339,8 @@ bdbuf_task_control_init (int task,
tc->task = 0; tc->task = 0;
tc->master = master; tc->master = master;
tc->test = 0; tc->test = 0;
tc->major = major; tc->bdd = NULL;
tc->minor = 0;
tc->passed = false; tc->passed = false;
tc->dd = dd;
} }
static bool static bool
@@ -521,7 +514,7 @@ bdbuf_disk_ioctl (rtems_disk_device *dd, uint32_t req, void* argp)
break; break;
default: default:
errno = EINVAL; rtems_blkdev_ioctl (dd, req, argp);
break; break;
} }
@@ -532,35 +525,26 @@ bdbuf_disk_ioctl (rtems_disk_device *dd, uint32_t req, void* argp)
return errno == 0 ? 0 : -1; return errno == 0 ? 0 : -1;
} }
/** static rtems_status_code
* BDBuf disk device driver initialization. bdbuf_disk_initialize(void)
*
* @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)
{ {
rtems_status_code sc; uint32_t minor;
printf ("disk io init: "); printf ("register disks\n");
sc = rtems_disk_io_initialize ();
if (!bdbuf_test_print_sc (sc, true))
return sc;
for (minor = 0; minor < BDBUF_DISKS; minor++) for (minor = 0; minor < BDBUF_DISKS; minor++)
{ {
char name[sizeof (BDBUF_DISK_DEVICE_BASE_NAME) + 10]; char name[sizeof (BDBUF_DISK_DEVICE_BASE_NAME) + 10];
bdbuf_disk* bdd = &bdbuf_disks[minor]; bdbuf_disk* bdd = &bdbuf_disks[minor];
rtems_status_code sc; rtems_status_code sc;
int fd;
int rv;
snprintf (name, sizeof (name), snprintf (name, sizeof (name),
BDBUF_DISK_DEVICE_BASE_NAME "%" PRIu32, minor); BDBUF_DISK_DEVICE_BASE_NAME "%" PRIu32, minor);
bdd->name = strdup (name); bdd->name = strdup (name);
bdd->minor = minor;
printf ("disk init: %s\n", bdd->name); printf ("disk init: %s\n", bdd->name);
printf ("disk lock: "); printf ("disk lock: ");
@@ -574,9 +558,8 @@ bdbuf_disk_initialize (rtems_device_major_number major,
bdd->block_size = 512 * (minor + 1); bdd->block_size = 512 * (minor + 1);
bdd->block_count = BDBUF_SIZE * (minor + 1); bdd->block_count = BDBUF_SIZE * (minor + 1);
sc = rtems_disk_create_phys(rtems_filesystem_make_dev_t (major, minor), sc = rtems_blkdev_create(name, bdd->block_size, bdd->block_count,
bdd->block_size, bdd->block_count, bdbuf_disk_ioctl, bdd);
bdbuf_disk_ioctl, bdd, name);
if (sc != RTEMS_SUCCESSFUL) if (sc != RTEMS_SUCCESSFUL)
{ {
printf ("disk init: create phys failed: "); printf ("disk init: create phys failed: ");
@@ -584,51 +567,19 @@ bdbuf_disk_initialize (rtems_device_major_number major,
return sc; return sc;
} }
fd = open(name, O_RDWR);
rtems_test_assert(fd >= 0);
rv = rtems_disk_fd_get_disk_device(fd, &bdd->dd);
rtems_test_assert(rv == 0);
rv = close(fd);
rtems_test_assert(rv == 0);
} }
return RTEMS_SUCCESSFUL; return RTEMS_SUCCESSFUL;
} }
/**
* 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.
*/
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;
}
return ok;
}
static bool static bool
bdbuf_tests_create_task (bdbuf_task_control* tc, bdbuf_tests_create_task (bdbuf_task_control* tc,
rtems_task_priority priority, rtems_task_priority priority,
@@ -678,7 +629,7 @@ bdbuf_tests_task_0_test_1 (bdbuf_task_control* tc)
for (i = 0; (i < 2) && passed; i++) for (i = 0; (i < 2) && passed; i++)
{ {
printf ("%s: rtems_bdbuf_get[0]: ", tc->name); 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)) if (!bdbuf_test_print_sc (sc, true))
{ {
passed = false; passed = false;
@@ -726,7 +677,7 @@ bdbuf_tests_task_0_test_2 (bdbuf_task_control* tc)
for (i = 0; (i < 5) && passed; i++) for (i = 0; (i < 5) && passed; i++)
{ {
printf ("%s: rtems_bdbuf_get[%d]: ", tc->name, 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)) if (!bdbuf_test_print_sc (sc, true))
passed = false; passed = false;
@@ -791,15 +742,15 @@ bdbuf_tests_task_0_test_3 (bdbuf_task_control* tc)
tc->passed = false; tc->passed = false;
passed = true; passed = true;
bdbuf_disk_lock (&bdbuf_disks[tc->minor]); bdbuf_disk_lock (tc->bdd);
bdbuf_disks[tc->minor].driver_action = BDBUF_DISK_NOOP; tc->bdd->driver_action = BDBUF_DISK_NOOP;
bdbuf_disk_unlock (&bdbuf_disks[tc->minor]); bdbuf_disk_unlock (tc->bdd);
/* /*
* Read the buffer and then release it. * Read the buffer and then release it.
*/ */
printf ("%s: rtems_bdbuf_read[5]: ", tc->name); 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))) if ((passed = bdbuf_test_print_sc (sc, true)))
{ {
printf ("%s: rtems_bdbuf_release_modified[5]: ", tc->name); 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. * be maintained as modified.
*/ */
printf ("%s: rtems_bdbuf_read[5]: ", tc->name); 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))) if ((passed = bdbuf_test_print_sc (sc, true)))
{ {
printf ("%s: rtems_bdbuf_release[5]: ", tc->name); 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++) for (i = 0; (i < num) && passed; i++)
{ {
printf ("%s: rtems_bdbuf_read[%zd]: ", tc->name, 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)) if (!bdbuf_test_print_sc (sc, true))
passed = false; passed = false;
@@ -987,7 +938,7 @@ bdbuf_tests_task_0_test_6 (bdbuf_task_control* tc)
for (i = 0; (i < 5) && passed; i++) for (i = 0; (i < 5) && passed; i++)
{ {
printf ("%s: rtems_bdbuf_read[%d]: ", tc->name, 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)) if (!bdbuf_test_print_sc (sc, true))
passed = false; passed = false;
@@ -1044,7 +995,7 @@ bdbuf_tests_task_0_test_7 (bdbuf_task_control* tc)
for (i = 0; (i < 5) && passed; i++) for (i = 0; (i < 5) && passed; i++)
{ {
printf ("%s: rtems_bdbuf_read[%d]: ", tc->name, 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)) if (!bdbuf_test_print_sc (sc, true))
passed = false; passed = false;
@@ -1062,11 +1013,10 @@ bdbuf_tests_task_0_test_7 (bdbuf_task_control* tc)
if (passed) if (passed)
{ {
printf ("%s: rtems_bdbuf_syncdev[%" PRIuLEAST32 ":%" PRIuLEAST32 "]: ", printf ("%s: rtems_bdbuf_syncdev[%" PRIu32 ": ",
tc->name, tc->name,
tc->major, tc->bdd->minor);
tc->minor); passed = bdbuf_test_print_sc (rtems_bdbuf_syncdev (tc->bdd->dd), true);
passed = bdbuf_test_print_sc (rtems_bdbuf_syncdev (tc->dd), true);
} }
tc->passed = passed; tc->passed = passed;
@@ -1104,7 +1054,7 @@ bdbuf_tests_task_0_test_8 (bdbuf_task_control* tc)
for (i = 0; (i < 5) && passed; i++) for (i = 0; (i < 5) && passed; i++)
{ {
printf ("%s: rtems_bdbuf_read[%d]: ", tc->name, 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)) if (!bdbuf_test_print_sc (sc, true))
passed = false; 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); 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->name,
tc->major, tc->bdd->minor);
tc->minor); sc = rtems_bdbuf_syncdev (tc->bdd->dd);
sc = rtems_bdbuf_syncdev (tc->dd); printf ("%s: rtems_bdbuf_syncdev[%" PRIu32 "]: ",
printf ("%s: rtems_bdbuf_syncdev[%" PRIuLEAST32 ":%" PRIuLEAST32 "]: ",
tc->name, tc->name,
tc->major, tc->bdd->minor);
tc->minor);
passed = bdbuf_test_print_sc (sc, true); 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++) for (i = lower; (i < upper) && passed; i++)
{ {
printf ("%s: rtems_bdbuf_get[%d]: blocking ...\n", tc->name, 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); printf ("%s: rtems_bdbuf_get[%d]: ", tc->name, i);
if (!bdbuf_test_print_sc (sc, true)) if (!bdbuf_test_print_sc (sc, true))
{ {
@@ -1436,7 +1384,7 @@ bdbuf_test_1 (bdbuf_task_control* tasks)
/* /*
* Use pool 0. * Use pool 0.
*/ */
tasks[0].minor = 0; tasks[0].bdd = &bdbuf_disks[0];
bdbuf_send_wait_event ("master", "wake task 0", tasks[0].task); 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. * Use pool 0.
*/ */
tasks[0].minor = 0; tasks[0].bdd = &bdbuf_disks[0];
tasks[1].minor = 0; tasks[1].bdd = &bdbuf_disks[0];
tasks[2].minor = 0; tasks[2].bdd = &bdbuf_disks[0];
/* /*
* Wake task 0 and wait for it to have all the buffers. * 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. * Use pool 0.
*/ */
tasks[0].minor = 0; tasks[0].bdd = &bdbuf_disks[0];
/* /*
* Wake task 0. * Wake task 0.
@@ -1542,8 +1490,8 @@ bdbuf_test_4 (bdbuf_task_control* tasks)
/* /*
* Use pool 0. * Use pool 0.
*/ */
tasks[0].minor = 0; tasks[0].bdd = &bdbuf_disks[0];
tasks[1].minor = 0; tasks[1].bdd = &bdbuf_disks[0];
/* /*
* Wake task 0. * Wake task 0.
@@ -1588,8 +1536,8 @@ bdbuf_test_5 (bdbuf_task_control* tasks)
/* /*
* Use pool 0. * Use pool 0.
*/ */
tasks[0].minor = 0; tasks[0].bdd = &bdbuf_disks[0];
tasks[1].minor = 0; tasks[1].bdd = &bdbuf_disks[0];
/* /*
* Wake task 0. * Wake task 0.
@@ -1632,7 +1580,7 @@ bdbuf_test_6 (bdbuf_task_control* tasks)
/* /*
* Use pool 0. * Use pool 0.
*/ */
tasks[0].minor = 0; tasks[0].bdd = &bdbuf_disks[0];
/* /*
* Wake task 0. * Wake task 0.
@@ -1655,7 +1603,7 @@ bdbuf_test_7 (bdbuf_task_control* tasks)
/* /*
* Use pool 0. * Use pool 0.
*/ */
tasks[0].minor = 0; tasks[0].bdd = &bdbuf_disks[0];
/* /*
* Wake task 0. * Wake task 0.
@@ -1678,7 +1626,7 @@ bdbuf_test_8 (bdbuf_task_control* tasks)
/* /*
* Use pool 0. * Use pool 0.
*/ */
tasks[0].minor = 0; tasks[0].bdd = &bdbuf_disks[0];
/* /*
* Wake task 0. * Wake task 0.
@@ -1750,12 +1698,14 @@ static bdbuf_test_ident bdbuf_tests[] =
static void static void
bdbuf_tester (void) bdbuf_tester (void)
{ {
rtems_device_major_number major;
bdbuf_task_control tasks[BDBUF_TEST_TASKS]; bdbuf_task_control tasks[BDBUF_TEST_TASKS];
rtems_task_priority old_priority; rtems_task_priority old_priority;
int t; int t;
bool passed = true; 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. * Change priority to a lower one.
@@ -1766,15 +1716,6 @@ bdbuf_tester (void)
&old_priority), &old_priority),
true); 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 * Make sure the swapout task has run. The user could block
* the swapout task from running until later. This is not * 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++) for (t = 0; t < BDBUF_TEST_TASKS; t++)
{ {
bdbuf_task_control_init (t, &tasks[t], bdbuf_task_control_init (t, &tasks[t],
rtems_task_self (), rtems_task_self ());
major,
dd);
if (!bdbuf_tests_create_task (&tasks[t], if (!bdbuf_tests_create_task (&tasks[t],
BDBUF_TESTS_PRI_HIGH - 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_SIMPLE_CONSOLE_DRIVER
#define CONFIGURE_APPLICATION_NEEDS_LIBBLOCK #define CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 4
#define CONFIGURE_BDBUF_TASK_STACK_SIZE BDBUF_TEST_STACK_SIZE #define CONFIGURE_BDBUF_TASK_STACK_SIZE BDBUF_TEST_STACK_SIZE
#define CONFIGURE_MAXIMUM_TASKS (1 + BDBUF_TEST_TASKS) #define CONFIGURE_MAXIMUM_TASKS (1 + BDBUF_TEST_TASKS)
#define CONFIGURE_MAXIMUM_DRIVERS 3
#define CONFIGURE_MAXIMUM_SEMAPHORES 2 #define CONFIGURE_MAXIMUM_SEMAPHORES 2
#define CONFIGURE_EXTRA_TASK_STACKS \ #define CONFIGURE_EXTRA_TASK_STACKS \