u. is gone, pcb is at p_addr; aston => signotify
[unix-history] / usr / src / sys / kern / syscalls.awk
awk < syscalls '\
BEGIN { \
sysent = "sysent";
sysnames = "syscall.c";
syshdr = "syscall.h";
printf "/*\n * System call names.\n */\n" > sysnames; \
printf "char *syscallnames[] = {\n" > sysnames; \
printf "/*\n * System call numbers.\n */\n" > syshdr; \
} \
$1 ~ /^#[ ]*if/ { \
print > sysent; \
savesyscall = syscall; \
next;
} \
$1 ~ /^#[ ]*el/ { \
print > sysent; \
syscall = savesyscall; \
next; \
} \
$1 ~ /^#/ { \
print > sysent; \
next; \
} \
syscall != $1 { \
printf "syscall number out of sync at %d; line is:\n", syscall; \
print; \
exit 1; \
} \
{ comment = $4; \
for (i = 5; i <= NF; i++) \
comment = comment " " $i; \
if (NF < 5) \
$5 = $4; \
} \
$2 == "STD" { \
printf("\t%d, %s,\t\t\t/* %d = %s */\n", \
$3, $4, syscall, $5) > sysent; \
printf("\t\"%s\",\t\t\t/* %d = %s */\n", \
$5, syscall, $5) > sysnames; \
printf("#define\tSYS_%s\t%d\n", \
$5, syscall) > syshdr; \
} \
$2 == "COMPAT" { \
printf("\tcompat(%d, %s),\t\t/* %d = old %s */\n", \
$3, $4, syscall, $5) > sysent; \
printf("\t\"old %s\",\t\t/* %d = old %s */\n", \
$5, syscall, $5) > sysnames; \
printf("\t\t\t\t/* %d is old %s */\n", \
syscall, comment) > syshdr; \
} \
$2 == "OBSOL" { \
printf("\t0, nosys,\t\t\t/* %d = old %s */\n", \
syscall, comment) > sysent; \
printf("\t\"#%d\",\t\t\t/* %d = old %s */\n", \
syscall, syscall, comment) > sysnames; \
printf("\t\t\t\t/* %d is old %s */\n", \
syscall, comment) > syshdr; \
} \
$2 == "UNIMPL" { \
printf("\t0, nosys,\t\t\t/* %d = %s */\n", \
syscall, comment) > sysent; \
printf("\t\"#%d\",\t\t\t/* %d = %s */\n", \
syscall, syscall, comment) > sysnames; \
} \
{ syscall++ }\
END { \
printf("};\n") > sysnames; \
}
'