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