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# lockbkl	lock nr (0-7)
23# unlockbkl	lock nr (0-7)
24# signal	thread to signal (0-7)
25# reset		0
26# resetevent	0
27#
28# Tests / Wait
29#
30# opcode	opcode argument
31#
32# prioeq	priority
33# priolt	priority
34# priogt	priority
35# nprioeq	normal priority
36# npriolt	normal priority
37# npriogt	normal priority
38# locked	lock nr (0-7)
39# blocked	lock nr (0-7)
40# blockedwake	lock nr (0-7)
41# unlocked	lock nr (0-7)
42# lockedbkl	dont care
43# blockedbkl	dont care
44# unlockedbkl	dont care
45# opcodeeq	command opcode or number
46# opcodelt	number
47# opcodegt	number
48# eventeq	number
49# eventgt	number
50# eventlt	number
51
52#
53# 5 threads 4 lock PI - modify priority of blocked threads
54#
55C: resetevent:		0: 	0
56W: opcodeeq:		0: 	0
57
58# Set schedulers
59C: schedother:		0: 	0
60C: schedfifo:		1: 	81
61C: schedfifo:		2: 	82
62C: schedfifo:		3: 	83
63C: schedfifo:		4: 	84
64
65# T0 lock L0
66C: locknowait:		0: 	0
67W: locked:		0: 	0
68
69# T1 lock L1
70C: locknowait:		1: 	1
71W: locked:		1: 	1
72
73# T1 lock L0
74C: lockintnowait:	1: 	0
75W: blocked:		1: 	0
76T: prioeq:		0: 	81
77
78# T2 lock L2
79C: locknowait:		2: 	2
80W: locked:		2: 	2
81
82# T2 lock L1
83C: lockintnowait:	2: 	1
84W: blocked:		2: 	1
85T: prioeq:		0: 	82
86T: prioeq:		1:	82
87
88# T3 lock L3
89C: locknowait:		3: 	3
90W: locked:		3: 	3
91
92# T3 lock L2
93C: lockintnowait:	3: 	2
94W: blocked:		3: 	2
95T: prioeq:		0: 	83
96T: prioeq:		1:	83
97T: prioeq:		2:	83
98
99# T4 lock L3
100C: lockintnowait:	4:	3
101W: blocked:		4: 	3
102T: prioeq:		0: 	84
103T: prioeq:		1:	84
104T: prioeq:		2:	84
105T: prioeq:		3:	84
106
107# Reduce prio of T4
108C: schedfifo:		4: 	80
109T: prioeq:		0: 	83
110T: prioeq:		1:	83
111T: prioeq:		2:	83
112T: prioeq:		3:	83
113T: prioeq:		4:	80
114
115# Increase prio of T4
116C: schedfifo:		4: 	84
117T: prioeq:		0: 	84
118T: prioeq:		1:	84
119T: prioeq:		2:	84
120T: prioeq:		3:	84
121T: prioeq:		4:	84
122
123# Reduce prio of T3
124C: schedfifo:		3: 	80
125T: prioeq:		0: 	84
126T: prioeq:		1:	84
127T: prioeq:		2:	84
128T: prioeq:		3:	84
129T: prioeq:		4:	84
130
131# Increase prio of T3
132C: schedfifo:		3: 	85
133T: prioeq:		0: 	85
134T: prioeq:		1:	85
135T: prioeq:		2:	85
136T: prioeq:		3:	85
137T: prioeq:		4:	84
138
139# Reduce prio of T3
140C: schedfifo:		3: 	83
141T: prioeq:		0: 	84
142T: prioeq:		1:	84
143T: prioeq:		2:	84
144T: prioeq:		3:	84
145T: prioeq:		4:	84
146
147# Signal T4
148C: signal:		4: 	0
149W: unlocked:		4: 	3
150T: prioeq:		0: 	83
151T: prioeq:		1:	83
152T: prioeq:		2:	83
153T: prioeq:		3:	83
154
155# Signal T3
156C: signal:		3: 	0
157W: unlocked:		3: 	2
158T: prioeq:		0: 	82
159T: prioeq:		1:	82
160T: prioeq:		2:	82
161
162# Signal T2
163C: signal:		2: 	0
164W: unlocked:		2: 	1
165T: prioeq:		0: 	81
166T: prioeq:		1:	81
167
168# Signal T1
169C: signal:		1: 	0
170W: unlocked:		1: 	0
171T: priolt:		0: 	1
172
173# Unlock and exit
174C: unlock:		3:	3
175C: unlock:		2:	2
176C: unlock:		1:	1
177C: unlock:		0:	0
178
179W: unlocked:		3:	3
180W: unlocked:		2:	2
181W: unlocked:		1:	1
182W: unlocked:		0:	0
183