'/*\n * "Copyright (c) 2008 The Regents of the University of California.\n * All rights reserved."\n *\n * Permission to use, copy, modify, and distribute this software and its\n * documentation for any purpose, without fee, and without written agreement is\n * hereby granted, provided that the above copyright notice, the following\n * two paragraphs and the author appear in all copies of this software.\n *\n * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR\n * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT\n * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF\n * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,\n * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS\n * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO\n * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."\n *\n */' Comment.Multiline '\n' Text.Whitespace '\n' Text.Whitespace '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '' Comment.PreprocFile '\n' Comment.Preproc '\n' Text.Whitespace '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '"blip_printf.h"' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '"IPDispatch.h"' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '"BlipStatistics.h"' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '"table.h"' Comment.PreprocFile '\n' Comment.Preproc '\n' Text.Whitespace '/*\n * Provides IP layer reception to applications on motes.\n *\n * @author Stephen Dawson-Haggerty \n */' Comment.Multiline '\n' Text.Whitespace '\n' Text.Whitespace 'module' Keyword ' ' Text.Whitespace 'IPDispatchP' Name ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'provides' Keyword ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'SplitControl' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '// interface for protocols not requiring special hand-holding\n' Comment.Single ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'IPLower' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'BlipStatistics' Name '<' Operator 'ip_statistics_t' Name '>' Operator ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'uses' Keyword ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'Boot' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/* link-layer wiring */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'SplitControl' Name ' ' Text.Whitespace 'as' Keyword ' ' Text.Whitespace 'RadioControl' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'Packet' Name ' ' Text.Whitespace 'as' Keyword ' ' Text.Whitespace 'BarePacket' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'Send' Name ' ' Text.Whitespace 'as' Keyword ' ' Text.Whitespace 'Ieee154Send' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'Receive' Name ' ' Text.Whitespace 'as' Keyword ' ' Text.Whitespace 'Ieee154Receive' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/* context lookup */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'NeighborDiscovery' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'ReadLqi' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'PacketLink' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'LowPowerListening' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/* buffers for outgoing fragments */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'Pool' Name '<' Operator 'message_t' Name '>' Operator ' ' Text.Whitespace 'as' Keyword ' ' Text.Whitespace 'FragPool' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'Pool' Name '<' Operator 'struct' Keyword ' ' Text 'send_info' Name.Class '>' Operator ' ' Text.Whitespace 'as' Keyword ' ' Text.Whitespace 'SendInfoPool' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'Pool' Name '<' Operator 'struct' Keyword ' ' Text 'send_entry' Name.Class '>' Operator ' ' Text.Whitespace 'as' Keyword ' ' Text.Whitespace 'SendEntryPool' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'Queue' Name '<' Operator 'struct' Keyword ' ' Text 'send_entry' Name.Class ' ' Text.Whitespace '*' Operator '>' Operator ' ' Text.Whitespace 'as' Keyword ' ' Text.Whitespace 'SendQueue' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/* expire reconstruction */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'Timer' Name '<' Operator 'TMilli' Name '>' Operator ' ' Text.Whitespace 'as' Keyword ' ' Text.Whitespace 'ExpireTimer' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'Leds' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'provides' Keyword ' ' Text.Whitespace 'interface' Keyword ' ' Text.Whitespace 'Init' Name ';' Punctuation '\n' Text.Whitespace '}' Punctuation ' ' Text.Whitespace 'implementation' Keyword ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace '#' Comment.Preproc 'define HAVE_LOWPAN_EXTERN_MATCH_CONTEXT' Comment.Preproc '\n' Comment.Preproc 'int' Keyword.Type ' ' Text.Whitespace 'lowpan_extern_read_context' Name.Function '(' Punctuation 'struct' Keyword ' ' Text 'in6_addr' Name.Class ' ' Text.Whitespace '*' Operator 'addr' Name ',' Punctuation ' ' Text.Whitespace 'int' Keyword.Type ' ' Text.Whitespace 'context' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'NeighborDiscovery' Name '.' Punctuation 'getContext' Name '(' Punctuation 'context' Name ',' Punctuation ' ' Text.Whitespace 'addr' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace 'int' Keyword.Type ' ' Text.Whitespace 'lowpan_extern_match_context' Name.Function '(' Punctuation 'struct' Keyword ' ' Text 'in6_addr' Name.Class ' ' Text.Whitespace '*' Operator 'addr' Name ',' Punctuation ' ' Text.Whitespace 'uint8_t' Keyword.Type ' ' Text.Whitespace '*' Operator 'ctx_id' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'NeighborDiscovery' Name '.' Punctuation 'matchContext' Name '(' Punctuation 'addr' Name ',' Punctuation ' ' Text.Whitespace 'ctx_id' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace "// generally including source files like this is a no-no. I'm doing\n" Comment.Single ' ' Text.Whitespace '// this in the hope that the optimizer will do a better job when\n' Comment.Single ' ' Text.Whitespace "// they're part of a component.\n" Comment.Single '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '' Comment.PreprocFile '\n' Comment.Preproc '#' Comment.Preproc 'include' Comment.Preproc ' ' Text.Whitespace '' Comment.PreprocFile '\n' Comment.Preproc '\n' Text.Whitespace ' ' Text.Whitespace 'enum' Keyword ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'S_RUNNING' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'S_STOPPED' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'S_STOPPING' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'uint8_t' Keyword.Type ' ' Text.Whitespace 'state' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'S_STOPPED' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'bool' Keyword.Type ' ' Text.Whitespace 'radioBusy' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'uint8_t' Keyword.Type ' ' Text.Whitespace 'current_local_label' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'ip_statistics_t' Name ' ' Text.Whitespace 'stats' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '// this in theory could be arbitrarily large; however, it needs to\n' Comment.Single ' ' Text.Whitespace '// be large enough to hold all active reconstructions, and any tags\n' Comment.Single ' ' Text.Whitespace "// which we are dropping. It's important to keep dropped tags\n" Comment.Single ' ' Text.Whitespace '// around for a while, or else there are pathological situations\n' Comment.Single ' ' Text.Whitespace '// where you continually allocate buffers for packets which will\n' Comment.Single ' ' Text.Whitespace '// never complete.\n' Comment.Single '\n' Text.Whitespace ' ' Text.Whitespace '////////////////////////////////////////\n' Comment.Single ' ' Text.Whitespace '//\n' Comment.Single ' ' Text.Whitespace '//\n' Comment.Single '\n' Text.Whitespace ' ' Text.Whitespace 'table_t' Name ' ' Text.Whitespace 'recon_cache' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '// table of packets we are currently receiving fragments from, that\n' Comment.Single ' ' Text.Whitespace '// are destined to us\n' Comment.Single ' ' Text.Whitespace 'struct' Keyword ' ' Text 'lowpan_reconstruct' Name.Class ' ' Text.Whitespace 'recon_data' Name '[' Punctuation 'N_RECONSTRUCTIONS' Name ']' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '//\n' Comment.Single ' ' Text.Whitespace '//\n' Comment.Single ' ' Text.Whitespace '////////////////////////////////////////\n' Comment.Single '\n' Text.Whitespace ' ' Text.Whitespace '// task void sendTask();\n' Comment.Single '\n' Text.Whitespace ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace 'reconstruct_clear' Name.Function '(' Punctuation 'void' Keyword.Type ' ' Text.Whitespace '*' Operator 'ent' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'lowpan_reconstruct' Name.Class ' ' Text.Whitespace '*' Operator 'recon' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '(' Punctuation 'struct' Keyword ' ' Text 'lowpan_reconstruct' Name.Class ' ' Text.Whitespace '*' Operator ')' Punctuation 'ent' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'memclr' Name '(' Punctuation '(' Punctuation 'uint8_t' Keyword.Type ' ' Text.Whitespace '*' Operator ')' Punctuation '&' Operator 'recon' Name '-' Operator '>' Operator 'r_meta' Name ',' Punctuation ' ' Text.Whitespace 'sizeof' Keyword '(' Punctuation 'struct' Keyword ' ' Text 'ip6_metadata' Name.Class ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_timeout' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'T_UNUSED' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_buf' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'send_info' Name.Class ' ' Text.Whitespace '*' Operator 'getSendInfo' Name '(' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'send_info' Name.Class ' ' Text.Whitespace '*' Operator 'ret' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendInfoPool' Name '.' Punctuation 'get' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'ret' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ')' Punctuation ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'ret' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'ret' Name '-' Operator '>' Operator '_refcount' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '1' Literal.Number.Integer ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'ret' Name '-' Operator '>' Operator 'upper_data' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'ret' Name '-' Operator '>' Operator 'failed' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'FALSE' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'ret' Name '-' Operator '>' Operator 'link_transmissions' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'ret' Name '-' Operator '>' Operator 'link_fragments' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'ret' Name '-' Operator '>' Operator 'link_fragment_attempts' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'ret' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '#' Comment.Preproc 'define SENDINFO_INCR(X) ((X)->_refcount)++' Comment.Preproc '\n' Comment.Preproc 'void' Keyword.Type ' ' Text.Whitespace 'SENDINFO_DECR' Name '(' Punctuation 'struct' Keyword ' ' Text 'send_info' Name.Class ' ' Text.Whitespace '*' Operator 'si' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation '-' Operator '-' Operator '(' Punctuation 'si' Name '-' Operator '>' Operator '_refcount' Name ')' Punctuation ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendInfoPool' Name '.' Punctuation 'put' Name '(' Punctuation 'si' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'command' Keyword ' ' Text.Whitespace 'error_t' Name ' ' Text.Whitespace 'SplitControl' Name '.' Punctuation 'start' Name '(' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'RadioControl' Name '.' Punctuation 'start' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'command' Keyword ' ' Text.Whitespace 'error_t' Name ' ' Text.Whitespace 'SplitControl' Name '.' Punctuation 'stop' Name '(' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation '!' Operator 'radioBusy' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'state' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'S_STOPPED' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'RadioControl' Name '.' Punctuation 'stop' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation ' ' Text.Whitespace 'else' Keyword ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace "// if there's a packet in the radio, wait for it to exit before\n" Comment.Single ' ' Text.Whitespace '// stopping\n' Comment.Single ' ' Text.Whitespace 'state' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'S_STOPPING' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'SUCCESS' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'event' Keyword ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace 'RadioControl' Name '.' Punctuation 'startDone' Name '(' Punctuation 'error_t' Name ' ' Text.Whitespace 'error' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace '#' Comment.Preproc 'ifdef LPL_SLEEP_INTERVAL' Comment.Preproc '\n' Comment.Preproc ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'LowPowerListening' Name '.' Punctuation 'setLocalWakeupInterval' Name '(' Punctuation 'LPL_SLEEP_INTERVAL' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'error' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'SUCCESS' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'Leds' Name '.' Punctuation 'led2Toggle' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'ExpireTimer' Name '.' Punctuation 'startPeriodic' Name '(' Punctuation 'FRAG_EXPIRE_TIME' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'state' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'S_RUNNING' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'radioBusy' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'FALSE' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'signal' Keyword ' ' Text.Whitespace 'SplitControl' Name '.' Punctuation 'startDone' Name '(' Punctuation 'error' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'event' Keyword ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace 'RadioControl' Name '.' Punctuation 'stopDone' Name '(' Punctuation 'error_t' Name ' ' Text.Whitespace 'error' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'signal' Keyword ' ' Text.Whitespace 'SplitControl' Name '.' Punctuation 'stopDone' Name '(' Punctuation 'error' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'command' Keyword ' ' Text.Whitespace 'error_t' Name ' ' Text.Whitespace 'Init' Name '.' Punctuation 'init' Name '(' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '// ip_malloc_init needs to be in init, not booted, because\n' Comment.Single ' ' Text.Whitespace '// context for coap is initialised in init\n' Comment.Single ' ' Text.Whitespace 'ip_malloc_init' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'SUCCESS' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'event' Keyword ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace 'Boot' Name '.' Punctuation 'booted' Name '(' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'BlipStatistics' Name '.' Punctuation 'clear' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/* set up our reconstruction cache */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'table_init' Name '(' Punctuation '&' Operator 'recon_cache' Name ',' Punctuation ' ' Text.Whitespace 'recon_data' Name ',' Punctuation ' ' Text.Whitespace 'sizeof' Keyword '(' Punctuation 'struct' Keyword ' ' Text 'lowpan_reconstruct' Name.Class ')' Punctuation ',' Punctuation ' ' Text.Whitespace 'N_RECONSTRUCTIONS' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'table_map' Name '(' Punctuation '&' Operator 'recon_cache' Name ',' Punctuation ' ' Text.Whitespace 'reconstruct_clear' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SplitControl' Name '.' Punctuation 'start' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/*\n * Receive-side code.\n */' Comment.Multiline ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace 'deliver' Name '(' Punctuation 'struct' Keyword ' ' Text 'lowpan_reconstruct' Name.Class ' ' Text.Whitespace '*' Operator 'recon' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'ip6_hdr' Name.Class ' ' Text.Whitespace '*' Operator 'iph' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '(' Punctuation 'struct' Keyword ' ' Text 'ip6_hdr' Name.Class ' ' Text.Whitespace '*' Operator ')' Punctuation 'recon' Name '-' Operator '>' Operator 'r_buf' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '// printf("deliver [%i]: ", recon->r_bytes_rcvd);\n' Comment.Single ' ' Text.Whitespace '// printf_buf(recon->r_buf, recon->r_bytes_rcvd);\n' Comment.Single '\n' Text.Whitespace ' ' Text.Whitespace '/* the payload length field is always compressed, have to put it back here */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'iph' Name '-' Operator '>' Operator 'ip6_plen' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'htons' Name '(' Punctuation 'recon' Name '-' Operator '>' Operator 'r_bytes_rcvd' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace 'sizeof' Keyword '(' Punctuation 'struct' Keyword ' ' Text 'ip6_hdr' Name.Class ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'signal' Keyword ' ' Text.Whitespace 'IPLower' Name '.' Punctuation 'recv' Name '(' Punctuation 'iph' Name ',' Punctuation ' ' Text.Whitespace '(' Punctuation 'void' Keyword.Type ' ' Text.Whitespace '*' Operator ')' Punctuation '(' Punctuation 'iph' Name ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '1' Literal.Number.Integer ')' Punctuation ',' Punctuation ' ' Text.Whitespace '&' Operator 'recon' Name '-' Operator '>' Operator 'r_meta' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '// printf("ip_free(%p)\\n", recon->r_buf);\n' Comment.Single ' ' Text.Whitespace 'ip_free' Name '(' Punctuation 'recon' Name '-' Operator '>' Operator 'r_buf' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_timeout' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'T_UNUSED' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_buf' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace "/*\n * Bulletproof recovery logic is very important to make sure we\n * don't get wedged with no free buffers.\n * \n * The table is managed as follows:\n * - unused entries are marked T_UNUSED\n * - entries which \n * o have a buffer allocated\n * o have had a fragment reception before we fired\n * are marked T_ACTIVE\n * - entries which have not had a fragment reception during the last timer period\n * and were active are marked T_ZOMBIE\n * - zombie receptions are deleted: their buffer is freed and table entry marked unused.\n * - when a fragment is dropped, it is entered into the table as T_FAILED1.\n * no buffer is allocated\n * - when the timer fires, T_FAILED1 entries are aged to T_FAILED2.\n * - T_FAILED2 entries are deleted. Incomming fragments with tags\n * that are marked either FAILED1 or FAILED2 are dropped; this\n * prevents us from allocating a buffer for a packet which we\n * have already dropped fragments from.\n *\n */" Comment.Multiline ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace 'reconstruct_age' Name '(' Punctuation 'void' Keyword.Type ' ' Text.Whitespace '*' Operator 'elt' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'lowpan_reconstruct' Name.Class ' ' Text.Whitespace '*' Operator 'recon' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '(' Punctuation 'struct' Keyword ' ' Text 'lowpan_reconstruct' Name.Class ' ' Text.Whitespace '*' Operator ')' Punctuation 'elt' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'recon' Name '-' Operator '>' Operator 'r_timeout' Name ' ' Text.Whitespace '!' Operator '=' Operator ' ' Text.Whitespace 'T_UNUSED' Name ')' Punctuation ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String 'recon src: 0x%x tag: 0x%x buf: %p recvd: %i/%i' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_source_key' Name ',' Punctuation ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_tag' Name ',' Punctuation ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_buf' Name ',' Punctuation ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_bytes_rcvd' Name ',' Punctuation ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_size' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'switch' Keyword ' ' Text.Whitespace '(' Punctuation 'recon' Name '-' Operator '>' Operator 'r_timeout' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'case' Keyword ' ' Text.Whitespace 'T_ACTIVE' Name.Label ':' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_timeout' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'T_ZOMBIE' Name ';' Punctuation ' ' Text.Whitespace 'break' Keyword ';' Punctuation ' ' Text.Whitespace '// age existing receptions\n' Comment.Single ' ' Text.Whitespace 'case' Keyword ' ' Text.Whitespace 'T_FAILED1' Name.Label ':' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_timeout' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'T_FAILED2' Name ';' Punctuation ' ' Text.Whitespace 'break' Keyword ';' Punctuation ' ' Text.Whitespace '// age existing receptions\n' Comment.Single ' ' Text.Whitespace 'case' Keyword ' ' Text.Whitespace 'T_ZOMBIE' Name.Label ':' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'case' Keyword ' ' Text.Whitespace 'T_FAILED2' Name.Label ':' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '// deallocate the space for reconstruction\n' Comment.Single ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String 'timing out buffer: src: %i tag: %i' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_source_key' Name ',' Punctuation ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_tag' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'recon' Name '-' Operator '>' Operator 'r_buf' Name ' ' Text.Whitespace '!' Operator '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String 'ip_free(%p)' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_buf' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'ip_free' Name '(' Punctuation 'recon' Name '-' Operator '>' Operator 'r_buf' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_timeout' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'T_UNUSED' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_buf' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'break' Keyword ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace 'ip_print_heap' Name '(' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace '#' Comment.Preproc 'ifdef PRINTFUART_ENABLED' Comment.Preproc '\n' Comment.Preproc ' ' Text.Whitespace 'bndrt_t' Name ' ' Text.Whitespace '*' Operator 'cur' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '(' Punctuation 'bndrt_t' Name ' ' Text.Whitespace '*' Operator ')' Punctuation 'heap' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'while' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation '(' Punctuation 'uint8_t' Keyword.Type ' ' Text.Whitespace '*' Operator ')' Punctuation 'cur' Name ')' Punctuation ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace 'heap' Name ' ' Text.Whitespace '<' Operator ' ' Text.Whitespace 'IP_MALLOC_HEAP_SIZE' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name ' ' Text.Whitespace '(' Punctuation '"' Literal.String 'heap region start: %p length: %u used: %u' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'cur' Name ',' Punctuation ' ' Text.Whitespace '(' Punctuation '*' Operator 'cur' Name ' ' Text.Whitespace '&' Operator ' ' Text.Whitespace 'IP_MALLOC_LEN' Name ')' Punctuation ',' Punctuation ' ' Text.Whitespace '(' Punctuation '*' Operator 'cur' Name ' ' Text.Whitespace '&' Operator ' ' Text.Whitespace 'IP_MALLOC_INUSE' Name ')' Punctuation ' ' Text.Whitespace '>' Operator '>' Operator ' ' Text.Whitespace '15' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'cur' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '(' Punctuation 'bndrt_t' Name ' ' Text.Whitespace '*' Operator ')' Punctuation '(' Punctuation '(' Punctuation '(' Punctuation 'uint8_t' Keyword.Type ' ' Text.Whitespace '*' Operator ')' Punctuation 'cur' Name ')' Punctuation ' ' Text.Whitespace '+' Operator ' ' Text.Whitespace '(' Punctuation '(' Punctuation '*' Operator 'cur' Name ')' Punctuation ' ' Text.Whitespace '&' Operator ' ' Text.Whitespace 'IP_MALLOC_LEN' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'event' Keyword ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace 'ExpireTimer' Name '.' Punctuation 'fired' Name '(' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'table_map' Name '(' Punctuation '&' Operator 'recon_cache' Name ',' Punctuation ' ' Text.Whitespace 'reconstruct_age' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String 'Frag pool size: %i' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'FragPool' Name '.' Punctuation 'size' Name '(' Punctuation ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String 'SendInfo pool size: %i' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendInfoPool' Name '.' Punctuation 'size' Name '(' Punctuation ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String 'SendEntry pool size: %i' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendEntryPool' Name '.' Punctuation 'size' Name '(' Punctuation ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String 'Forward queue length: %i' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendQueue' Name '.' Punctuation 'size' Name '(' Punctuation ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'ip_print_heap' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'printfflush' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/*\n * allocate a structure for recording information about incomming fragments.\n */' Comment.Multiline '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'lowpan_reconstruct' Name.Class ' ' Text.Whitespace '*' Operator 'get_reconstruct' Name '(' Punctuation 'uint16_t' Keyword.Type ' ' Text.Whitespace 'key' Name ',' Punctuation ' ' Text.Whitespace 'uint16_t' Keyword.Type ' ' Text.Whitespace 'tag' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'lowpan_reconstruct' Name.Class ' ' Text.Whitespace '*' Operator 'ret' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'int' Keyword.Type ' ' Text.Whitespace 'i' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '// printf("get_reconstruct: %x %i\\n", key, tag);\n' Comment.Single '\n' Text.Whitespace ' ' Text.Whitespace 'for' Keyword ' ' Text.Whitespace '(' Punctuation 'i' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ';' Punctuation ' ' Text.Whitespace 'i' Name ' ' Text.Whitespace '<' Operator ' ' Text.Whitespace 'N_RECONSTRUCTIONS' Name ';' Punctuation ' ' Text.Whitespace 'i' Name '+' Operator '+' Operator ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'lowpan_reconstruct' Name.Class ' ' Text.Whitespace '*' Operator 'recon' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '(' Punctuation 'struct' Keyword ' ' Text 'lowpan_reconstruct' Name.Class ' ' Text.Whitespace '*' Operator ')' Punctuation '&' Operator 'recon_data' Name '[' Punctuation 'i' Name ']' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'recon' Name '-' Operator '>' Operator 'r_tag' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'tag' Name ' ' Text.Whitespace '&' Operator '&' Operator '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_source_key' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'key' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'recon' Name '-' Operator '>' Operator 'r_timeout' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace 'T_UNUSED' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_timeout' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'T_ACTIVE' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'ret' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'recon' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'done' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation ' ' Text.Whitespace 'else' Keyword ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'recon' Name '-' Operator '>' Operator 'r_timeout' Name ' ' Text.Whitespace '<' Operator ' ' Text.Whitespace 'T_UNUSED' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '// if we have already tried and failed to get a buffer, we\n' Comment.Single ' ' Text.Whitespace '// need to drop remaining fragments.\n' Comment.Single ' ' Text.Whitespace 'ret' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'done' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'recon' Name '-' Operator '>' Operator 'r_timeout' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'T_UNUSED' Name ')' Punctuation ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'ret' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'recon' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'done' Name.Label ':' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '// printf("got%p\\n", ret);\n' Comment.Single ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'ret' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'event' Keyword ' ' Text.Whitespace 'message_t' Name ' ' Text.Whitespace '*' Operator 'Ieee154Receive' Name '.' Punctuation 'receive' Name '(' Punctuation 'message_t' Name ' ' Text.Whitespace '*' Operator 'msg' Name ',' Punctuation ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace '*' Operator 'msg_payload' Name ',' Punctuation ' ' Text.Whitespace 'uint8_t' Keyword.Type ' ' Text.Whitespace 'len' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'packed_lowmsg' Name.Class ' ' Text.Whitespace 'lowmsg' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'ieee154_frame_addr' Name.Class ' ' Text.Whitespace 'frame_address' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'uint8_t' Keyword.Type ' ' Text.Whitespace '*' Operator 'buf' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'msg_payload' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '// printf(" -- RECEIVE -- len : %i\\n", len);\n' Comment.Single '\n' Text.Whitespace ' ' Text.Whitespace 'BLIP_STATS_INCR' Name '(' Punctuation 'stats' Name '.' Punctuation 'rx_total' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/* unpack the 802.15.4 address fields */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'buf' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'unpack_ieee154_hdr' Name '(' Punctuation 'msg_payload' Name ',' Punctuation ' ' Text.Whitespace '&' Operator 'frame_address' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'len' Name ' ' Text.Whitespace '-' Operator '=' Operator ' ' Text.Whitespace 'buf' Name ' ' Text.Whitespace '-' Operator ' ' Text.Whitespace '(' Punctuation 'uint8_t' Keyword.Type ' ' Text.Whitespace '*' Operator ')' Punctuation 'msg_payload' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/* unpack and 6lowpan headers */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'lowmsg' Name '.' Punctuation 'data' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'buf' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'lowmsg' Name '.' Punctuation 'len' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'len' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'lowmsg' Name '.' Punctuation 'headers' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'getHeaderBitmap' Name '(' Punctuation '&' Operator 'lowmsg' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'lowmsg' Name '.' Punctuation 'headers' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'LOWMSG_NALP' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'fail' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'hasFrag1Header' Name '(' Punctuation '&' Operator 'lowmsg' Name ')' Punctuation ' ' Text.Whitespace '|' Operator '|' Operator ' ' Text.Whitespace 'hasFragNHeader' Name '(' Punctuation '&' Operator 'lowmsg' Name ')' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '// start reassembly\n' Comment.Single ' ' Text.Whitespace 'int' Keyword.Type ' ' Text.Whitespace 'rv' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'lowpan_reconstruct' Name.Class ' ' Text.Whitespace '*' Operator 'recon' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'uint16_t' Keyword.Type ' ' Text.Whitespace 'tag' Name ',' Punctuation ' ' Text.Whitespace 'source_key' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'source_key' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'ieee154_hashaddr' Name '(' Punctuation '&' Operator 'frame_address' Name '.' Punctuation 'ieee_src' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'getFragDgramTag' Name '(' Punctuation '&' Operator 'lowmsg' Name ',' Punctuation ' ' Text.Whitespace '&' Operator 'tag' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'get_reconstruct' Name '(' Punctuation 'source_key' Name ',' Punctuation ' ' Text.Whitespace 'tag' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation '!' Operator 'recon' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'fail' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/* fill in metadata: on fragmented packets, it applies to the\n first fragment only */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'memcpy' Name '(' Punctuation '&' Operator 'recon' Name '-' Operator '>' Operator 'r_meta' Name '.' Punctuation 'sender' Name ',' Punctuation ' ' Text.Whitespace '&' Operator 'frame_address' Name '.' Punctuation 'ieee_src' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'sizeof' Keyword '(' Punctuation 'ieee154_addr_t' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_meta' Name '.' Punctuation 'lqi' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'ReadLqi' Name '.' Punctuation 'readLqi' Name '(' Punctuation 'msg' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_meta' Name '.' Punctuation 'rssi' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'ReadLqi' Name '.' Punctuation 'readRssi' Name '(' Punctuation 'msg' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'hasFrag1Header' Name '(' Punctuation '&' Operator 'lowmsg' Name ')' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'recon' Name '-' Operator '>' Operator 'r_buf' Name ' ' Text.Whitespace '!' Operator '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ')' Punctuation ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'fail' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'rv' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'lowpan_recon_start' Name '(' Punctuation '&' Operator 'frame_address' Name ',' Punctuation ' ' Text.Whitespace 'recon' Name ',' Punctuation ' ' Text.Whitespace 'buf' Name ',' Punctuation ' ' Text.Whitespace 'len' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation ' ' Text.Whitespace 'else' Keyword ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'rv' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'lowpan_recon_add' Name '(' Punctuation 'recon' Name ',' Punctuation ' ' Text.Whitespace 'buf' Name ',' Punctuation ' ' Text.Whitespace 'len' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'rv' Name ' ' Text.Whitespace '<' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_timeout' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'T_FAILED1' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'fail' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation ' ' Text.Whitespace 'else' Keyword ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '// printf("start recon buf: %p\\n", recon->r_buf);\n' Comment.Single ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_timeout' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'T_ACTIVE' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_source_key' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'source_key' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_tag' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'tag' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'recon' Name '-' Operator '>' Operator 'r_size' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'recon' Name '-' Operator '>' Operator 'r_bytes_rcvd' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'deliver' Name '(' Punctuation 'recon' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation ' ' Text.Whitespace 'else' Keyword ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '/* no fragmentation, just deliver it */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'int' Keyword.Type ' ' Text.Whitespace 'rv' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'lowpan_reconstruct' Name.Class ' ' Text.Whitespace 'recon' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/* fill in metadata */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'memcpy' Name '(' Punctuation '&' Operator 'recon' Name '.' Punctuation 'r_meta' Name '.' Punctuation 'sender' Name ',' Punctuation ' ' Text.Whitespace '&' Operator 'frame_address' Name '.' Punctuation 'ieee_src' Name ',' Punctuation ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'sizeof' Keyword '(' Punctuation 'ieee154_addr_t' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '.' Punctuation 'r_meta' Name '.' Punctuation 'lqi' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'ReadLqi' Name '.' Punctuation 'readLqi' Name '(' Punctuation 'msg' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'recon' Name '.' Punctuation 'r_meta' Name '.' Punctuation 'rssi' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'ReadLqi' Name '.' Punctuation 'readRssi' Name '(' Punctuation 'msg' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'buf' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'getLowpanPayload' Name '(' Punctuation '&' Operator 'lowmsg' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'rv' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'lowpan_recon_start' Name '(' Punctuation '&' Operator 'frame_address' Name ',' Punctuation ' ' Text.Whitespace '&' Operator 'recon' Name ',' Punctuation ' ' Text.Whitespace 'buf' Name ',' Punctuation ' ' Text.Whitespace 'len' Name ')' Punctuation ')' Punctuation ' ' Text.Whitespace '<' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'fail' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'recon' Name '.' Punctuation 'r_size' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'recon' Name '.' Punctuation 'r_bytes_rcvd' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'deliver' Name '(' Punctuation '&' Operator 'recon' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation ' ' Text.Whitespace 'else' Keyword ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '// printf("ip_free(%p)\\n", recon.r_buf);\n' Comment.Single ' ' Text.Whitespace 'ip_free' Name '(' Punctuation 'recon' Name '.' Punctuation 'r_buf' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'done' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'fail' Name.Label ':' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'BLIP_STATS_INCR' Name '(' Punctuation 'stats' Name '.' Punctuation 'rx_drop' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'done' Name.Label ':' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'msg' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/*\n * Send-side functionality\n */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'task' Keyword ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace 'sendTask' Name '(' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'send_entry' Name.Class ' ' Text.Whitespace '*' Operator 's_entry' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '// printf("sendTask() - sending\\n");\n' Comment.Single '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'radioBusy' Name ' ' Text.Whitespace '|' Operator '|' Operator ' ' Text.Whitespace 'state' Name ' ' Text.Whitespace '!' Operator '=' Operator ' ' Text.Whitespace 'S_RUNNING' Name ')' Punctuation ' ' Text.Whitespace 'return' Keyword ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'call' Keyword ' ' Text.Whitespace 'SendQueue' Name '.' Punctuation 'empty' Name '(' Punctuation ')' Punctuation ')' Punctuation ' ' Text.Whitespace 'return' Keyword ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '// this does not dequeue\n' Comment.Single ' ' Text.Whitespace 's_entry' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendQueue' Name '.' Punctuation 'head' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace '#' Comment.Preproc 'ifdef LPL_SLEEP_INTERVAL' Comment.Preproc '\n' Comment.Preproc ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'LowPowerListening' Name '.' Punctuation 'setRemoteWakeupInterval' Name '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'msg' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'LowPowerListening' Name '.' Punctuation 'getLocalWakeupInterval' Name '(' Punctuation ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'info' Name '-' Operator '>' Operator 'failed' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'dbg' Name '(' Punctuation '"' Literal.String 'Drops' Literal.String '"' Literal.String ',' Punctuation ' ' Text.Whitespace '"' Literal.String 'drops: sendTask: dropping failed fragment' Literal.String '\\n' Literal.String.Escape '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'fail' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation '(' Punctuation 'call' Keyword ' ' Text.Whitespace 'Ieee154Send' Name '.' Punctuation 'send' Name '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'msg' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'BarePacket' Name '.' Punctuation 'payloadLength' Name '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'msg' Name ')' Punctuation ')' Punctuation ')' Punctuation ' ' Text.Whitespace '!' Operator '=' Operator ' ' Text.Whitespace 'SUCCESS' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'dbg' Name '(' Punctuation '"' Literal.String 'Drops' Literal.String '"' Literal.String ',' Punctuation ' ' Text.Whitespace '"' Literal.String 'drops: sendTask: send failed' Literal.String '\\n' Literal.String.Escape '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'fail' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation ' ' Text.Whitespace 'else' Keyword ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'radioBusy' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'TRUE' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'return' Keyword ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'fail' Name.Label ':' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String 'SEND FAIL' Literal.String '\\n' Literal.String.Escape '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'post' Keyword ' ' Text.Whitespace 'sendTask' Name.Function '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'BLIP_STATS_INCR' Name '(' Punctuation 'stats' Name '.' Punctuation 'tx_drop' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '// deallocate the memory associated with this request.\n' Comment.Single ' ' Text.Whitespace '// other fragments associated with this packet will get dropped.\n' Comment.Single ' ' Text.Whitespace 's_entry' Name '-' Operator '>' Operator 'info' Name '-' Operator '>' Operator 'failed' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'TRUE' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'SENDINFO_DECR' Name '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'info' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'FragPool' Name '.' Punctuation 'put' Name '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'msg' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendEntryPool' Name '.' Punctuation 'put' Name '(' Punctuation 's_entry' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendQueue' Name '.' Punctuation 'dequeue' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/*\n * it will pack the message into the fragment pool and enqueue\n * those fragments for sending\n *\n * it will set\n * - payload length\n * - version, traffic class and flow label\n *\n * the source and destination IP addresses must be set by higher\n * layers.\n */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'command' Keyword ' ' Text.Whitespace 'error_t' Name ' ' Text.Whitespace 'IPLower' Name '.' Punctuation 'send' Name '(' Punctuation 'struct' Keyword ' ' Text 'ieee154_frame_addr' Name.Class ' ' Text.Whitespace '*' Operator 'frame_addr' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'ip6_packet' Name.Class ' ' Text.Whitespace '*' Operator 'msg' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace '*' Operator 'data' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'lowpan_ctx' Name.Class ' ' Text.Whitespace 'ctx' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'send_info' Name.Class ' ' Text.Whitespace '*' Operator 's_info' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'send_entry' Name.Class ' ' Text.Whitespace '*' Operator 's_entry' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'message_t' Name ' ' Text.Whitespace '*' Operator 'outgoing' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'int' Keyword.Type ' ' Text.Whitespace 'frag_len' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '1' Literal.Number.Integer ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'error_t' Name ' ' Text.Whitespace 'rc' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'SUCCESS' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'state' Name ' ' Text.Whitespace '!' Operator '=' Operator ' ' Text.Whitespace 'S_RUNNING' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'EOFF' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/* set version to 6 in case upper layers forgot */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'msg' Name '-' Operator '>' Operator 'ip6_hdr' Name '.' Punctuation 'ip6_vfc' Name ' ' Text.Whitespace '&' Operator '=' Operator ' ' Text.Whitespace '~' Operator 'IPV6_VERSION_MASK' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'msg' Name '-' Operator '>' Operator 'ip6_hdr' Name '.' Punctuation 'ip6_vfc' Name ' ' Text.Whitespace '|' Operator '=' Operator ' ' Text.Whitespace 'IPV6_VERSION' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'ctx' Name '.' Punctuation 'tag' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'current_local_label' Name '+' Operator '+' Operator ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'ctx' Name '.' Punctuation 'offset' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 's_info' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'getSendInfo' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 's_info' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'rc' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'ERETRY' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'cleanup_outer' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 's_info' Name '-' Operator '>' Operator 'upper_data' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'data' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'while' Keyword ' ' Text.Whitespace '(' Punctuation 'frag_len' Name ' ' Text.Whitespace '>' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 's_entry' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendEntryPool' Name '.' Punctuation 'get' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'outgoing' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'FragPool' Name '.' Punctuation 'get' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 's_entry' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ' ' Text.Whitespace '|' Operator '|' Operator ' ' Text.Whitespace 'outgoing' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 's_entry' Name ' ' Text.Whitespace '!' Operator '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ')' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendEntryPool' Name '.' Punctuation 'put' Name '(' Punctuation 's_entry' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'outgoing' Name ' ' Text.Whitespace '!' Operator '=' Operator ' ' Text.Whitespace 'NULL' Name.Builtin ')' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'FragPool' Name '.' Punctuation 'put' Name '(' Punctuation 'outgoing' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '// this will cause any fragments we have already enqueued to\n' Comment.Single ' ' Text.Whitespace '// be dropped by the send task.\n' Comment.Single ' ' Text.Whitespace 's_info' Name '-' Operator '>' Operator 'failed' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'TRUE' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String 'drops: IP send: no fragments' Literal.String '\\n' Literal.String.Escape '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'rc' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'ERETRY' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'done' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'BarePacket' Name '.' Punctuation 'clear' Name '(' Punctuation 'outgoing' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'frag_len' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'lowpan_frag_get' Name '(' Punctuation 'call' Keyword ' ' Text.Whitespace 'Ieee154Send' Name '.' Punctuation 'getPayload' Name '(' Punctuation 'outgoing' Name ',' Punctuation ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'BarePacket' Name '.' Punctuation 'maxPayloadLength' Name '(' Punctuation ')' Punctuation ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'msg' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'frame_addr' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '&' Operator 'ctx' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'frag_len' Name ' ' Text.Whitespace '<' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String ' get frag error: %i' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation ' ' Text.Whitespace 'frag_len' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String 'fragment length: %i offset: %i' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation ' ' Text.Whitespace 'frag_len' Name ',' Punctuation ' ' Text.Whitespace 'ctx' Name '.' Punctuation 'offset' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'BarePacket' Name '.' Punctuation 'setPayloadLength' Name '(' Punctuation 'outgoing' Name ',' Punctuation ' ' Text.Whitespace 'frag_len' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'frag_len' Name ' ' Text.Whitespace '<' Operator '=' Operator ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'FragPool' Name '.' Punctuation 'put' Name '(' Punctuation 'outgoing' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendEntryPool' Name '.' Punctuation 'put' Name '(' Punctuation 's_entry' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'done' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'call' Keyword ' ' Text.Whitespace 'SendQueue' Name '.' Punctuation 'enqueue' Name '(' Punctuation 's_entry' Name ')' Punctuation ' ' Text.Whitespace '!' Operator '=' Operator ' ' Text.Whitespace 'SUCCESS' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'BLIP_STATS_INCR' Name '(' Punctuation 'stats' Name '.' Punctuation 'encfail' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 's_info' Name '-' Operator '>' Operator 'failed' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'TRUE' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String 'drops: IP send: enqueue failed' Literal.String '\\n' Literal.String.Escape '"' Literal.String ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'done' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 's_info' Name '-' Operator '>' Operator 'link_fragments' Name '+' Operator '+' Operator ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 's_entry' Name '-' Operator '>' Operator 'msg' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'outgoing' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 's_entry' Name '-' Operator '>' Operator 'info' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 's_info' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/* configure the L2 */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'frame_addr' Name '-' Operator '>' Operator 'ieee_dst' Name '.' Punctuation 'ieee_mode' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'IEEE154_ADDR_SHORT' Name ' ' Text.Whitespace '&' Operator '&' Operator '\n' Text.Whitespace ' ' Text.Whitespace 'frame_addr' Name '-' Operator '>' Operator 'ieee_dst' Name '.' Punctuation 'i_saddr' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'IEEE154_BROADCAST_ADDR' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'PacketLink' Name '.' Punctuation 'setRetries' Name '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'msg' Name ',' Punctuation ' ' Text.Whitespace '0' Literal.Number.Integer ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation ' ' Text.Whitespace 'else' Keyword ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'PacketLink' Name '.' Punctuation 'setRetries' Name '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'msg' Name ',' Punctuation ' ' Text.Whitespace 'BLIP_L2_RETRIES' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'PacketLink' Name '.' Punctuation 'setRetryDelay' Name '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'msg' Name ',' Punctuation ' ' Text.Whitespace 'BLIP_L2_DELAY' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'SENDINFO_INCR' Name '(' Punctuation 's_info' Name ')' Punctuation ';' Punctuation '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '// printf("got %i frags\\n", s_info->link_fragments);\n' Comment.Single ' ' Text.Whitespace 'done' Name.Label ':' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'BLIP_STATS_INCR' Name '(' Punctuation 'stats' Name '.' Punctuation 'sent' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'SENDINFO_DECR' Name '(' Punctuation 's_info' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'post' Keyword ' ' Text.Whitespace 'sendTask' Name.Function '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'cleanup_outer' Name.Label ':' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'return' Keyword ' ' Text.Whitespace 'rc' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'event' Keyword ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace 'Ieee154Send' Name '.' Punctuation 'sendDone' Name '(' Punctuation 'message_t' Name ' ' Text.Whitespace '*' Operator 'msg' Name ',' Punctuation ' ' Text.Whitespace 'error_t' Name ' ' Text.Whitespace 'error' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'struct' Keyword ' ' Text 'send_entry' Name.Class ' ' Text.Whitespace '*' Operator 's_entry' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendQueue' Name '.' Punctuation 'head' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'radioBusy' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'FALSE' Name ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '// printf("sendDone: %p %i\\n", msg, error);\n' Comment.Single '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 'state' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace 'S_STOPPING' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'RadioControl' Name '.' Punctuation 'stop' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'state' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'S_STOPPED' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'goto' Keyword ' ' Text.Whitespace 'done' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 's_entry' Name '-' Operator '>' Operator 'info' Name '-' Operator '>' Operator 'link_transmissions' Name ' ' Text.Whitespace '+' Operator '=' Operator ' ' Text.Whitespace '(' Punctuation 'call' Keyword ' ' Text.Whitespace 'PacketLink' Name '.' Punctuation 'getRetries' Name '(' Punctuation 'msg' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 's_entry' Name '-' Operator '>' Operator 'info' Name '-' Operator '>' Operator 'link_fragment_attempts' Name '+' Operator '+' Operator ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation '!' Operator 'call' Keyword ' ' Text.Whitespace 'PacketLink' Name '.' Punctuation 'wasDelivered' Name '(' Punctuation 'msg' Name ')' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String 'sendDone: was not delivered! (%i tries)' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'PacketLink' Name '.' Punctuation 'getRetries' Name '(' Punctuation 'msg' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 's_entry' Name '-' Operator '>' Operator 'info' Name '-' Operator '>' Operator 'failed' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'TRUE' Name ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'signal' Keyword ' ' Text.Whitespace 'IPLower' Name '.' Punctuation 'sendDone' Name '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'info' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '/* if (s_entry->info->policy.dest[0] != 0xffff) */' Comment.Multiline '\n' Text.Whitespace '/* dbg("Drops", "drops: sendDone: frag was not delivered\\n"); */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace '// need to check for broadcast frames\n' Comment.Single ' ' Text.Whitespace '// BLIP_STATS_INCR(stats.tx_drop);\n' Comment.Single ' ' Text.Whitespace '}' Punctuation ' ' Text.Whitespace 'else' Keyword ' ' Text.Whitespace 'if' Keyword ' ' Text.Whitespace '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'info' Name '-' Operator '>' Operator 'link_fragment_attempts' Name ' ' Text.Whitespace '=' Operator '=' Operator ' ' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 's_entry' Name '-' Operator '>' Operator 'info' Name '-' Operator '>' Operator 'link_fragments' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'signal' Keyword ' ' Text.Whitespace 'IPLower' Name '.' Punctuation 'sendDone' Name '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'info' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'done' Name.Label ':' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '// kill off any pending fragments\n' Comment.Single ' ' Text.Whitespace 'SENDINFO_DECR' Name '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'info' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'FragPool' Name '.' Punctuation 'put' Name '(' Punctuation 's_entry' Name '-' Operator '>' Operator 'msg' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendEntryPool' Name '.' Punctuation 'put' Name '(' Punctuation 's_entry' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendQueue' Name '.' Punctuation 'dequeue' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'post' Keyword ' ' Text.Whitespace 'sendTask' Name.Function '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace '#if 0' Comment.Preproc '\n' Comment ' command struct tlv_hdr *IPExtensions.findTlv(struct ip6_ext *ext, uint8_t tlv_val) {\n' Comment ' int len = ext->len - sizeof(struct ip6_ext);\n' Comment ' struct tlv_hdr *tlv = (struct tlv_hdr *)(ext + 1);\n' Comment ' while (len > 0) {\n' Comment ' if (tlv->type == tlv_val) return tlv;\n' Comment ' if (tlv->len == 0) return NULL;\n' Comment ' tlv = (struct tlv_hdr *)(((uint8_t *)tlv) + tlv->len);\n' Comment ' len -= tlv->len;\n' Comment ' }\n' Comment ' return NULL;\n' Comment ' }\n' Comment '#endif\n' Comment.Preproc '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '/*\n * BlipStatistics interface\n */' Comment.Multiline '\n' Text.Whitespace ' ' Text.Whitespace 'command' Keyword ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace 'BlipStatistics' Name '.' Punctuation 'get' Name '(' Punctuation 'ip_statistics_t' Name ' ' Text.Whitespace '*' Operator 'statistics' Name ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace '#' Comment.Preproc 'ifdef BLIP_STATS_IP_MEM' Comment.Preproc '\n' Comment.Preproc ' ' Text.Whitespace 'stats' Name '.' Punctuation 'fragpool' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'FragPool' Name '.' Punctuation 'size' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'stats' Name '.' Punctuation 'sendinfo' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendInfoPool' Name '.' Punctuation 'size' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'stats' Name '.' Punctuation 'sendentry' Name '=' Operator ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendEntryPool' Name '.' Punctuation 'size' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'stats' Name '.' Punctuation 'sndqueue' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'call' Keyword ' ' Text.Whitespace 'SendQueue' Name '.' Punctuation 'size' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'stats' Name '.' Punctuation 'heapfree' Name ' ' Text.Whitespace '=' Operator ' ' Text.Whitespace 'ip_malloc_freespace' Name '(' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'printf' Name '(' Punctuation '"' Literal.String 'frag: %i sendinfo: %i sendentry: %i sendqueue: %i heap: %i' Literal.String '\\n' Literal.String.Escape '"' Literal.String ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'stats' Name '.' Punctuation 'fragpool' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'stats' Name '.' Punctuation 'sendinfo' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'stats' Name '.' Punctuation 'sendentry' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'stats' Name '.' Punctuation 'sndqueue' Name ',' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'stats' Name '.' Punctuation 'heapfree' Name ')' Punctuation ';' Punctuation '\n' Text.Whitespace '#' Comment.Preproc 'endif' Comment.Preproc '\n' Comment.Preproc ' ' Text.Whitespace 'memcpy' Name '(' Punctuation 'statistics' Name ',' Punctuation ' ' Text.Whitespace '&' Operator 'stats' Name ',' Punctuation ' ' Text.Whitespace 'sizeof' Keyword '(' Punctuation 'ip_statistics_t' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace ' ' Text.Whitespace 'command' Keyword ' ' Text.Whitespace 'void' Keyword.Type ' ' Text.Whitespace 'BlipStatistics' Name '.' Punctuation 'clear' Name '(' Punctuation ')' Punctuation ' ' Text.Whitespace '{' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace 'memclr' Name '(' Punctuation '(' Punctuation 'uint8_t' Keyword.Type ' ' Text.Whitespace '*' Operator ')' Punctuation '&' Operator 'stats' Name ',' Punctuation ' ' Text.Whitespace 'sizeof' Keyword '(' Punctuation 'ip_statistics_t' Name ')' Punctuation ')' Punctuation ';' Punctuation '\n' Text.Whitespace ' ' Text.Whitespace '}' Punctuation '\n' Text.Whitespace '\n' Text.Whitespace '/* default event void IP.recv[uint8_t nxt_hdr](struct ip6_hdr *iph, */' Comment.Multiline '\n' Text.Whitespace '/* void *payload, */' Comment.Multiline '\n' Text.Whitespace '/* struct ip_metadata *meta) { */' Comment.Multiline '\n' Text.Whitespace '/* } */' Comment.Multiline '\n' Text.Whitespace '\n' Text.Whitespace '/* default event void Multicast.recv[uint8_t scope](struct ip6_hdr *iph, */' Comment.Multiline '\n' Text.Whitespace '/* void *payload, */' Comment.Multiline '\n' Text.Whitespace '/* struct ip_metadata *meta) { */' Comment.Multiline '\n' Text.Whitespace '/* } */' Comment.Multiline '\n' Text.Whitespace '}' Punctuation '\n' Text.Whitespace