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