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