1*35764Smarcawk < syscalls '\ 2*35764Smarc BEGIN { \ 3*35764Smarc sysent = "sysent"; 4*35764Smarc sysnames = "syscall.c"; 5*35764Smarc syshdr = "syscall.h"; 6*35764Smarc printf "/*\n * System call names.\n */\n" > sysnames; \ 7*35764Smarc printf "char *syscallnames[] = {\n" > sysnames; \ 8*35764Smarc printf "/*\n * System call numbers.\n */\n" > syshdr; \ 9*35764Smarc } \ 10*35764Smarc $1 ~ /^#[ ]*if/ { \ 11*35764Smarc print > sysent; \ 12*35764Smarc savesyscall = syscall; \ 13*35764Smarc next; 14*35764Smarc } \ 15*35764Smarc $1 ~ /^#[ ]*el/ { \ 16*35764Smarc print > sysent; \ 17*35764Smarc syscall = savesyscall; \ 18*35764Smarc next; \ 19*35764Smarc } \ 20*35764Smarc $1 ~ /^#/ { \ 21*35764Smarc print > sysent; \ 22*35764Smarc next; \ 23*35764Smarc } \ 24*35764Smarc syscall != $1 { \ 25*35764Smarc printf "syscall number out of sync at %d; line is:\n", syscall; \ 26*35764Smarc print; \ 27*35764Smarc exit 1; \ 28*35764Smarc } \ 29*35764Smarc { comment = $4; \ 30*35764Smarc for (i = 5; i <= NF; i++) \ 31*35764Smarc comment = comment " " $i; \ 32*35764Smarc if (NF < 5) \ 33*35764Smarc $5 = $4; \ 34*35764Smarc } \ 35*35764Smarc $2 == "STD" { \ 36*35764Smarc printf("\t%d, %s,\t\t\t/* %d = %s */\n", \ 37*35764Smarc $3, $4, syscall, $5) > sysent; \ 38*35764Smarc printf("\t\"%s\",\t\t\t/* %d = %s */\n", \ 39*35764Smarc $5, syscall, $5) > sysnames; \ 40*35764Smarc printf("#define\tSYS_%s\t%d\n", \ 41*35764Smarc $5, syscall) > syshdr; \ 42*35764Smarc } \ 43*35764Smarc $2 == "COMPAT" { \ 44*35764Smarc printf("\tcompat(%d, %s),\t\t/* %d = old %s */\n", \ 45*35764Smarc $3, $4, syscall, $5) > sysent; \ 46*35764Smarc printf("\t\"old %s\",\t\t/* %d = old %s */\n", \ 47*35764Smarc $5, syscall, $5) > sysnames; \ 48*35764Smarc printf("\t\t\t\t/* %d is old %s */\n", \ 49*35764Smarc syscall, comment) > syshdr; \ 50*35764Smarc } \ 51*35764Smarc $2 == "OBSOL" { \ 52*35764Smarc printf("\t0, nosys,\t\t\t/* %d = old %s */\n", \ 53*35764Smarc syscall, comment) > sysent; \ 54*35764Smarc printf("\t\"#%d\",\t\t\t/* %d = old %s */\n", \ 55*35764Smarc syscall, syscall, comment) > sysnames; \ 56*35764Smarc printf("\t\t\t\t/* %d is old %s */\n", \ 57*35764Smarc syscall, comment) > syshdr; \ 58*35764Smarc } \ 59*35764Smarc $2 == "UNIMPL" { \ 60*35764Smarc printf("\t0, nosys,\t\t\t/* %d = %s */\n", \ 61*35764Smarc syscall, comment) > sysent; \ 62*35764Smarc printf("\t\"#%d\",\t\t\t/* %d = %s */\n", \ 63*35764Smarc syscall, syscall, comment) > sysnames; \ 64*35764Smarc } \ 65*35764Smarc { syscall++ }\ 66*35764Smarc END { \ 67*35764Smarc printf("};\n") > sysnames; \ 68*35764Smarc } 69*35764Smarc ' 70