(command.CommandList children: [ (C {(Id.KW_Set set)} {(-e)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cur_ksyms_file) op: assign_op.Equal rhs: {(DQ (include/generated/autoksyms.h))} spids: [59] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:new_ksyms_file) op: assign_op.Equal rhs: {(DQ (include/generated/autoksyms.h.tmpnew))} spids: [64] ) ] ) (command.ShFunction name: info body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(DQ ($ Id.VSub_DollarName '$quiet'))} {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {(DQ (silent_))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:93) ) ] action: [ (C {(printf)} {(DQ (' %-7s %s') (Id.Lit_Other '\\') (n))} {(DQ ($ Id.VSub_Number '$1'))} {(DQ ($ Id.VSub_Number '$2'))} ) ] spids: [77 95] ) ] ) ] ) ) (C {(info)} {(DQ (CHK))} {(DQ ($ Id.VSub_DollarName '$cur_ksyms_file'))}) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$KBUILD_VERBOSE'))} arms: [ (case_arm pat_list: [{(Id.Lit_Star '*') (1) (Id.Lit_Star '*')}] action: [(C {(Id.KW_Set set)} {(-x)})] spids: [142 145 153 -1] ) ] ) (command.Case to_match: {(DQ (${ Id.VSub_Name KCONFIG_CONFIG))} arms: [ (case_arm pat_list: [{(Id.Lit_Star '*') (/) (Id.Lit_Star '*')}] action: [(C {(.)} {(DQ (${ Id.VSub_Name KCONFIG_CONFIG))})] spids: [171 174 186 -1] ) (case_arm pat_list: [{(Id.Lit_Star '*')}] action: [(C {(.)} {(DQ (./) (${ Id.VSub_Name KCONFIG_CONFIG))})] spids: [188 189 -1 205] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-e)} {(DQ ($ Id.VSub_DollarName '$cur_ksyms_file'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:222) ) ] action: [ (command.Sentence child: (C {(touch)} {(DQ ($ Id.VSub_DollarName '$cur_ksyms_file'))}) terminator: (Token id:Id.Op_Semi val:';' span_id:231) ) ] spids: [211 224] ) ] ) (command.Simple words: [{(cat)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:244) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$new_ksyms_file'))} ) (redir.HereDoc op: (Token id:Id.Redir_DLess val:'<<' span_id:250) fd: -1 here_begin: {(EOT)} here_end_span_id: 259 stdin_parts: [('/*\n') (' * Automatically generated file; DO NOT EDIT.\n') (' */\n') ('\n')] ) ] ) (command.Pipeline children: [ (C {(sed)} {(-ns)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'3{s/ /\\n/g;/^$/!p;}' span_id:267))} {(DQ ($ Id.VSub_DollarName '$MODVERDIR')) (/) (Id.Lit_Star '*') (.mod)} ) (C {(sort)} {(-u)}) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:285) cond: [ (command.Sentence child: (C {(read)} {(sym)}) terminator: (Token id:Id.Op_Semi val:';' span_id:290) ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$CONFIG_HAVE_UNDERSCORE_SYMBOL_PREFIX'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:306) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:sym) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:sym span_id:314) suffix_op: (suffix_op.Unary op_id:Id.VOp1_Pound arg_word:{(_)}) ) ) } spids: [311] ) ] ) ] spids: [295 308] ) ] ) (C {(echo)} {(DQ ('#define __KSYM_') (${ Id.VSub_Name sym) (' 1'))}) ] ) redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:336) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$new_ksyms_file'))} ) ] ) ] negated: F ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-n)} {(DQ ($ Id.VSub_DollarName '$CONFIG_MODVERSIONS'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:357) ) ] action: [ (command.Simple words: [{(echo)} {(DQ ('#define __KSYM_module_layout 1'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_DGreat val:'>>' span_id:368) fd: -1 arg_word: {(DQ ($ Id.VSub_DollarName '$new_ksyms_file'))} ) ] ) ] spids: [346 359] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:changed) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:384) command_list: (command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:count) op: assign_op.Equal rhs: {(0)} spids: [386] ) ] ) (command.Pipeline children: [ (C {(sort)} {(DQ ($ Id.VSub_DollarName '$cur_ksyms_file'))} {(DQ ($ Id.VSub_DollarName '$new_ksyms_file'))} ) (C {(uniq)} {(-u)}) (C {(sed)} {(-n)} { (SQ (Token id: Id.Lit_Chars val: 's/^#define __KSYM_\\(.*\\) 1/\\1/p' span_id: 412 ) ) } ) (C {(tr)} {(DQ (A-Z_))} {(DQ (a-z/))}) (command.WhileUntil keyword: (Token id:Id.KW_While val:while span_id:429) cond: [ (command.Sentence child: (C {(read)} {(sympath)}) terminator: (Token id:Id.Op_Semi val:';' span_id:434) ) ] body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-z)} {(DQ ($ Id.VSub_DollarName '$sympath'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:450) ) ] action: [ (command.Sentence child: (command.ControlFlow token: (Token id: Id.ControlFlow_Continue val: continue span_id: 454 ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:455) ) ] spids: [439 452] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:depfile) op: assign_op.Equal rhs: {(DQ (include/config/ksym/) (${ Id.VSub_Name sympath) (.h))} spids: [460] ) ] ) (C {(mkdir)} {(-p)} { (DQ (command_sub left_token: (Token id: Id.Left_DollarParen val: '$(' span_id: 475 ) command_list: (command.CommandList children: [ (C {(dirname)} {(DQ ($ Id.VSub_DollarName '$depfile'))}) ] ) ) ) } ) (C {(touch)} {(DQ ($ Id.VSub_DollarName '$depfile'))}) (C {(echo)} { (word_part.ArithSub anode: (arith_expr.BinaryAssign op_id: Id.Arith_PlusEqual left: (sh_lhs_expr.Name name:count) right: (arith_expr.ArithWord w:{(Id.Lit_Digits 1)}) ) ) } ) ] ) ) (C {(tail)} {(-1)}) ] negated: F ) ] ) ) } spids: [383] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:changed) op: assign_op.Equal rhs: { (braced_var_sub token: (Token id:Id.VSub_Name val:changed span_id:515) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:{(0)}) ) } spids: [513] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {($ Id.VSub_DollarName '$changed')} {(-gt)} {(0)} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:532) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:old) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:542) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(grep)} {(-c)} {(DQ ('^#define __KSYM_'))} {(DQ ($ Id.VSub_DollarName '$cur_ksyms_file'))} ) (C {(true)}) ] ) ] ) ) } spids: [541] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:new) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:562) command_list: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {(grep)} {(-c)} {(DQ ('^#define __KSYM_'))} {(DQ ($ Id.VSub_DollarName '$new_ksyms_file'))} ) (C {(true)}) ] ) ] ) ) } spids: [561] ) ] ) (C {(info)} {(DQ (KSYMS))} { (DQ ('symbols: before=') ($ Id.VSub_DollarName '$old') (', after=') ($ Id.VSub_DollarName '$new') (', changed=') ($ Id.VSub_DollarName '$changed') ) } ) (C {(info)} {(DQ (UPD))} {(DQ ($ Id.VSub_DollarName '$cur_ksyms_file'))}) (C {(mv)} {(-f)} {(DQ ($ Id.VSub_DollarName '$new_ksyms_file'))} {(DQ ($ Id.VSub_DollarName '$cur_ksyms_file'))} ) (C {(exec)} {($ Id.VSub_At '$@')}) ] spids: [521 534] ) ] else_action: [(C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$new_ksyms_file'))})] ) ] )