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#
48# 5 threads 4 lock PI - modify priority of blocked threads
49#
50C: resetevent:		0: 	0
51W: opcodeeq:		0: 	0
52
53# Set schedulers
54C: schedother:		0: 	0
55C: schedfifo:		1: 	81
56C: schedfifo:		2: 	82
57C: schedfifo:		3: 	83
58C: schedfifo:		4: 	84
59
60# T0 lock L0
61C: locknowait:		0: 	0
62W: locked:		0: 	0
63
64# T1 lock L1
65C: locknowait:		1: 	1
66W: locked:		1: 	1
67
68# T1 lock L0
69C: lockintnowait:	1: 	0
70W: blocked:		1: 	0
71T: prioeq:		0: 	81
72
73# T2 lock L2
74C: locknowait:		2: 	2
75W: locked:		2: 	2
76
77# T2 lock L1
78C: lockintnowait:	2: 	1
79W: blocked:		2: 	1
80T: prioeq:		0: 	82
81T: prioeq:		1:	82
82
83# T3 lock L3
84C: locknowait:		3: 	3
85W: locked:		3: 	3
86
87# T3 lock L2
88C: lockintnowait:	3: 	2
89W: blocked:		3: 	2
90T: prioeq:		0: 	83
91T: prioeq:		1:	83
92T: prioeq:		2:	83
93
94# T4 lock L3
95C: lockintnowait:	4:	3
96W: blocked:		4: 	3
97T: prioeq:		0: 	84
98T: prioeq:		1:	84
99T: prioeq:		2:	84
100T: prioeq:		3:	84
101
102# Reduce prio of T4
103C: schedfifo:		4: 	80
104T: prioeq:		0: 	83
105T: prioeq:		1:	83
106T: prioeq:		2:	83
107T: prioeq:		3:	83
108T: prioeq:		4:	80
109
110# Increase prio of T4
111C: schedfifo:		4: 	84
112T: prioeq:		0: 	84
113T: prioeq:		1:	84
114T: prioeq:		2:	84
115T: prioeq:		3:	84
116T: prioeq:		4:	84
117
118# Reduce prio of T3
119C: schedfifo:		3: 	80
120T: prioeq:		0: 	84
121T: prioeq:		1:	84
122T: prioeq:		2:	84
123T: prioeq:		3:	84
124T: prioeq:		4:	84
125
126# Increase prio of T3
127C: schedfifo:		3: 	85
128T: prioeq:		0: 	85
129T: prioeq:		1:	85
130T: prioeq:		2:	85
131T: prioeq:		3:	85
132T: prioeq:		4:	84
133
134# Reduce prio of T3
135C: schedfifo:		3: 	83
136T: prioeq:		0: 	84
137T: prioeq:		1:	84
138T: prioeq:		2:	84
139T: prioeq:		3:	84
140T: prioeq:		4:	84
141
142# Signal T4
143C: signal:		4: 	0
144W: unlocked:		4: 	3
145T: prioeq:		0: 	83
146T: prioeq:		1:	83
147T: prioeq:		2:	83
148T: prioeq:		3:	83
149
150# Signal T3
151C: signal:		3: 	0
152W: unlocked:		3: 	2
153T: prioeq:		0: 	82
154T: prioeq:		1:	82
155T: prioeq:		2:	82
156
157# Signal T2
158C: signal:		2: 	0
159W: unlocked:		2: 	1
160T: prioeq:		0: 	81
161T: prioeq:		1:	81
162
163# Signal T1
164C: signal:		1: 	0
165W: unlocked:		1: 	0
166T: priolt:		0: 	1
167
168# Unlock and exit
169C: unlock:		3:	3
170C: unlock:		2:	2
171C: unlock:		1:	1
172C: unlock:		0:	0
173
174W: unlocked:		3:	3
175W: unlocked:		2:	2
176W: unlocked:		1:	1
177W: unlocked:		0:	0
178
179