diff options
Diffstat (limited to 'setsched')
| -rwxr-xr-x | setsched | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/setsched b/setsched new file mode 100755 index 0000000..411d999 --- /dev/null +++ b/setsched | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | # | ||
| 3 | # setsched: facilitate changing the active scheduler plugin. | ||
| 4 | |||
| 5 | ADIR=/proc/litmus/active_plugin | ||
| 6 | PDIR=/proc/litmus/plugins | ||
| 7 | |||
| 8 | CHOICE=$1 | ||
| 9 | |||
| 10 | if [ ! -e $ADIR ]; then | ||
| 11 | KERN=`uname -s -r` | ||
| 12 | echo "Error: LITMUS^RT not found on $KERN!" | ||
| 13 | exit 1 | ||
| 14 | fi | ||
| 15 | |||
| 16 | ACTIVE=`cat $ADIR` | ||
| 17 | |||
| 18 | if [ -z "$1" ]; then | ||
| 19 | TMP=`mktemp` | ||
| 20 | (awk "{print \$1 \" 'Plugin'\"}" $PDIR | \ | ||
| 21 | xargs dialog --title "Select Plugin" --backtitle "Current: $ACTIVE" \ | ||
| 22 | --cancel-label "Cancel" --ok-label "Select Plugin" \ | ||
| 23 | --menu "Select a new plugin to run: " 23 60 16) 2> $TMP | ||
| 24 | OK=$? | ||
| 25 | clear | ||
| 26 | if [ "$OK" != "0" ]; then | ||
| 27 | exit 0; | ||
| 28 | fi | ||
| 29 | CHOICE=`cat $TMP` | ||
| 30 | rm $TMP | ||
| 31 | fi | ||
| 32 | |||
| 33 | |||
| 34 | echo "$CHOICE" > $ADIR | ||
| 35 | |||
| 36 | ACTIVE=`cat $ADIR` | ||
| 37 | |||
| 38 | if [ "$ACTIVE" != "$CHOICE" ]; then | ||
| 39 | echo "Error: Setting new plugin failed." | ||
| 40 | exit 1 | ||
| 41 | fi | ||
