wok-undigest diff 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 |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/linux/stuff/linux-source/rdev Fri Nov 15 16:49:43 2019 +0100 1.3 @@ -0,0 +1,55 @@ 1.4 +#!/bin/sh 1.5 + 1.6 +dev() 1.7 +{ 1.8 +for b in $(find /dev -type b); do 1.9 + [ $(stat -c %02t%02T $b) = $1 ] && echo $b && return 1.10 +done 1.11 +echo 0x$1 1.12 +} 1.13 + 1.14 +s= 1.15 +case "$0" in 1.16 +*gs) s=-R;; 1.17 +*ze) s=-r;; 1.18 +*de) s=-v 1.19 +esac 1.20 +set -- $s "$@" 1.21 + 1.22 +o=508 1.23 +i= 1.24 +v= 1.25 +f= 1.26 +while [ -n "$1" ]; do 1.27 +case "$1" in 1.28 +-R) o=498; f="Root flags";; 1.29 +-r) o=504; f="Ramsize";; 1.30 +-v) o=506; f="Video mode";; 1.31 +-o) o=$(($2)); f=" "; shift;; 1.32 +-*) echo "Usage: rdev [-Rrvh] [-o offset] [kernel [data [offset]]]" 1.33 + exit 1;; 1.34 +*) if [ -z "$i" ]; then 1.35 + i="$1" 1.36 + elif [ -z "$v" ]; then 1.37 + [ -b "$1" ] && v=0x$(stat -c %t%02T $1) 1.38 + v=$((${v:-$1})) 1.39 + else 1.40 + o=$(($1)) 1.41 + fi 1.42 +esac 1.43 +shift 1.44 +done 1.45 + 1.46 +dd="dd bs=1 conv=notrunc count=2" 1.47 +if [ ! -s "$i" ]; then 1.48 + echo $(dev $(stat -c %04D /)) / 1.49 +elif [ -n "$v" ]; then 1.50 + for i in 1 2; do 1.51 + printf '\\\\x%02X' $(($v&255)) 1.52 + v=$(($v>>8)) 1.53 + done | xargs echo -en | $dd of=$i seek=$o 1.54 +elif [ -n "$f" ]; then 1.55 + echo $f $($dd if=$i skip=$o | od -dAn) 1.56 +else 1.57 + echo "Root device $(dev $($dd if=$i skip=$o | od -xAn))" 1.58 +fi 2>/dev/null