|
|
Plan 9 NeXT
#!/bin/rc
if(! ~ $#* 1){
echo usage: mkdevc file >[1=2]
exit 1
}
#
# The following programs are allowed to be placed in #/ as
# file systems for root
#
rootfilsys='kfs|dossrv|k9660srv'
cat <<'---'
#include "u.h"
#include "../port/lib.h"
#include "mem.h"
#include "dat.h"
#include "fns.h"
#include "../port/error.h"
#include "devtab.h"
Dev devtab[]={
---
../port/mkextract dev 0 $* | awk '{
print " { " $1 "reset, "\
$1 "init, "\
$1 "attach, "\
$1 "clone, "\
$1 "walk, "\
$1 "stat, "\
$1 "open, "\
$1 "create,"
print " "\
$1 "close, "\
$1 "read, "\
$1 "write, "\
$1 "remove, "\
$1 "wstat, },"
}'
echo '};'
../port/mkextract dev 0 $* | awk '
BEGIN{
printf "Rune *devchar=L\"" }
{ printf "%s", $2 }
END{ printf "\";\n"
}
'
../port/mkextract stream 0 $* | awk '
BEGIN{ print "extern Qinfo perminfo;" }
{ print "extern Qinfo\t" $1 "info;" }
'
../port/mkextract link 0 $* | awk '
{ print "extern void\t" $1 "link(void);" }
'
../port/mkextract misc 0 $* | sed -n 's/[ ]*(.*)\.root/\1/p' | awk '
/^'$rootfilsys'$/ { print "extern uchar\tfscode[];"
print "extern ulong\tfslen;"
next }
{ print "extern uchar\t" $1 "code[];"
print "extern ulong\t" $1 "len;" }
'
../port/mkextract stream 0 $* | awk '
BEGIN{ print "void streaminit(void){\n\tnewqinfo(&perminfo);" }
{ print "\tnewqinfo(&" $1 "info);" }
'
../port/mkextract link 0 $* | awk '
{ print "\t" $1 "link();" }
'
../port/mkextract misc 0 $* | sed -n 's/[ ]*(.*)\.root/\1/p' | awk '
/^'$rootfilsys'$/ { print "\taddrootfile(\"fs\", fscode, fslen);"
next }
{ print "\taddrootfile(\"" $1 "\", " $1 "code, " $1 "len);" }
'
echo '}'
../port/mkextract port 0 $*
if(! grep conffile $* > /dev/null)echo 'char *conffile = "'$1'";'
echo 'ulong kerndate = KERNDATE;'
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.