summaryrefslogtreecommitdiff
path: root/sys/src/9/port/mkrootc
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 15:46:40 +0300
commite5888a1ffdae813d7575f5fb02275c6bb07e5199 (patch)
treed8d51eac403f07814b9e936eed0c9a79195e2450 /sys/src/9/port/mkrootc
Import sources from 2011-03-30 iso image
Diffstat (limited to 'sys/src/9/port/mkrootc')
-rwxr-xr-xsys/src/9/port/mkrootc54
1 files changed, 54 insertions, 0 deletions
diff --git a/sys/src/9/port/mkrootc b/sys/src/9/port/mkrootc
new file mode 100755
index 000000000..4c6907f68
--- /dev/null
+++ b/sys/src/9/port/mkrootc
@@ -0,0 +1,54 @@
+#!/bin/rc
+
+rfork e
+n=`{echo $#*^'%3' | hoc}
+if(! ~ $n 0){
+ echo 'usage: mkrootc [name cname file]...' >[1=2]
+ exit usage
+}
+
+tmp=mkroot.$pid.out
+fn sigexit {
+ rm -f $tmp
+}
+
+allcname=()
+allname=()
+while(! ~ $#* 0){
+ name=$1
+ cname=$2
+ file=$3
+ shift
+ shift
+ shift
+ allname=($allname $name)
+ allcname=($allcname $cname)
+}
+
+echo '
+#include "u.h"
+#include "../port/lib.h"
+#include "mem.h"
+#include "dat.h"
+#include "fns.h"
+#include "io.h"
+#include "../port/error.h"
+'
+
+for(i in $allcname){
+ echo 'extern uchar '$i'code[];'
+ echo 'extern ulong '$i'len;'
+}
+
+echo '
+void bootlinks(void){
+'
+x=($allname)
+for(i in $allcname){
+ name=$x(1)
+ *=($x); shift; x=($*)
+ echo ' addbootfile("'$name'", '$i'code, '$i'len);'
+}
+echo '
+}
+'