(CommandList children: [ (C {(set)} {(-e)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:compat) op:Equal rhs:{(COMPAT_43)} spids:[18])] spids: [18] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:compat4) op:Equal rhs:{(COMPAT_FREEBSD4)} spids:[21])] spids: [21] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:compat6) op:Equal rhs:{(COMPAT_FREEBSD6)} spids:[24])] spids: [24] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:compat7) op:Equal rhs:{(COMPAT_FREEBSD7)} spids:[27])] spids: [27] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:compat10) op:Equal rhs:{(COMPAT_FREEBSD10)} spids:[30])] spids: [30] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:sysnames) op:Equal rhs:{(DQ (syscalls.c))} spids:[37])] spids: [37] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sysproto) op: Equal rhs: {(DQ (../sys/sysproto.h))} spids: [42] ) ] spids: [42] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sysproto_h) op: Equal rhs: {(_SYS_SYSPROTO_H_)} spids: [47] ) ] spids: [47] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:syshdr) op: Equal rhs: {(DQ (../sys/syscall.h))} spids: [50] ) ] spids: [50] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sysmk) op: Equal rhs: {(DQ (../sys/syscall.mk))} spids: [55] ) ] spids: [55] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:syssw) op:Equal rhs:{(DQ (init_sysent.c))} spids:[60])] spids: [60] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:syscallprefix) op:Equal rhs:{(DQ (SYS_))} spids:[65])] spids: [65] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:switchname) op:Equal rhs:{(DQ (sysent))} spids:[70])] spids: [70] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:namesname) op: Equal rhs: {(DQ (syscallnames))} spids: [75] ) ] spids: [75] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:systrace) op: Equal rhs: {(DQ (systrace_args.c))} spids: [80] ) ] spids: [80] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sysaue) op: Equal rhs: {(DQ (sysent.aue.) ($ VSub_Dollar '$$'))} spids: [89] ) ] spids: [89] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sysdcl) op: Equal rhs: {(DQ (sysent.dcl.) ($ VSub_Dollar '$$'))} spids: [95] ) ] spids: [95] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:syscompat) op: Equal rhs: {(DQ (sysent.compat.) ($ VSub_Dollar '$$'))} spids: [101] ) ] spids: [101] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:syscompatdcl) op: Equal rhs: {(DQ (sysent.compatdcl.) ($ VSub_Dollar '$$'))} spids: [107] ) ] spids: [107] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:syscompat4) op: Equal rhs: {(DQ (sysent.compat4.) ($ VSub_Dollar '$$'))} spids: [113] ) ] spids: [113] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:syscompat4dcl) op: Equal rhs: {(DQ (sysent.compat4dcl.) ($ VSub_Dollar '$$'))} spids: [119] ) ] spids: [119] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:syscompat6) op: Equal rhs: {(DQ (sysent.compat6.) ($ VSub_Dollar '$$'))} spids: [125] ) ] spids: [125] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:syscompat6dcl) op: Equal rhs: {(DQ (sysent.compat6dcl.) ($ VSub_Dollar '$$'))} spids: [131] ) ] spids: [131] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:syscompat7) op: Equal rhs: {(DQ (sysent.compat7.) ($ VSub_Dollar '$$'))} spids: [137] ) ] spids: [137] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:syscompat7dcl) op: Equal rhs: {(DQ (sysent.compat7dcl.) ($ VSub_Dollar '$$'))} spids: [143] ) ] spids: [143] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:syscompat10) op: Equal rhs: {(DQ (sysent.compat10.) ($ VSub_Dollar '$$'))} spids: [149] ) ] spids: [149] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:syscompat10dcl) op: Equal rhs: {(DQ (sysent.compat10dcl.) ($ VSub_Dollar '$$'))} spids: [155] ) ] spids: [155] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sysent) op: Equal rhs: {(DQ (sysent.switch.) ($ VSub_Dollar '$$'))} spids: [161] ) ] spids: [161] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sysinc) op: Equal rhs: {(DQ (sysinc.switch.) ($ VSub_Dollar '$$'))} spids: [167] ) ] spids: [167] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sysarg) op: Equal rhs: {(DQ (sysarg.switch.) ($ VSub_Dollar '$$'))} spids: [173] ) ] spids: [173] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sysprotoend) op: Equal rhs: {(DQ (sysprotoend.) ($ VSub_Dollar '$$'))} spids: [179] ) ] spids: [179] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:systracetmp) op: Equal rhs: {(DQ (systrace.) ($ VSub_Dollar '$$'))} spids: [185] ) ] spids: [185] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:systraceret) op: Equal rhs: {(DQ (systraceret.) ($ VSub_Dollar '$$'))} spids: [191] ) ] spids: [191] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-r)} {(capabilities.conf)} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:capenabled) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(capabilities.conf)}) (C {(grep)} {(-v)} {(DQ ('^#'))}) (C {(grep)} {(-v)} {(DQ ('^') (Lit_Other '$'))}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [213 238] ) } spids: [212] ) ] spids: [212] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:capenabled) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name '$capenabled')}) (C {(sed)} {(SQ <'s/ /,/g'>)}) ] negated: F ) ] ) left_token: <Left_Backtick '`'> spids: [242 254] ) } spids: [241] ) ] spids: [241] ) ] spids: [16777215 209] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:capenabled) op:Equal rhs:{(DQ )} spids:[259])] spids: [259] ) ] spids: [256 263] ) (C {(trap)} { (DQ ('rm ') ($ VSub_Name '$sysaue') (' ') ($ VSub_Name '$sysdcl') (' ') ($ VSub_Name '$syscompat') (' ') ($ VSub_Name '$syscompatdcl') (' ') ($ VSub_Name '$syscompat4') (' ') ($ VSub_Name '$syscompat4dcl') (' ') ($ VSub_Name '$syscompat6') (' ') ($ VSub_Name '$syscompat6dcl') (' ') ($ VSub_Name '$syscompat7') (' ') ($ VSub_Name '$syscompat7dcl') (' ') ($ VSub_Name '$syscompat10') (' ') ($ VSub_Name '$syscompat10dcl') (' ') ($ VSub_Name '$sysent') (' ') ($ VSub_Name '$sysinc') (' ') ($ VSub_Name '$sysarg') (' ') ($ VSub_Name '$sysprotoend') (' ') ($ VSub_Name '$systracetmp') (' ') ($ VSub_Name '$systraceret') ) } {(0)} ) (C {(touch)} {($ VSub_Name '$sysaue')} {($ VSub_Name '$sysdcl')} {($ VSub_Name '$syscompat')} {($ VSub_Name '$syscompatdcl')} {($ VSub_Name '$syscompat4')} {($ VSub_Name '$syscompat4dcl')} {($ VSub_Name '$syscompat6')} {($ VSub_Name '$syscompat6dcl')} {($ VSub_Name '$syscompat7')} {($ VSub_Name '$syscompat7dcl')} {($ VSub_Name '$syscompat10')} {($ VSub_Name '$syscompat10dcl')} {($ VSub_Name '$sysent')} {($ VSub_Name '$sysinc')} {($ VSub_Name '$sysarg')} {($ VSub_Name '$sysprotoend')} {($ VSub_Name '$systracetmp')} {($ VSub_Name '$systraceret')} ) (Case to_match: {($ VSub_Pound '$#')} arms: [ (case_arm pat_list: [{(0)}] action: [ (SimpleCommand words: [{(echo)} {(DQ ('usage: ') ($ VSub_Number '$0') (' input-file <config-file>'))}] redirects: [(Redir op:<Redir_GreatAnd '1>&'> fd:1 arg_word:{(2)})] ) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] spids: [356 357 376 16777215] ) ] spids: [349 353 378] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [(C {(.)} {($ VSub_Number '$2')})] spids: [16777215 394] ) ] spids: [16777215 401] ) (Pipeline children: [ (SimpleCommand words: [ {(sed)} {(-e)} { (SQ <'\n'> <':join\n'> <'\t/\\\\$/{a\\\n'> <'\n'> <'\tN\n'> <'\ts/\\\\\\n//\n'> <'\tb join\n'> <'\t}\n'> <'2,${\n'> <'\t/^#/!s/\\([{}()*,]\\)/ \\1 /g\n'> <'}\n'> ) } ] redirects: [(Redir op:<Redir_Less '<'> fd:16777215 arg_word:{($ VSub_Number '$1')})] ) (C {(awk)} { (DQ ('\n') ('\tBEGIN {\n') ('\t\tsysaue = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$sysaue') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsysdcl = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$sysdcl') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsysproto = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$sysproto') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsysprotoend = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$sysprotoend') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsysproto_h = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$sysproto_h') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsyscompat = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$syscompat') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsyscompatdcl = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$syscompatdcl') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsyscompat4 = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$syscompat4') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsyscompat4dcl = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$syscompat4dcl') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsyscompat6 = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$syscompat6') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsyscompat6dcl = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$syscompat6dcl') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsyscompat7 = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$syscompat7') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsyscompat7dcl = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$syscompat7dcl') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsyscompat10 = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$syscompat10') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsyscompat10dcl = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$syscompat10dcl') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsysent = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$sysent') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsyssw = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$syssw') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsysinc = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$sysinc') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsysarg = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$sysarg') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsysnames = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$sysnames') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsyshdr = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$syshdr') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsysmk = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$sysmk') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsystrace = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$systrace') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsystracetmp = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$systracetmp') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsystraceret = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$systraceret') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tcompat = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$compat') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tcompat4 = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$compat4') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tcompat6 = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$compat6') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tcompat7 = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$compat7') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tcompat10 = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$compat10') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tsyscallprefix = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$syscallprefix') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tswitchname = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$switchname') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tnamesname = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$namesname') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tinfile = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Number '$1') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\tcapenabled_string = ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ($ VSub_Name '$capenabled') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('\n') ('\t\t') ) (SQ <'\n'> <'\n'> <'\t\tsplit(capenabled_string, capenabled, ",");\n'> <'\n'> <'\t\tprintf "\\n/* The casts are bogus but will do for now. */\\n" > sysent\n'> <'\t\tprintf "struct sysent %s[] = {\\n",switchname > sysent\n'> <'\n'> <'\t\tprintf "/*\\n * System call switch table.\\n *\\n" > syssw\n'> <'\t\tprintf " * DO NOT EDIT-- this file is automatically generated.\\n" > syssw\n'> <'\t\tprintf " * $%s$\\n", "FreeBSD" > syssw\n'> <'\t\tprintf " */\\n\\n" > syssw\n'> <'\n'> <'\t\tprintf "/*\\n * System call prototypes.\\n *\\n" > sysarg\n'> <'\t\tprintf " * DO NOT EDIT-- this file is automatically generated.\\n" > sysarg\n'> <'\t\tprintf " * $%s$\\n", "FreeBSD" > sysarg\n'> <'\t\tprintf " */\\n\\n" > sysarg\n'> <'\t\tprintf "#ifndef %s\\n", sysproto_h > sysarg\n'> <'\t\tprintf "#define\\t%s\\n\\n", sysproto_h > sysarg\n'> <'\t\tprintf "#include <sys/signal.h>\\n" > sysarg\n'> <'\t\tprintf "#include <sys/acl.h>\\n" > sysarg\n'> <'\t\tprintf "#include <sys/cpuset.h>\\n" > sysarg\n'> <'\t\tprintf "#include <sys/_ffcounter.h>\\n" > sysarg\n'> <'\t\tprintf "#include <sys/_semaphore.h>\\n" > sysarg\n'> <'\t\tprintf "#include <sys/ucontext.h>\\n" > sysarg\n'> <'\t\tprintf "#include <sys/wait.h>\\n\\n" > sysarg\n'> <'\t\tprintf "#include <bsm/audit_kevents.h>\\n\\n" > sysarg\n'> <'\t\tprintf "struct proc;\\n\\n" > sysarg\n'> <'\t\tprintf "struct thread;\\n\\n" > sysarg\n'> < '\t\tprintf "#define\\tPAD_(t)\\t(sizeof(register_t) <= sizeof(t) ? \\\\\\n" > sysarg\n' > <'\t\tprintf "\\t\\t0 : sizeof(register_t) - sizeof(t))\\n\\n" > sysarg\n'> <'\t\tprintf "#if BYTE_ORDER == LITTLE_ENDIAN\\n"> sysarg\n'> <'\t\tprintf "#define\\tPADL_(t)\\t0\\n" > sysarg\n'> <'\t\tprintf "#define\\tPADR_(t)\\tPAD_(t)\\n" > sysarg\n'> <'\t\tprintf "#else\\n" > sysarg\n'> <'\t\tprintf "#define\\tPADL_(t)\\tPAD_(t)\\n" > sysarg\n'> <'\t\tprintf "#define\\tPADR_(t)\\t0\\n" > sysarg\n'> <'\t\tprintf "#endif\\n\\n" > sysarg\n'> <'\n'> <'\t\tprintf "\\n#ifdef %s\\n\\n", compat > syscompat\n'> <'\t\tprintf "\\n#ifdef %s\\n\\n", compat4 > syscompat4\n'> <'\t\tprintf "\\n#ifdef %s\\n\\n", compat6 > syscompat6\n'> <'\t\tprintf "\\n#ifdef %s\\n\\n", compat7 > syscompat7\n'> <'\t\tprintf "\\n#ifdef %s\\n\\n", compat10 > syscompat10\n'> <'\n'> <'\t\tprintf "/*\\n * System call names.\\n *\\n" > sysnames\n'> < '\t\tprintf " * DO NOT EDIT-- this file is automatically generated.\\n" > sysnames\n' > <'\t\tprintf " * $%s$\\n", "FreeBSD" > sysnames\n'> <'\t\tprintf " */\\n\\n" > sysnames\n'> <'\t\tprintf "const char *%s[] = {\\n", namesname > sysnames\n'> <'\n'> <'\t\tprintf "/*\\n * System call numbers.\\n *\\n" > syshdr\n'> <'\t\tprintf " * DO NOT EDIT-- this file is automatically generated.\\n" > syshdr\n'> <'\t\tprintf " * $%s$\\n", "FreeBSD" > syshdr\n'> <'\t\tprintf " */\\n\\n" > syshdr\n'> <'\n'> <'\t\tprintf "# FreeBSD system call object files.\\n" > sysmk\n'> <'\t\tprintf "# DO NOT EDIT-- this file is automatically generated.\\n" > sysmk\n'> <'\t\tprintf "# $%s$\\n", "FreeBSD" > sysmk\n'> <'\t\tprintf "MIASM = " > sysmk\n'> <'\n'> < '\t\tprintf "/*\\n * System call argument to DTrace register array converstion.\\n *\\n" > systrace\n' > <'\t\tprintf " * DO NOT EDIT-- this file is automatically generated.\\n" > systrace\n'> <'\t\tprintf " * $%s$\\n", "FreeBSD" > systrace\n'> <'\t\tprintf " * This file is part of the DTrace syscall provider.\\n */\\n\\n" > systrace\n'> < '\t\tprintf "static void\\nsystrace_args(int sysnum, void *params, uint64_t *uarg, int *n_args)\\n{\\n" > systrace\n' > <'\t\tprintf "\\tint64_t *iarg = (int64_t *) uarg;\\n" > systrace\n'> <'\t\tprintf "\\tswitch (sysnum) {\\n" > systrace\n'> <'\n'> < '\t\tprintf "static void\\nsystrace_entry_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)\\n{\\n\\tconst char *p = NULL;\\n" > systracetmp\n' > <'\t\tprintf "\\tswitch (sysnum) {\\n" > systracetmp\n'> <'\n'> < '\t\tprintf "static void\\nsystrace_return_setargdesc(int sysnum, int ndx, char *desc, size_t descsz)\\n{\\n\\tconst char *p = NULL;\\n" > systraceret\n' > <'\t\tprintf "\\tswitch (sysnum) {\\n" > systraceret\n'> <'\t}\n'> <'\tNR == 1 {\n'> <'\t\tnext\n'> <'\t}\n'> <'\tNF == 0 || $1 ~ /^;/ {\n'> <'\t\tnext\n'> <'\t}\n'> <'\t$1 ~ /^#[ \t]*include/ {\n'> <'\t\tprint > sysinc\n'> <'\t\tnext\n'> <'\t}\n'> <'\t$1 ~ /^#[ \t]*if/ {\n'> <'\t\tprint > sysent\n'> <'\t\tprint > sysdcl\n'> <'\t\tprint > sysarg\n'> <'\t\tprint > syscompat\n'> <'\t\tprint > syscompat4\n'> <'\t\tprint > syscompat6\n'> <'\t\tprint > syscompat7\n'> <'\t\tprint > syscompat10\n'> <'\t\tprint > sysnames\n'> <'\t\tprint > systrace\n'> <'\t\tprint > systracetmp\n'> <'\t\tprint > systraceret\n'> <'\t\tsavesyscall = syscall\n'> <'\t\tnext\n'> <'\t}\n'> <'\t$1 ~ /^#[ \t]*else/ {\n'> <'\t\tprint > sysent\n'> <'\t\tprint > sysdcl\n'> <'\t\tprint > sysarg\n'> <'\t\tprint > syscompat\n'> <'\t\tprint > syscompat4\n'> <'\t\tprint > syscompat6\n'> <'\t\tprint > syscompat7\n'> <'\t\tprint > syscompat10\n'> <'\t\tprint > sysnames\n'> <'\t\tprint > systrace\n'> <'\t\tprint > systracetmp\n'> <'\t\tprint > systraceret\n'> <'\t\tsyscall = savesyscall\n'> <'\t\tnext\n'> <'\t}\n'> <'\t$1 ~ /^#/ {\n'> <'\t\tprint > sysent\n'> <'\t\tprint > sysdcl\n'> <'\t\tprint > sysarg\n'> <'\t\tprint > syscompat\n'> <'\t\tprint > syscompat4\n'> <'\t\tprint > syscompat6\n'> <'\t\tprint > syscompat7\n'> <'\t\tprint > syscompat10\n'> <'\t\tprint > sysnames\n'> <'\t\tprint > systrace\n'> <'\t\tprint > systracetmp\n'> <'\t\tprint > systraceret\n'> <'\t\tnext\n'> <'\t}\n'> <'\tsyscall != $1 {\n'> <'\t\tprintf "%s: line %d: syscall number out of sync at %d\\n",\n'> <'\t\t infile, NR, syscall\n'> <'\t\tprintf "line is:\\n"\n'> <'\t\tprint\n'> <'\t\texit 1\n'> <'\t}\n'> <'\t# Returns true if the type "name" is the first flag in the type field\n'> <'\tfunction type(name, flags, n) {\n'> <'\t\tn = split($3, flags, /\\|/)\n'> <'\t\treturn (n > 0 && flags[1] == name)\n'> <'\t}\n'> <'\t# Returns true if the flag "name" is set in the type field\n'> <'\tfunction flag(name, flags, i, n) {\n'> <'\t\tn = split($3, flags, /\\|/)\n'> <'\t\tfor (i = 1; i <= n; i++)\n'> <'\t\t\tif (flags[i] == name)\n'> <'\t\t\t\treturn 1\n'> <'\t\treturn 0\n'> <'\t}\n'> <'\tfunction align_sysent_comment(column) {\n'> <'\t\tprintf("\\t") > sysent\n'> <'\t\tcolumn = column + 8 - column % 8\n'> <'\t\twhile (column < 56) {\n'> <'\t\t\tprintf("\\t") > sysent\n'> <'\t\t\tcolumn = column + 8\n'> <'\t\t}\n'> <'\t}\n'> <'\tfunction parserr(was, wanted) {\n'> <'\t\tprintf "%s: line %d: unexpected %s (expected %s)\\n",\n'> <'\t\t infile, NR, was, wanted\n'> <'\t\texit 1\n'> <'\t}\n'> <'\tfunction parseline() {\n'> <'\t\tf=4\t\t\t# toss number, type, audit event\n'> <'\t\targc= 0;\n'> <'\t\targssize = "0"\n'> <'\t\tthr_flag = "SY_THR_STATIC"\n'> <'\t\tif (flag("NOTSTATIC")) {\n'> <'\t\t\tthr_flag = "SY_THR_ABSENT"\n'> <'\t\t}\n'> <'\t\tif ($NF != "}") {\n'> <'\t\t\tfuncalias=$(NF-2)\n'> <'\t\t\targalias=$(NF-1)\n'> <'\t\t\trettype=$NF\n'> <'\t\t\tend=NF-3\n'> <'\t\t} else {\n'> <'\t\t\tfuncalias=""\n'> <'\t\t\targalias=""\n'> <'\t\t\trettype="int"\n'> <'\t\t\tend=NF\n'> <'\t\t}\n'> <'\t\tif (flag("NODEF")) {\n'> <'\t\t\tauditev="AUE_NULL"\n'> <'\t\t\tfuncname=$4\n'> <'\t\t\targssize = "AS(" $6 ")"\n'> <'\t\t\treturn\n'> <'\t\t}\n'> <'\t\tif ($f != "{")\n'> <'\t\t\tparserr($f, "{")\n'> <'\t\tf++\n'> <'\t\tif ($end != "}")\n'> <'\t\t\tparserr($end, "}")\n'> <'\t\tend--\n'> <'\t\tif ($end != ";")\n'> <'\t\t\tparserr($end, ";")\n'> <'\t\tend--\n'> <'\t\tif ($end != ")")\n'> <'\t\t\tparserr($end, ")")\n'> <'\t\tend--\n'> <'\n'> <'\t\tsyscallret=$f\n'> <'\t\tf++\n'> <'\n'> <'\t\tfuncname=$f\n'> <'\n'> <'\t\t#\n'> <'\t\t# We now know the func name, so define a flags field for it.\n'> <'\t\t# Do this before any other processing as we may return early\n'> <'\t\t# from it.\n'> <'\t\t#\n'> <'\t\tfor (cap in capenabled) {\n'> <'\t\t\tif (funcname == capenabled[cap]) {\n'> <'\t\t\t\tflags = "SYF_CAPENABLED";\n'> <'\t\t\t\tbreak;\n'> <'\t\t\t}\n'> <'\t\t}\n'> <'\n'> <'\t\tif (funcalias == "")\n'> <'\t\t\tfuncalias = funcname\n'> <'\t\tif (argalias == "") {\n'> <'\t\t\targalias = funcname "_args"\n'> <'\t\t\tif (flag("COMPAT"))\n'> <'\t\t\t\targalias = "o" argalias\n'> <'\t\t\tif (flag("COMPAT4"))\n'> <'\t\t\t\targalias = "freebsd4_" argalias\n'> <'\t\t\tif (flag("COMPAT6"))\n'> <'\t\t\t\targalias = "freebsd6_" argalias\n'> <'\t\t\tif (flag("COMPAT7"))\n'> <'\t\t\t\targalias = "freebsd7_" argalias\n'> <'\t\t\tif (flag("COMPAT10"))\n'> <'\t\t\t\targalias = "freebsd10_" argalias\n'> <'\t\t}\n'> <'\t\tf++\n'> <'\n'> <'\t\tif ($f != "(")\n'> <'\t\t\tparserr($f, ")")\n'> <'\t\tf++\n'> <'\n'> <'\t\tif (f == end) {\n'> <'\t\t\tif ($f != "void")\n'> <'\t\t\t\tparserr($f, "argument definition")\n'> <'\t\t\treturn\n'> <'\t\t}\n'> <'\n'> <'\t\twhile (f <= end) {\n'> <'\t\t\targc++\n'> <'\t\t\targtype[argc]=""\n'> <'\t\t\toldf=""\n'> <'\t\t\twhile (f < end && $(f+1) != ",") {\n'> <'\t\t\t\tif (argtype[argc] != "" && oldf != "*")\n'> <'\t\t\t\t\targtype[argc] = argtype[argc]" ";\n'> <'\t\t\t\targtype[argc] = argtype[argc]$f;\n'> <'\t\t\t\toldf = $f;\n'> <'\t\t\t\tf++\n'> <'\t\t\t}\n'> <'\t\t\tif (argtype[argc] == "")\n'> <'\t\t\t\tparserr($f, "argument definition")\n'> <'\t\t\targname[argc]=$f;\n'> <'\t\t\tf += 2;\t\t\t# skip name, and any comma\n'> <'\t\t}\n'> <'\t\tif (argc != 0)\n'> <'\t\t\targssize = "AS(" argalias ")"\n'> <'\t}\n'> <'\t{\tcomment = $4\n'> <'\t\tif (NF < 7)\n'> <'\t\t\tfor (i = 5; i <= NF; i++)\n'> <'\t\t\t\tcomment = comment " " $i\n'> <'\t}\n'> <'\n'> <'\t#\n'> <'\t# The AUE_ audit event identifier.\n'> <'\t#\n'> <'\t{\n'> <'\t\tauditev = $2;\n'> <'\t}\n'> <'\n'> <'\t#\n'> <'\t# The flags, if any.\n'> <'\t#\n'> <'\t{\n'> <'\t\tflags = "0";\n'> <'\t}\n'> <'\n'> <'\ttype("STD") || type("NODEF") || type("NOARGS") || type("NOPROTO") \\\n'> <'\t || type("NOSTD") {\n'> <'\t\tparseline()\n'> <'\t\tprintf("\\t/* %s */\\n\\tcase %d: {\\n", funcname, syscall) > systrace\n'> <'\t\tprintf("\\t/* %s */\\n\\tcase %d:\\n", funcname, syscall) > systracetmp\n'> <'\t\tprintf("\\t/* %s */\\n\\tcase %d:\\n", funcname, syscall) > systraceret\n'> <'\t\tif (argc > 0) {\n'> <'\t\t\tprintf("\\t\\tswitch(ndx) {\\n") > systracetmp\n'> <'\t\t\tprintf("\\t\\tstruct %s *p = params;\\n", argalias) > systrace\n'> <'\t\t\tfor (i = 1; i <= argc; i++) {\n'> <'\t\t\t\targ = argtype[i]\n'> <'\t\t\t\tsub("__restrict$", "", arg)\n'> < '\t\t\t\tprintf("\\t\\tcase %d:\\n\\t\\t\\tp = \\"%s\\";\\n\\t\\t\\tbreak;\\n", i - 1, arg) > systracetmp\n' > <'\t\t\t\tif (index(arg, "*") > 0 || arg == "caddr_t")\n'> <'\t\t\t\t\tprintf("\\t\\tuarg[%d] = (intptr_t) p->%s; /* %s */\\n", \\\n'> <'\t\t\t\t\t i - 1, \\\n'> <'\t\t\t\t\t argname[i], arg) > systrace\n'> <'\t\t\t\telse if (arg == "union l_semun")\n'> <'\t\t\t\t\tprintf("\\t\\tuarg[%d] = p->%s.buf; /* %s */\\n", \\\n'> <'\t\t\t\t\t i - 1, \\\n'> <'\t\t\t\t\t argname[i], arg) > systrace\n'> <'\t\t\t\telse if (substr(arg, 1, 1) == "u" || arg == "size_t")\n'> <'\t\t\t\t\tprintf("\\t\\tuarg[%d] = p->%s; /* %s */\\n", \\\n'> <'\t\t\t\t\t i - 1, \\\n'> <'\t\t\t\t\t argname[i], arg) > systrace\n'> <'\t\t\t\telse\n'> <'\t\t\t\t\tprintf("\\t\\tiarg[%d] = p->%s; /* %s */\\n", \\\n'> <'\t\t\t\t\t i - 1, \\\n'> <'\t\t\t\t\t argname[i], arg) > systrace\n'> <'\t\t\t}\n'> <'\t\t\tprintf("\\t\\tdefault:\\n\\t\\t\\tbreak;\\n\\t\\t};\\n") > systracetmp\n'> <'\n'> <'\t\t\tprintf("\\t\\tif (ndx == 0 || ndx == 1)\\n") > systraceret\n'> <'\t\t\tprintf("\\t\\t\\tp = \\"%s\\";\\n", syscallret) > systraceret\n'> <'\t\t\tprintf("\\t\\tbreak;\\n") > systraceret\n'> <'\t\t}\n'> <'\t\tprintf("\\t\\t*n_args = %d;\\n\\t\\tbreak;\\n\\t}\\n", argc) > systrace\n'> <'\t\tprintf("\\t\\tbreak;\\n") > systracetmp\n'> <'\t\tif (argc != 0 && !flag("NOARGS") && !flag("NOPROTO") && \\\n'> <'\t\t !flag("NODEF")) {\n'> <'\t\t\tprintf("struct %s {\\n", argalias) > sysarg\n'> <'\t\t\tfor (i = 1; i <= argc; i++)\n'> <'\t\t\t\tprintf("\\tchar %s_l_[PADL_(%s)]; " \\\n'> <'\t\t\t\t "%s %s; char %s_r_[PADR_(%s)];\\n",\n'> <'\t\t\t\t argname[i], argtype[i],\n'> <'\t\t\t\t argtype[i], argname[i],\n'> <'\t\t\t\t argname[i], argtype[i]) > sysarg\n'> <'\t\t\tprintf("};\\n") > sysarg\n'> <'\t\t}\n'> <'\t\telse if (!flag("NOARGS") && !flag("NOPROTO") && !flag("NODEF"))\n'> <'\t\t\tprintf("struct %s {\\n\\tregister_t dummy;\\n};\\n",\n'> <'\t\t\t argalias) > sysarg\n'> <'\t\tif (!flag("NOPROTO") && !flag("NODEF")) {\n'> <'\t\t\tif (funcname == "nosys" || funcname == "lkmnosys" ||\n'> <'\t\t\t funcname == "sysarch" || funcname ~ /^freebsd/ || \n'> <'\t\t\t funcname ~ /^linux/ || funcname ~ /^svr4/ || \n'> <'\t\t\t funcname ~ /^ibcs2/ || funcname ~ /^xenix/ ||\n'> <'\t\t\t funcname ~ /^cloudabi/) {\n'> <'\t\t\t\tprintf("%s\\t%s(struct thread *, struct %s *)",\n'> <'\t\t\t\t rettype, funcname, argalias) > sysdcl\n'> <'\t\t\t} else {\n'> <'\t\t\t\tprintf("%s\\tsys_%s(struct thread *, struct %s *)",\n'> <'\t\t\t\t rettype, funcname, argalias) > sysdcl\n'> <'\t\t\t} \n'> <'\t\t\tprintf(";\\n") > sysdcl\n'> <'\t\t\tprintf("#define\\t%sAUE_%s\\t%s\\n", syscallprefix,\n'> <'\t\t\t funcalias, auditev) > sysaue\n'> <'\t\t}\n'> <'\t\tprintf("\\t{ %s, (sy_call_t *)", argssize) > sysent\n'> <'\t\tcolumn = 8 + 2 + length(argssize) + 15\n'> <'\t\tif (flag("NOSTD")) {\n'> < '\t\t\tprintf("lkmressys, AUE_NULL, NULL, 0, 0, %s, SY_THR_ABSENT },", flags) > sysent\n' > <'\t\t\tcolumn = column + length("lkmressys") + length("AUE_NULL") + 3\n'> <'\t\t} else {\n'> <'\t\t\tif (funcname == "nosys" || funcname == "sysarch" || \n'> <'\t\t\t funcname == "lkmnosys" || funcname ~ /^freebsd/ ||\n'> <'\t\t\t funcname ~ /^linux/ || funcname ~ /^svr4/ ||\n'> <'\t\t\t funcname ~ /^ibcs2/ || funcname ~ /^xenix/ ||\n'> <'\t\t\t funcname ~ /^cloudabi/) {\n'> <'\t\t\t\tprintf("%s, %s, NULL, 0, 0, %s, %s },", funcname, auditev, flags, thr_flag) > sysent\n'> < '\t\t\t\tcolumn = column + length(funcname) + length(auditev) + length(flags) + 3 \n' > <'\t\t\t} else {\n'> < '\t\t\t\tprintf("sys_%s, %s, NULL, 0, 0, %s, %s },", funcname, auditev, flags, thr_flag) > sysent\n' > <'\t\t\t\tcolumn = column + length(funcname) + length(auditev) + length(flags) + 3 + 4\n'> <'\t\t\t} \n'> <'\t\t} \n'> <'\t\talign_sysent_comment(column)\n'> <'\t\tprintf("/* %d = %s */\\n", syscall, funcalias) > sysent\n'> <'\t\tprintf("\\t\\"%s\\",\\t\\t\\t/* %d = %s */\\n",\n'> <'\t\t funcalias, syscall, funcalias) > sysnames\n'> <'\t\tif (!flag("NODEF")) {\n'> <'\t\t\tprintf("#define\\t%s%s\\t%d\\n", syscallprefix,\n'> <'\t\t \t funcalias, syscall) > syshdr\n'> <'\t\t\tprintf(" \\\\\\n\\t%s.o", funcalias) > sysmk\n'> <'\t\t}\n'> <'\t\tsyscall++\n'> <'\t\tnext\n'> <'\t}\n'> <'\ttype("COMPAT") || type("COMPAT4") || type("COMPAT6") || \\\n'> <'\t type("COMPAT7") || type("COMPAT10") {\n'> <'\t\tif (flag("COMPAT")) {\n'> <'\t\t\tncompat++\n'> <'\t\t\tout = syscompat\n'> <'\t\t\toutdcl = syscompatdcl\n'> <'\t\t\twrap = "compat"\n'> <'\t\t\tprefix = "o"\n'> <'\t\t\tdescr = "old"\n'> <'\t\t} else if (flag("COMPAT4")) {\n'> <'\t\t\tncompat4++\n'> <'\t\t\tout = syscompat4\n'> <'\t\t\toutdcl = syscompat4dcl\n'> <'\t\t\twrap = "compat4"\n'> <'\t\t\tprefix = "freebsd4_"\n'> <'\t\t\tdescr = "freebsd4"\n'> <'\t\t} else if (flag("COMPAT6")) {\n'> <'\t\t\tncompat6++\n'> <'\t\t\tout = syscompat6\n'> <'\t\t\toutdcl = syscompat6dcl\n'> <'\t\t\twrap = "compat6"\n'> <'\t\t\tprefix = "freebsd6_"\n'> <'\t\t\tdescr = "freebsd6"\n'> <'\t\t} else if (flag("COMPAT7")) {\n'> <'\t\t\tncompat7++\n'> <'\t\t\tout = syscompat7\n'> <'\t\t\toutdcl = syscompat7dcl\n'> <'\t\t\twrap = "compat7"\n'> <'\t\t\tprefix = "freebsd7_"\n'> <'\t\t\tdescr = "freebsd7"\n'> <'\t\t} else if (flag("COMPAT10")) {\n'> <'\t\t\tncompat10++\n'> <'\t\t\tout = syscompat10\n'> <'\t\t\toutdcl = syscompat10dcl\n'> <'\t\t\twrap = "compat10"\n'> <'\t\t\tprefix = "freebsd10_"\n'> <'\t\t\tdescr = "freebsd10"\n'> <'\t\t}\n'> <'\t\tparseline()\n'> <'\t\tif (argc != 0 && !flag("NOARGS") && !flag("NOPROTO") && \\\n'> <'\t\t !flag("NODEF")) {\n'> <'\t\t\tprintf("struct %s {\\n", argalias) > out\n'> <'\t\t\tfor (i = 1; i <= argc; i++)\n'> <'\t\t\t\tprintf("\\tchar %s_l_[PADL_(%s)]; %s %s; " \\\n'> <'\t\t\t\t "char %s_r_[PADR_(%s)];\\n",\n'> <'\t\t\t\t argname[i], argtype[i],\n'> <'\t\t\t\t argtype[i], argname[i],\n'> <'\t\t\t\t argname[i], argtype[i]) > out\n'> <'\t\t\tprintf("};\\n") > out\n'> <'\t\t}\n'> <'\t\telse if (!flag("NOARGS") && !flag("NOPROTO") && !flag("NODEF"))\n'> <'\t\t\tprintf("struct %s {\\n\\tregister_t dummy;\\n};\\n",\n'> <'\t\t\t argalias) > sysarg\n'> <'\t\tif (!flag("NOPROTO") && !flag("NODEF")) {\n'> <'\t\t\tprintf("%s\\t%s%s(struct thread *, struct %s *);\\n",\n'> <'\t\t\t rettype, prefix, funcname, argalias) > outdcl\n'> <'\t\t\tprintf("#define\\t%sAUE_%s%s\\t%s\\n", syscallprefix,\n'> <'\t\t\t prefix, funcname, auditev) > sysaue\n'> <'\t\t}\n'> <'\t\tif (flag("NOSTD")) {\n'> <'\t\t\tprintf("\\t{ %s, (sy_call_t *)%s, %s, NULL, 0, 0, 0, SY_THR_ABSENT },",\n'> <'\t\t\t "0", "lkmressys", "AUE_NULL") > sysent\n'> <'\t\t\talign_sysent_comment(8 + 2 + length("0") + 15 + \\\n'> <'\t\t\t length("lkmressys") + length("AUE_NULL") + 3)\n'> <'\t\t} else {\n'> <'\t\t\tprintf("\\t{ %s(%s,%s), %s, NULL, 0, 0, %s, %s },",\n'> <'\t\t\t wrap, argssize, funcname, auditev, flags, thr_flag) > sysent\n'> <'\t\t\talign_sysent_comment(8 + 9 + length(argssize) + 1 + \\\n'> <'\t\t\t length(funcname) + length(auditev) + \\\n'> <'\t\t\t length(flags) + 4)\n'> <'\t\t}\n'> <'\t\tprintf("/* %d = %s %s */\\n", syscall, descr, funcalias) > sysent\n'> <'\t\tprintf("\\t\\"%s.%s\\",\\t\\t/* %d = %s %s */\\n",\n'> <'\t\t wrap, funcalias, syscall, descr, funcalias) > sysnames\n'> <'\t\t# Do not provide freebsdN_* symbols in libc for < FreeBSD 7\n'> <'\t\tif (flag("COMPAT") || flag("COMPAT4") || flag("COMPAT6")) {\n'> <'\t\t\tprintf("\\t\\t\\t\\t/* %d is %s %s */\\n",\n'> <'\t\t\t syscall, descr, funcalias) > syshdr\n'> <'\t\t} else if (!flag("NODEF")) {\n'> <'\t\t\tprintf("#define\\t%s%s%s\\t%d\\n", syscallprefix,\n'> <'\t\t\t prefix, funcalias, syscall) > syshdr\n'> <'\t\t\tprintf(" \\\\\\n\\t%s%s.o", prefix, funcalias) > sysmk\n'> <'\t\t}\n'> <'\t\tsyscall++\n'> <'\t\tnext\n'> <'\t}\n'> <'\ttype("OBSOL") {\n'> < '\t\tprintf("\\t{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },") > sysent\n' > <'\t\talign_sysent_comment(34)\n'> <'\t\tprintf("/* %d = obsolete %s */\\n", syscall, comment) > sysent\n'> <'\t\tprintf("\\t\\"obs_%s\\",\\t\\t\\t/* %d = obsolete %s */\\n",\n'> <'\t\t $4, syscall, comment) > sysnames\n'> <'\t\tprintf("\\t\\t\\t\\t/* %d is obsolete %s */\\n",\n'> <'\t\t syscall, comment) > syshdr\n'> <'\t\tsyscall++\n'> <'\t\tnext\n'> <'\t}\n'> <'\ttype("UNIMPL") {\n'> < '\t\tprintf("\\t{ 0, (sy_call_t *)nosys, AUE_NULL, NULL, 0, 0, 0, SY_THR_ABSENT },\\t\\t\\t/* %d = %s */\\n",\n' > <'\t\t syscall, comment) > sysent\n'> <'\t\tprintf("\\t\\"#%d\\",\\t\\t\\t/* %d = %s */\\n",\n'> <'\t\t syscall, syscall, comment) > sysnames\n'> <'\t\tsyscall++\n'> <'\t\tnext\n'> <'\t}\n'> <'\t{\n'> <'\t\tprintf "%s: line %d: unrecognized keyword %s\\n", infile, NR, $3\n'> <'\t\texit 1\n'> <'\t}\n'> <'\tEND {\n'> < '\t\tprintf "\\n#define AS(name) (sizeof(struct name) / sizeof(register_t))\\n" > sysinc\n' > <'\n'> < '\t\tif (ncompat != 0 || ncompat4 != 0 || ncompat6 != 0 || ncompat7 != 0 || ncompat10 != 0)\n' > <'\t\t\tprintf "#include \\"opt_compat.h\\"\\n\\n" > syssw\n'> <'\n'> <'\t\tif (ncompat != 0) {\n'> <'\t\t\tprintf "\\n#ifdef %s\\n", compat > sysinc\n'> <'\t\t\tprintf "#define compat(n, name) n, (sy_call_t *)__CONCAT(o,name)\\n" > sysinc\n'> <'\t\t\tprintf "#else\\n" > sysinc\n'> <'\t\t\tprintf "#define compat(n, name) 0, (sy_call_t *)nosys\\n" > sysinc\n'> <'\t\t\tprintf "#endif\\n" > sysinc\n'> <'\t\t}\n'> <'\n'> <'\t\tif (ncompat4 != 0) {\n'> <'\t\t\tprintf "\\n#ifdef %s\\n", compat4 > sysinc\n'> < '\t\t\tprintf "#define compat4(n, name) n, (sy_call_t *)__CONCAT(freebsd4_,name)\\n" > sysinc\n' > <'\t\t\tprintf "#else\\n" > sysinc\n'> <'\t\t\tprintf "#define compat4(n, name) 0, (sy_call_t *)nosys\\n" > sysinc\n'> <'\t\t\tprintf "#endif\\n" > sysinc\n'> <'\t\t}\n'> <'\n'> <'\t\tif (ncompat6 != 0) {\n'> <'\t\t\tprintf "\\n#ifdef %s\\n", compat6 > sysinc\n'> <'\t\t\tprintf "#define compat6(n, name) n, (sy_call_t *)__CONCAT(freebsd6_,name)\\n" > sysinc\n'> <'\t\t\tprintf "#else\\n" > sysinc\n'> <'\t\t\tprintf "#define compat6(n, name) 0, (sy_call_t *)nosys\\n" > sysinc\n'> <'\t\t\tprintf "#endif\\n" > sysinc\n'> <'\t\t}\n'> <'\n'> <'\t\tif (ncompat7 != 0) {\n'> <'\t\t\tprintf "\\n#ifdef %s\\n", compat7 > sysinc\n'> < '\t\t\tprintf "#define compat7(n, name) n, (sy_call_t *)__CONCAT(freebsd7_,name)\\n" > sysinc\n' > <'\t\t\tprintf "#else\\n" > sysinc\n'> <'\t\t\tprintf "#define compat7(n, name) 0, (sy_call_t *)nosys\\n" > sysinc\n'> <'\t\t\tprintf "#endif\\n" > sysinc\n'> <'\t\t}\n'> <'\t\tif (ncompat10 != 0) {\n'> <'\t\t\tprintf "\\n#ifdef %s\\n", compat10 > sysinc\n'> <'\t\t\tprintf "#define compat10(n, name) n, (sy_call_t *)__CONCAT(freebsd10_,name)\\n" > sysinc\n'> <'\t\t\tprintf "#else\\n" > sysinc\n'> <'\t\t\tprintf "#define compat10(n, name) 0, (sy_call_t *)nosys\\n" > sysinc\n'> <'\t\t\tprintf "#endif\\n" > sysinc\n'> <'\t\t}\n'> <'\t\tprintf("\\n#endif /* %s */\\n\\n", compat) > syscompatdcl\n'> <'\t\tprintf("\\n#endif /* %s */\\n\\n", compat4) > syscompat4dcl\n'> <'\t\tprintf("\\n#endif /* %s */\\n\\n", compat6) > syscompat6dcl\n'> <'\t\tprintf("\\n#endif /* %s */\\n\\n", compat7) > syscompat7dcl\n'> <'\t\tprintf("\\n#endif /* %s */\\n\\n", compat10) > syscompat10dcl\n'> <'\n'> <'\t\tprintf("\\n#undef PAD_\\n") > sysprotoend\n'> <'\t\tprintf("#undef PADL_\\n") > sysprotoend\n'> <'\t\tprintf("#undef PADR_\\n") > sysprotoend\n'> <'\t\tprintf("\\n#endif /* !%s */\\n", sysproto_h) > sysprotoend\n'> <'\n'> <'\t\tprintf("\\n") > sysmk\n'> <'\t\tprintf("};\\n") > sysent\n'> <'\t\tprintf("};\\n") > sysnames\n'> <'\t\tprintf("#define\\t%sMAXSYSCALL\\t%d\\n", syscallprefix, syscall) \\\n'> <'\t\t > syshdr\n'> < '\t\tprintf "\\tdefault:\\n\\t\\t*n_args = 0;\\n\\t\\tbreak;\\n\\t};\\n}\\n" > systrace\n' > < '\t\tprintf "\\tdefault:\\n\\t\\tbreak;\\n\\t};\\n\\tif (p != NULL)\\n\\t\\tstrlcpy(desc, p, descsz);\\n}\\n" > systracetmp\n' > < '\t\tprintf "\\tdefault:\\n\\t\\tbreak;\\n\\t};\\n\\tif (p != NULL)\\n\\t\\tstrlcpy(desc, p, descsz);\\n}\\n" > systraceret\n' > <'\t} '> ) } ) ] negated: F ) (SimpleCommand words: [{(cat)} {($ VSub_Name '$sysinc')} {($ VSub_Name '$sysent')}] redirects: [(Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{($ VSub_Name '$syssw')})] ) (SimpleCommand words: [ {(cat)} {($ VSub_Name '$sysarg')} {($ VSub_Name '$sysdcl')} {($ VSub_Name '$syscompat')} {($ VSub_Name '$syscompatdcl')} {($ VSub_Name '$syscompat4')} {($ VSub_Name '$syscompat4dcl')} {($ VSub_Name '$syscompat6')} {($ VSub_Name '$syscompat6dcl')} {($ VSub_Name '$syscompat7')} {($ VSub_Name '$syscompat7dcl')} {($ VSub_Name '$syscompat10')} {($ VSub_Name '$syscompat10dcl')} {($ VSub_Name '$sysaue')} {($ VSub_Name '$sysprotoend')} ] redirects: [(Redir op:<Redir_Great '>'> fd:16777215 arg_word:{($ VSub_Name '$sysproto')})] ) (SimpleCommand words: [{(cat)} {($ VSub_Name '$systracetmp')}] redirects: [(Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{($ VSub_Name '$systrace')})] ) (SimpleCommand words: [{(cat)} {($ VSub_Name '$systraceret')}] redirects: [(Redir op:<Redir_DGreat '>>'> fd:16777215 arg_word:{($ VSub_Name '$systrace')})] ) ] )