wok-undigest annotate linux/stuff/linux-source/rdev @ rev 1217
copied linux receipt and stuff from wok-next
author | Hans-G?nter Theisgen |
---|---|
date | Fri Nov 15 16:49:43 2019 +0100 (2019-11-15) |
parents | |
children |
rev | line source |
---|---|
Hans-G?nter@1217 | 1 #!/bin/sh |
Hans-G?nter@1217 | 2 |
Hans-G?nter@1217 | 3 dev() |
Hans-G?nter@1217 | 4 { |
Hans-G?nter@1217 | 5 for b in $(find /dev -type b); do |
Hans-G?nter@1217 | 6 [ $(stat -c %02t%02T $b) = $1 ] && echo $b && return |
Hans-G?nter@1217 | 7 done |
Hans-G?nter@1217 | 8 echo 0x$1 |
Hans-G?nter@1217 | 9 } |
Hans-G?nter@1217 | 10 |
Hans-G?nter@1217 | 11 s= |
Hans-G?nter@1217 | 12 case "$0" in |
Hans-G?nter@1217 | 13 *gs) s=-R;; |
Hans-G?nter@1217 | 14 *ze) s=-r;; |
Hans-G?nter@1217 | 15 *de) s=-v |
Hans-G?nter@1217 | 16 esac |
Hans-G?nter@1217 | 17 set -- $s "$@" |
Hans-G?nter@1217 | 18 |
Hans-G?nter@1217 | 19 o=508 |
Hans-G?nter@1217 | 20 i= |
Hans-G?nter@1217 | 21 v= |
Hans-G?nter@1217 | 22 f= |
Hans-G?nter@1217 | 23 while [ -n "$1" ]; do |
Hans-G?nter@1217 | 24 case "$1" in |
Hans-G?nter@1217 | 25 -R) o=498; f="Root flags";; |
Hans-G?nter@1217 | 26 -r) o=504; f="Ramsize";; |
Hans-G?nter@1217 | 27 -v) o=506; f="Video mode";; |
Hans-G?nter@1217 | 28 -o) o=$(($2)); f=" "; shift;; |
Hans-G?nter@1217 | 29 -*) echo "Usage: rdev [-Rrvh] [-o offset] [kernel [data [offset]]]" |
Hans-G?nter@1217 | 30 exit 1;; |
Hans-G?nter@1217 | 31 *) if [ -z "$i" ]; then |
Hans-G?nter@1217 | 32 i="$1" |
Hans-G?nter@1217 | 33 elif [ -z "$v" ]; then |
Hans-G?nter@1217 | 34 [ -b "$1" ] && v=0x$(stat -c %t%02T $1) |
Hans-G?nter@1217 | 35 v=$((${v:-$1})) |
Hans-G?nter@1217 | 36 else |
Hans-G?nter@1217 | 37 o=$(($1)) |
Hans-G?nter@1217 | 38 fi |
Hans-G?nter@1217 | 39 esac |
Hans-G?nter@1217 | 40 shift |
Hans-G?nter@1217 | 41 done |
Hans-G?nter@1217 | 42 |
Hans-G?nter@1217 | 43 dd="dd bs=1 conv=notrunc count=2" |
Hans-G?nter@1217 | 44 if [ ! -s "$i" ]; then |
Hans-G?nter@1217 | 45 echo $(dev $(stat -c %04D /)) / |
Hans-G?nter@1217 | 46 elif [ -n "$v" ]; then |
Hans-G?nter@1217 | 47 for i in 1 2; do |
Hans-G?nter@1217 | 48 printf '\\\\x%02X' $(($v&255)) |
Hans-G?nter@1217 | 49 v=$(($v>>8)) |
Hans-G?nter@1217 | 50 done | xargs echo -en | $dd of=$i seek=$o |
Hans-G?nter@1217 | 51 elif [ -n "$f" ]; then |
Hans-G?nter@1217 | 52 echo $f $($dd if=$i skip=$o | od -dAn) |
Hans-G?nter@1217 | 53 else |
Hans-G?nter@1217 | 54 echo "Root device $(dev $($dd if=$i skip=$o | od -xAn))" |
Hans-G?nter@1217 | 55 fi 2>/dev/null |