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