#!/bin/sh global in := $1 global out := $2 global my_abis := $[echo "($3)" | tr ',' '|] global prefix := $4 global offset := $5 global fileguard := "_ASM_X86_$[basename $out | sed \ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' \ -e 's/[^A-Z0-9_]/_/g' -e 's/__/_/g]" grep -E "^[0-9A-Fa-fXx]+[[:space:]]+$(my_abis)" $in | sort -n | shell { echo "#ifndef $(fileguard)" echo "#define $(fileguard) 1" echo "" while read nr abi name entry { if test -z $offset { echo "#define __NR_$(prefix)$(name) $nr" } else { echo "#define __NR_$(prefix)$(name) ($offset + $nr)" } } echo "" echo "#endif /* $(fileguard) */" } > "$out" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:in) op:Equal rhs:{(DQ ($ VSub_Number "$1"))} spids:[4])] spids: [4] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:out) op:Equal rhs:{(DQ ($ VSub_Number "$2"))} spids:[9])] spids: [9] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:my_abis) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ("(") ($ VSub_Number "$3") (")"))}) (C {(tr)} {(SQ <",">)} {(SQ <"|">)}) ] negated: False ) ] ) left_token: spids: [15 35] ) } spids: [14] ) ] spids: [14] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prefix) op: Equal rhs: {(DQ ($ VSub_Number "$4"))} spids: [37] ) ] spids: [37] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:offset) op: Equal rhs: {(DQ ($ VSub_Number "$5"))} spids: [42] ) ] spids: [42] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:fileguard) op: Equal rhs: {(_ASM_X86_) (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(basename)} {(DQ ($ VSub_Name "$out"))}) (C {(sed)} {(-e)} {(SQ )} {(-e)} {(SQ <"s/[^A-Z0-9_]/_/g">)} {(-e)} {(SQ )} ) ] negated: False ) ] ) left_token: spids: [50 82] ) } spids: [48] ) ] spids: [48] ) (Pipeline children: [ (C {(grep)} {(-E)} {(DQ ("^[0-9A-Fa-fXx]+[[:space:]]+") (${ VSub_Name my_abis))} {(DQ ($ VSub_Name "$in"))} ) (C {(sort)} {(-n)}) (Subshell child: (CommandList children: [ (C {(echo)} {(DQ ("#ifndef ") (${ VSub_Name fileguard))}) (C {(echo)} {(DQ ("#define ") (${ VSub_Name fileguard) (" 1"))}) (C {(echo)} {(DQ )}) (While cond: [ (Sentence child: (C {(read)} {(nr)} {(abi)} {(name)} {(entry)}) terminator: ) ] body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$offset"))} {(Lit_Other "]")} ) terminator: ) ] action: [ (C {(echo)} { (DQ ("#define __NR_") (${ VSub_Name prefix) (${ VSub_Name name) (" ") ($ VSub_Name "$nr") ) } ) ] spids: [-1 168] ) ] else_action: [ (C {(echo)} { (DQ ("#define __NR_") (${ VSub_Name prefix) (${ VSub_Name name) (" (") ($ VSub_Name "$offset") (" + ") ($ VSub_Name "$nr") (")") ) } ) ] spids: [186 207] ) ] spids: [152 210] ) ) (C {(echo)} {(DQ )}) (C {(echo)} {(DQ ("#endif /* ") (${ VSub_Name fileguard) (" */"))}) ] ) redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$out"))} spids: [232] ) ] spids: [107 230] ) ] negated: False ) ] )