1#
2# rt-mutex test
3#
4# Op: C(ommand)/T(est)/W(ait)
5# |  opcode
6# |  |     threadid: 0-7
7# |  |     |  opcode argument
8# |  |     |  |
9# C: lock: 0: 0
10#
11# Commands
12#
13# opcode	opcode argument
14# schedother	nice value
15# schedfifo	priority
16# lock		lock nr (0-7)
17# locknowait	lock nr (0-7)
18# lockint	lock nr (0-7)
19# lockintnowait	lock nr (0-7)
20# lockcont	lock nr (0-7)
21# unlock	lock nr (0-7)
22# signal	thread to signal (0-7)
23# reset		0
24# resetevent	0
25#
26# Tests / Wait
27#
28# opcode	opcode argument
29#
30# prioeq	priority
31# priolt	priority
32# priogt	priority
33# nprioeq	normal priority
34# npriolt	normal priority
35# npriogt	normal priority
36# locked	lock nr (0-7)
37# blocked	lock nr (0-7)
38# blockedwake	lock nr (0-7)
39# unlocked	lock nr (0-7)
40# opcodeeq	command opcode or number
41# opcodelt	number
42# opcodegt	number
43# eventeq	number
44# eventgt	number
45# eventlt	number
46
47# Reset event counter
48C: resetevent:		0: 	0
49W: opcodeeq:		0: 	0
50
51# Set priorities
52C: schedother:		0: 	0
53C: schedfifo:		1: 	80
54C: schedfifo:		2: 	81
55
56# T0 lock L0
57C: lock:		0:	0
58W: locked:		0: 	0
59
60# T1 lock L0, no wait in the wakeup path
61C: locknowait:		1: 	0
62W: blocked:		1: 	0
63T: prioeq:		0:	80
64T: prioeq:		1:	80
65
66# T2 lock L0 interruptible, no wait in the wakeup path
67C: lockintnowait:	2:	0
68W: blocked:		2: 	0
69T: prioeq:		0:	81
70T: prioeq:		1:	80
71
72# Interrupt T2
73C: signal:		2:	2
74W: unlocked:		2:	0
75T: prioeq:		1:	80
76T: prioeq:		0:	80
77
78T: locked:		0:	0
79T: blocked:		1:	0
80
81# T0 unlock L0
82C: unlock:		0: 	0
83
84# Wait until T1 has locked L0 and exit
85W: locked:		1:	0
86W: unlocked:		0: 	0
87T: priolt:		0:	1
88
89C: unlock:		1: 	0
90W: unlocked:		1: 	0
91
92
93
94