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# 4 threads 2 lock PI 49# 50C: resetevent: 0: 0 51W: opcodeeq: 0: 0 52 53# Set schedulers 54C: schedother: 0: 0 55C: schedother: 1: 0 56C: schedfifo: 2: 82 57C: schedfifo: 3: 83 58 59# T0 lock L0 60C: locknowait: 0: 0 61W: locked: 0: 0 62 63# T1 lock L1 64C: locknowait: 1: 1 65W: locked: 1: 1 66 67# T3 lock L0 68C: lockintnowait: 3: 0 69W: blocked: 3: 0 70T: prioeq: 0: 83 71 72# T0 lock L1 73C: lock: 0: 1 74W: blocked: 0: 1 75T: prioeq: 1: 83 76 77# T1 unlock L1 78C: unlock: 1: 1 79 80# Wait until T0 is in the wakeup code 81W: blockedwake: 0: 1 82 83# Verify that T1 is unboosted 84W: unlocked: 1: 1 85T: priolt: 1: 1 86 87# T2 lock L1 (T0 is boosted and pending owner !) 88C: locknowait: 2: 1 89W: blocked: 2: 1 90T: prioeq: 0: 83 91 92# Interrupt T3 and wait until T3 returned 93C: signal: 3: 0 94W: unlocked: 3: 0 95 96# Verify prio of T0 (still pending owner, 97# but T2 is enqueued due to the previous boost by T3 98T: prioeq: 0: 82 99 100# Let T0 continue 101C: lockcont: 0: 1 102W: locked: 0: 1 103 104# Unlock L1 and let T2 get L1 105C: unlock: 0: 1 106W: locked: 2: 1 107 108# Verify that T0 is unboosted 109W: unlocked: 0: 1 110T: priolt: 0: 1 111 112# Unlock everything and exit 113C: unlock: 2: 1 114W: unlocked: 2: 1 115 116C: unlock: 0: 0 117W: unlocked: 0: 0 118 119