1*f6eb8b35SDavid du Colombier#!/bin/rc 2*f6eb8b35SDavid du Colombier 3*f6eb8b35SDavid du Colombierrfork e 4*f6eb8b35SDavid du Colombiern=`{echo $#*^'%3' | hoc} 5*f6eb8b35SDavid du Colombierif(! ~ $n 0){ 6*f6eb8b35SDavid du Colombier echo 'usage: mkrootc [name cname file]...' >[1=2] 7*f6eb8b35SDavid du Colombier exit usage 8*f6eb8b35SDavid du Colombier} 9*f6eb8b35SDavid du Colombier 10*f6eb8b35SDavid du Colombiertmp=mkroot.$pid.out 11*f6eb8b35SDavid du Colombierfn sigexit { 12*f6eb8b35SDavid du Colombier rm -f $tmp 13*f6eb8b35SDavid du Colombier} 14*f6eb8b35SDavid du Colombier 15*f6eb8b35SDavid du Colombierallcname=() 16*f6eb8b35SDavid du Colombierallname=() 17*f6eb8b35SDavid du Colombierwhile(! ~ $#* 0){ 18*f6eb8b35SDavid du Colombier name=$1 19*f6eb8b35SDavid du Colombier cname=$2 20*f6eb8b35SDavid du Colombier file=$3 21*f6eb8b35SDavid du Colombier shift 22*f6eb8b35SDavid du Colombier shift 23*f6eb8b35SDavid du Colombier shift 24*f6eb8b35SDavid du Colombier allname=($allname $name) 25*f6eb8b35SDavid du Colombier allcname=($allcname $cname) 26*f6eb8b35SDavid du Colombier} 27*f6eb8b35SDavid du Colombier 28*f6eb8b35SDavid du Colombierecho ' 29*f6eb8b35SDavid du Colombier#include "u.h" 30*f6eb8b35SDavid du Colombier#include "../port/lib.h" 31*f6eb8b35SDavid du Colombier#include "mem.h" 32*f6eb8b35SDavid du Colombier#include "dat.h" 33*f6eb8b35SDavid du Colombier#include "fns.h" 34*f6eb8b35SDavid du Colombier#include "io.h" 35*f6eb8b35SDavid du Colombier#include "../port/error.h" 36*f6eb8b35SDavid du Colombier' 37*f6eb8b35SDavid du Colombier 38*f6eb8b35SDavid du Colombierfor(i in $allcname){ 39*f6eb8b35SDavid du Colombier echo 'extern uchar '$i'code[];' 40*f6eb8b35SDavid du Colombier echo 'extern ulong '$i'len;' 41*f6eb8b35SDavid du Colombier} 42*f6eb8b35SDavid du Colombier 43*f6eb8b35SDavid du Colombierecho ' 44*f6eb8b35SDavid du Colombiervoid bootlinks(void){ 45*f6eb8b35SDavid du Colombier' 46*f6eb8b35SDavid du Colombierx=($allname) 47*f6eb8b35SDavid du Colombierfor(i in $allcname){ 48*f6eb8b35SDavid du Colombier name=$x(1) 49*f6eb8b35SDavid du Colombier *=($x); shift; x=($*) 50*f6eb8b35SDavid du Colombier echo ' addbootfile("'$name'", '$i'code, '$i'len);' 51*f6eb8b35SDavid du Colombier} 52*f6eb8b35SDavid du Colombierecho ' 53*f6eb8b35SDavid du Colombier} 54*f6eb8b35SDavid du Colombier' 55