|  | # | 
|  | # rt-mutex test | 
|  | # | 
|  | # Op: C(ommand)/T(est)/W(ait) | 
|  | # |  opcode | 
|  | # |  |     threadid: 0-7 | 
|  | # |  |     |  opcode argument | 
|  | # |  |     |  | | 
|  | # C: lock: 0: 0 | 
|  | # | 
|  | # Commands | 
|  | # | 
|  | # opcode	opcode argument | 
|  | # schedother	nice value | 
|  | # schedfifo	priority | 
|  | # lock		lock nr (0-7) | 
|  | # locknowait	lock nr (0-7) | 
|  | # lockint	lock nr (0-7) | 
|  | # lockintnowait	lock nr (0-7) | 
|  | # lockcont	lock nr (0-7) | 
|  | # unlock	lock nr (0-7) | 
|  | # signal	thread to signal (0-7) | 
|  | # reset		0 | 
|  | # resetevent	0 | 
|  | # | 
|  | # Tests / Wait | 
|  | # | 
|  | # opcode	opcode argument | 
|  | # | 
|  | # prioeq	priority | 
|  | # priolt	priority | 
|  | # priogt	priority | 
|  | # nprioeq	normal priority | 
|  | # npriolt	normal priority | 
|  | # npriogt	normal priority | 
|  | # locked	lock nr (0-7) | 
|  | # blocked	lock nr (0-7) | 
|  | # blockedwake	lock nr (0-7) | 
|  | # unlocked	lock nr (0-7) | 
|  | # opcodeeq	command opcode or number | 
|  | # opcodelt	number | 
|  | # opcodegt	number | 
|  | # eventeq	number | 
|  | # eventgt	number | 
|  | # eventlt	number | 
|  |  | 
|  | # | 
|  | # 4 threads 2 lock PI | 
|  | # | 
|  | C: resetevent:		0: 	0 | 
|  | W: opcodeeq:		0: 	0 | 
|  |  | 
|  | # Set schedulers | 
|  | C: schedother:		0: 	0 | 
|  | C: schedother:		1: 	0 | 
|  | C: schedfifo:		2: 	82 | 
|  | C: schedfifo:		3: 	83 | 
|  |  | 
|  | # T0 lock L0 | 
|  | C: locknowait:		0: 	0 | 
|  | W: locked:		0: 	0 | 
|  |  | 
|  | # T1 lock L1 | 
|  | C: locknowait:		1: 	1 | 
|  | W: locked:		1: 	1 | 
|  |  | 
|  | # T3 lock L0 | 
|  | C: lockintnowait:	3: 	0 | 
|  | W: blocked:		3: 	0 | 
|  | T: prioeq:		0: 	83 | 
|  |  | 
|  | # T0 lock L1 | 
|  | C: lock:		0: 	1 | 
|  | W: blocked:		0: 	1 | 
|  | T: prioeq:		1: 	83 | 
|  |  | 
|  | # T1 unlock L1 | 
|  | C: unlock:		1:	1 | 
|  |  | 
|  | # Wait until T0 is in the wakeup code | 
|  | W: blockedwake:		0:	1 | 
|  |  | 
|  | # Verify that T1 is unboosted | 
|  | W: unlocked:		1: 	1 | 
|  | T: priolt:		1: 	1 | 
|  |  | 
|  | # T2 lock L1 (T0 is boosted and pending owner !) | 
|  | C: locknowait:		2:	1 | 
|  | W: blocked:		2: 	1 | 
|  | T: prioeq:		0: 	83 | 
|  |  | 
|  | # Interrupt T3 and wait until T3 returned | 
|  | C: signal:		3:	0 | 
|  | W: unlocked:		3:	0 | 
|  |  | 
|  | # Verify prio of T0 (still pending owner, | 
|  | # but T2 is enqueued due to the previous boost by T3 | 
|  | T: prioeq:		0:	82 | 
|  |  | 
|  | # Let T0 continue | 
|  | C: lockcont:		0:	1 | 
|  | W: locked:		0:	1 | 
|  |  | 
|  | # Unlock L1 and let T2 get L1 | 
|  | C: unlock:		0:	1 | 
|  | W: locked:		2:	1 | 
|  |  | 
|  | # Verify that T0 is unboosted | 
|  | W: unlocked:		0:	1 | 
|  | T: priolt:		0:	1 | 
|  |  | 
|  | # Unlock everything and exit | 
|  | C: unlock:		2:	1 | 
|  | W: unlocked:		2:	1 | 
|  |  | 
|  | C: unlock:		0:	0 | 
|  | W: unlocked:		0:	0 | 
|  |  |