| # |
| # rt-mutex test |
| # |
| # Op: C(ommand)/T(est)/W(ait) |
| # | opcode |
| # | | threadid: 0-7 |
| # | | | opcode argument |
| # | | | | |
| # C: lock: 0: 0 |
| # |
| # Commands |
| # |
| # opcode opcode argument |
| # schedother nice value |
| # schedfifo priority |
| # lock lock nr (0-7) |
| # locknowait lock nr (0-7) |
| # lockint lock nr (0-7) |
| # lockintnowait lock nr (0-7) |
| # lockcont lock nr (0-7) |
| # unlock lock nr (0-7) |
| # signal thread to signal (0-7) |
| # reset 0 |
| # resetevent 0 |
| # |
| # Tests / Wait |
| # |
| # opcode opcode argument |
| # |
| # prioeq priority |
| # priolt priority |
| # priogt priority |
| # nprioeq normal priority |
| # npriolt normal priority |
| # npriogt normal priority |
| # locked lock nr (0-7) |
| # blocked lock nr (0-7) |
| # blockedwake lock nr (0-7) |
| # unlocked lock nr (0-7) |
| # opcodeeq command opcode or number |
| # opcodelt number |
| # opcodegt number |
| # eventeq number |
| # eventgt number |
| # eventlt number |
| |
| # Reset event counter |
| C: resetevent: 0: 0 |
| W: opcodeeq: 0: 0 |
| |
| # Set priorities |
| C: schedother: 0: 0 |
| C: schedfifo: 1: 80 |
| C: schedfifo: 2: 81 |
| |
| # T0 lock L0 |
| C: lock: 0: 0 |
| W: locked: 0: 0 |
| |
| # T1 lock L0, no wait in the wakeup path |
| C: locknowait: 1: 0 |
| W: blocked: 1: 0 |
| T: prioeq: 0: 80 |
| T: prioeq: 1: 80 |
| |
| # T2 lock L0 interruptible, no wait in the wakeup path |
| C: lockintnowait: 2: 0 |
| W: blocked: 2: 0 |
| T: prioeq: 0: 81 |
| T: prioeq: 1: 80 |
| |
| # Interrupt T2 |
| C: signal: 2: 2 |
| W: unlocked: 2: 0 |
| T: prioeq: 1: 80 |
| T: prioeq: 0: 80 |
| |
| T: locked: 0: 0 |
| T: blocked: 1: 0 |
| |
| # T0 unlock L0 |
| C: unlock: 0: 0 |
| |
| # Wait until T1 has locked L0 and exit |
| W: locked: 1: 0 |
| W: unlocked: 0: 0 |
| T: priolt: 0: 1 |
| |
| C: unlock: 1: 0 |
| W: unlocked: 1: 0 |
| |
| |
| |