-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tracker: Reduce scope on unintended COMMON variables #2346
Comments
Wow, wouldn't it have been just as much work to rename them? ;) |
@LudwigOrtmann nah, I cheated. for f in $(cat globals.txt|sort|uniq); do find -name '*.h' -exec egrep "extern .* ${f}" -q {} + || (echo " - [ ] $f" && (find -name '*.c' -exec ctags -x --c-kinds=v --file-scope=no --sort=yes {} + | grep "^${f} "| awk -F ' ' '{ printf " - [ ] %s:%d `", $4,$3; for(i=5;i<=NF;i++)printf "%s",$i (i==NF?"":OFS); printf "`\n"; }';) ) ; done > globals.md |
I just checked - |
There was a bug in my script. I am regenerating the list now. |
Updated. List shrunk from 864 to 720 items. |
Removing (some) common globals, working towards #2346
#2352 reduces the severity of this issue by introducing error detection for unintended common variables. |
remove common globals for rpl with regard to #2346
Bump. |
I can try looking into this to dig a bit more in the repository. First remove easy ones, like tests, so it narrows down to the most important ones. @gebart Can you provide the command you run to get the output please ? What is the idea for What should be the solution for the The current situation is actually not good, for 'adc', the This question will also be asked for all internal kernel symbol definitions. |
There may be symbols not found, like |
I will try to find what line was used to generate the globals.txt file above, the second stage of the list generation is the oneliner pasted in my comment #2346 (comment) Don't bother with tunslip, it's a big mess and it is only built by itself standalone so it doesn't matter what is exported or not. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you want me to ignore this issue, please mark it with the "State: don't stale" label. Thank you for your contributions. |
Since compilation is done now with Lines 60 to 61 in 86f9d79
|
See #2344 for a description of the error.
This is a tracker list of global variables without clear scoping (either
static
orextern
)The following files have global variables defined which may incorrectly get treated as COMMON symbols when linking, if any other module now or in the future defines another global with the same name. This behaviour can lead to corruption of buffers, (because two drivers have accidentally been allocated the same buffer area in RAM only because they used the same name for the variable) and a range of other problems.
The solution to these problems is to add
-fno-common
to CFLAGS for all platforms to catch these kinds of unintended aliasing and reduce the scope tostatic
of any global variables that are not meant to be accessed outside of the current source file.Below is a list of global variables that are not declared
static
and do not have a correspondingextern
declaration in any header file. The filenames and line numbers of the definitions are shown below each variable. These variables should most likely be changed tostatic
.It is a very long list, and some of these may not be that important once
-fno-common
is in place. The most important ones are the variables which are defined in more than one file.Line numbers are based on current master (2016.03-devel-996-g7b4e776)
adc_config_t adc_config[ADC_NUMOF];
adc_config_t adc_config[ADC_NUMOF];
int adc_max_value;
volatile int arm_abortflag = 0;
const char *bad_netaddr_from_string[] = {
uint16_t basedelay = 0, delaymsec = 0;
char *baud_list[] = {"115200", "57600", "38400",
char *baud_rate = "115200";
struct builtin_s bifs[];
struct builtin_s bifs[] = {
coap_block_t block = { .num = 0, .m = 0, .szx = 6 };
uint32_t blockSize = 32;
speed_t b_rate = BAUDRATE;
speed_t b_rate = BAUDRATE;
speed_t b_rate = BAUDRATE;
char buf[64000];
struct ccnl_buf_s *bufCleanUpList;
} builtin[] = {
uint16_t c1 = 0, c2 = 0;
uint16_t c1 = 0, c2 = 0;
const uint32_t cca[] = {
struct ccnl_suite_s ccnl_core_suites[CCNL_SUITE_LAST];
module_exit(ccnl_exit);
module_init(ccnl_init);
gnrc_netreg_entry_t ccnl_riot_ne;
const struct suite_vt_s ccnTlv_vt = {
const struct suite_vt_s ccnXmlb_vt = {
struct cfg_io cfg_io_file = {
const char *CFGLIST_BOOL[] = { CFGLIST_BOOL_VALUES };
const char *CFGLIST_BOOL_TRUE[] = { CFGLIST_BOOL_TRUE_VALUES };
struct cfg_parser cfg_parser_compact = {
const char *CFG_SCHEMA_SECTIONMODE[CFG_SSMODE_MAX] = {
const char *choices[] = {
const char *choices[] = {
const cipher_id_t CIPHER_RC5 = &rc5_interface;
in_addr_t circuit_addr;
in_addr_t circuit_addr;
error_desc_t coap_error[] = {
struct _acl_config _config;
struct rfc5444_reader_tlvblock_consumer consumer = {
unsigned char contentobj_buf[2000];
thread ctx_t *core_ctx = NULL;
long int count2[3] = { 1, 1, 10000 };
uint8_t counter_Decreasing = 0;
char *crystal = "16";
char *ux_path, *private_key, *ctrl_public_key;
coap_context_t *ctx; /* Holds the coap context for most tests */
volatile ull_t __cycles = 0;
dac_config_t dac_config[DAC_NUMOF];
struct cfg_db *db = NULL;
uint8_t debounce_flags[INT_PORTS];
uint16_t debounce_time[INT_PORTS][BITMASK_SIZE];
int debug_level = WARNING;
int debug_level = WARNING;
int debug_level;
int debug_level;
uint16_t basedelay = 0, delaymsec = 0;
uint32_t startsec, startmsec, delaystartsec, delaystartmsec;
uint32_t startsec, startmsec, delaystartsec, delaystartmsec;
} des3_key_s;
struct sockaddr_in dhaddr;
int dhsock = -1;
dht_t dht_devs[DHT_NUMOF];
volatile unsigned int *DWT_CONTROL = (unsigned int *)0xE0001000;
volatile unsigned int *DWT_CYCCNT = (unsigned int *)0xE0001004;
bool dynRange = false;
char *echopath = "/local/echo";
struct list_element elements1[COUNT], elements2[COUNT];
struct list_element elements1[COUNT], elements2[COUNT];
const uint32_t enable_lut = 0
const coap_endpoint_t endpoints[] =
struct ccnl_ethernet_s *etherqueue;
ethos_t ethos;
struct ccnl_timer_s *eventqueue;
struct ccnl_timer_s *eventqueue;
unsigned char faceinst_buf[2000];
const dig_t fb_sqrl_table[256] = { 0x0, 0x1, 0x4, 0x5, 0x10, 0x11, 0x14, 0x15,
const uint8_t fb_srt_table_evens[256] = { 0, 1, 16, 17, 2, 3, 18, 19, 32, 33,
const uint8_t fb_srt_table_odds[256] = { 0, 16, 1, 17, 32, 48, 33, 49, 2, 18, 3,
char **fileargs;
int filecnt;
char *file_name = "";
int flags = 0;
const uint8_t flash_configuration_field[] = {
int timestamp = 0, flowcontrol = 0;
unsigned char fwdentry_buf[2000];
in_addr_t giaddr;
in_addr_t giaddr;
ipv6_addr_t gnrc_ipv6_blacklist[GNRC_IPV6_BLACKLIST_SIZE];
ipv6_addr_t gnrc_ipv6_whitelist[GNRC_IPV6_WHITELIST_SIZE];
struct netaddr_string_tests good_netaddr_from_string[] = {
const saul_driver_t gpio_saul_driver = {
hashfp_t hashes[TESTS_BLOOM_HASHF] = {
hashfp_t hashes[BLOOM_HASHF] = {
char *heap_top = &_sheap + 4;
const char *HTTP_CONTENTTYPE_HTML = "text/html";
const char *HTTP_CONTENTTYPE_TEXT = "text/plain";
volatile uint32_t i2c_cmd;
volatile uint8_t i2c_master_buffer[I2C_BUFSIZE];
volatile uint32_t i2c_master_state = I2C_IDLE;
volatile uint32_t i2c_mode;
volatile uint32_t i2c_read_length;
volatile uint32_t i2c_slave_state = I2C_IDLE;
volatile uint32_t i2c_write_length;
IAP IAP_Entry;
const char *idle_name = "idle";
uint8_t ie1, ie2;
uint8_t ie1, ie2;
struct list_entity _ifchange_listener;
void * (* info_content_ccnTlv_ctor)(void *o) = 0;
void (* info_content_ccnTlv_dtor)(void *o) = 0;
const struct info_data_vt_s info_content_ccnTlv_vt = {
void * (* info_content_ccnXmlb_ctor)(void *o) = 0;
void (* info_content_ccnXmlb_dtor)(void *o) = 0;
const struct info_data_vt_s info_content_ccnXmlb_vt = {
void * (* info_content_ndnTlv_ctor)(void *o) = 0;
void (* info_content_ndnTlv_dtor)(void *o) = 0;
const struct info_data_vt_s info_content_ndnTlv_vt = {
void * (* info_cs_data_ctor)(void *o) = 0;
void (* info_cs_data_dtor)(void *o) = 0;
const struct info_mgmt_vt_s info_cs_data_vt = {
void * (* info_fib_rule_ctor)(void *o) = 0;
void (* info_fib_rule_dtor)(void *o) = 0;
const struct info_mgmt_vt_s info_fib_rule_vt = {
void * (* info_iface_conf_ctor)(void *o) = 0;
void (* info_iface_conf_dtor)(void *o) = 0;
const struct info_mgmt_vt_s info_iface_conf_vt = {
void * (* info_interest_ccnTlv_ctor)(void *o) = 0;
void (* info_interest_ccnTlv_dtor)(void *o) = 0;
const struct info_data_vt_s info_interest_ccnTlv_vt = {
void * (* info_interest_ccnXmlb_ctor)(void *o) = 0;
void (* info_interest_ccnXmlb_dtor)(void *o) = 0;
const struct info_data_vt_s info_interest_ccnXmlb_vt = {
void * (* info_interest_ndnTlv_ctor)(void *o) = 0;
void (* info_interest_ndnTlv_dtor)(void *o) = 0;
const struct info_data_vt_s info_interest_ndnTlv_vt = {
unsigned char initialized = 0;
struct cfg_instance instance;
const struct netaddr in_subnet_addrs[] = {
const bool in_subnet_results[6][5] = {
const struct netaddr in_subnet_subnets[]= {
int inter_ccn_interval = 100;
volatile uint16_t interruptTicksSMB380;
const void *interrupt_vector[] = {
ISR_VECTORS const void *interrupt_vector[] = {
ISR_VECTORS const void *interrupt_vector[] = {
ISR_VECTORS const void *interrupt_vector[] = {
ISR_VECTORS const void *interrupt_vector[] = {
ISR_VECTORS const void *interrupt_vector[] = {
const void *interrupt_vector[] = {
ISR_VECTORS const void *interrupt_vector[] = {
ISR_VECTORS const void *interrupt_vector[] = {
ISR_VECTORS const void *interrupt_vector[] = {
ISR_VECTORS const void *interrupt_vector[] = {
ISR_VECTORS const void *interrupt_vector[] = {
ISR_VECTORS const void *interrupt_vector[] = {
ISR_VECTORS const void *interrupt_vector[] = {
const void *interrupt_vector[] = {
ISR_VECTORS const void *interrupt_vector[] = {
const void *interrupt_vector[] = {
const void *interrupt_vector[] = {
const char IP_10_coloncolon_1[16] = {
const char *ipaddr;
const char *ipaddr;
const char *ipaddr;
const saul_driver_t isl29020_saul_driver = {
__attribute__((used,section(".isr_stack"))) uint8_t isr_stack[ISR_STACKSIZE];
char itoa_str[8];
uint8_t key1[] = {
uint8_t key2[] = {
unsigned char keyid[32];
unsigned char keyid[32];
unsigned char keyid[32];
unsigned char keyval[64];
unsigned char keyval[64];
unsigned char keyval[64];
} _known_prefixes[] = {
uint32_t _l2_origin_current, _l2_origin_old;
uint32_t _l2_origin_current, _l2_origin_old;
const saul_driver_t l3g4200d_saul_driver = {
int lifo[TEST_LIFO_MAX_ELEM + 1];
const saul_driver_t lis3dh_saul_driver = {
struct autobuf log_buf;
const char *LOG_SEVERITY_NAMES[LOG_SEVERITY_MAX+1] = {
const char *LOG_SOURCE_NAMES[LOG_MAXIMUM_SOURCES] = {
struct ccnl_face_s *loopback_face;
struct sector_info_struct lpc2106_layout[] = {
struct sector_info_struct lpc2138_layout[] = {
struct sector_info_struct lpc2214_layout[] = {
volatile uint32_t * const lpc_pin_registers[] = {
char *lpc_return_strings[] = {
const saul_driver_t lps331ap_saul_driver = {
const saul_driver_t lsm303dlhc_saul_acc_driver = {
const saul_driver_t lsm303dlhc_saul_mag_driver = {
unsigned char mac_addr[] = {0x55, 0x42, 0x41, 0x53, 0x45, 0x4c};
coap_context_t *main_coap_context;
kernel_pid_t main_id = KERNEL_PID_UNDEF;
const char *main_name = "main";
coap_tick_t max_wait; /* global timeout (changed by set_timeout()) */
const sha2_word32 K256[64] _MEMLOCATION_ = {
method_t method = 1; /* the method we are using in our requests */
struct timer_msg msg_a = { .interval = 2*(1000000), .text = "Hello World", };
struct timer_msg msg_a = { .interval = (TEST_INTERVAL / 2) };
struct timer_msg msg_b = { .interval = 5*(1000000), .text = "This is a Test" };
struct timer_msg msg_b = { .interval = (TEST_INTERVAL / 3) };
struct timer_msg msg_c = { .interval = (TEST_INTERVAL * 5) };
struct timer_msg msg_d = { .interval = (TEST_INTERVAL * 2) };
msg_t msg_queue[MSG_QUEUE_LENGTH];
unsigned char msgtype = COAP_MESSAGE_CON; /* usually, requests are sent confirmable */
pthread_mutex_t mtx;
mutex_t mtx = MUTEX_INIT;
nvram_t *mulle_nvram = &mulle_nvram_dev;
const multiboot_header_t multiboot_header = {
volatile bool my_alarm = false;
char names[SEMAPHORE_TEST_THREADS][16];
char **_native_argv;
ucontext_t *_native_cur_ctx, *_native_isr_ctx;
int _native_in_calloc = 1;
int _native_in_calloc = 0;
int _native_in_malloc = 0;
ucontext_t *_native_cur_ctx, *_native_isr_ctx;
const char *_native_unix_socket_path = NULL;
const struct suite_vt_s ndnTlv_vt = {
struct _command_params _neigh_params = {
const char *netmask;
const char *netmask;
const char *netmask;
struct _command_params _net_params = {
char nhdp_rcv_stack[NHDP_STACK_SIZE];
char nhdp_stack[NHDP_STACK_SIZE];
coap_queue_t *node[5];
unsigned int obs_seconds = 30; /* default observe time */
coap_tick_t obs_wait = 0; /* timeout for current subscription */
struct termios old_term_setting;
const char *OONF_CLASS_EVENT_NAME[] = {
const char *OONF_DUPSET_RESULT_STR[OONF_DUPSET_MAX] = {
struct oonf_subsystem oonf_linkconfig_subsystem = {
struct list_entity oonf_stream_head;
struct avl_tree oonf_telnet_cmd_tree;
struct builtin_s *op_extensions;
coap_opt_filter_t opts; /* option filter used for generating responses */
unsigned char out[8*CCNL_MAX_PACKET_SIZE];
unsigned char out1[2000], out2[1000], out3[500];
unsigned char out1[2000], out2[1000], out3[500];
unsigned char out1[2000], out2[1000], out3[500];
unsigned char out_buf[2000];
int outlen;
kernel_pid_t p1 = KERNEL_PID_UNDEF, p_main = KERNEL_PID_UNDEF;
kernel_pid_t p1 = KERNEL_PID_UNDEF, p_main = KERNEL_PID_UNDEF;
kernel_pid_t p1, p2, p3;
kernel_pid_t p_main = KERNEL_PID_UNDEF, p1 = KERNEL_PID_UNDEF,
kernel_pid_t p1, p2, p3;
p2 = KERNEL_PID_UNDEF, p3 = KERNEL_PID_UNDEF;
kernel_pid_t p1, p2, p3;
p2 = KERNEL_PID_UNDEF, p3 = KERNEL_PID_UNDEF;
coap_pdu_t *pdu; /* Holds the request PDU for most tests */
coap_pdu_t *pdu; /* Holds the parsed PDU for most tests */
coap_pdu_t *pdu; /* Holds the parsed PDU for most tests */
int pending_client_tasks;
int phaseOne;
const unsigned int pin_lut[] = {
int pipeT2R[2]; // timer thread to relay
uint32_t PIT_ticks_per_usec = (DEFAULT_SYSTEM_CLOCK / 1000000ul);
int plen;
kernel_pid_t p1 = KERNEL_PID_UNDEF, p_main = KERNEL_PID_UNDEF;
kernel_pid_t p1 = KERNEL_PID_UNDEF, p_main = KERNEL_PID_UNDEF;
kernel_pid_t p_main = KERNEL_PID_UNDEF, p1 = KERNEL_PID_UNDEF,
kernel_pid_t PointerList[SMB380_RING_BUFF_MAX_THREADS];
socket_t _pool[SOCKET_POOL_SIZE];
mutex_t _pool_mutex = MUTEX_INIT;
char *port_name = "/dev/ttyUSB1";
char *port_name = "/dev/ttyUSB1";
int prefix_cmp_suite;
void __attribute__((section(".preinit_array")))(*preinit__stack_chk_guard_setup[])(void) = {__stack_chk_guard_setup};
volatile char print_buf[64 + 1];
char *ux_path, *private_key, *ctrl_public_key;
char *private_key_path;
const char secret_key[] PROGMEM = "some secret secret secret secret";
const char compile_string[] PROGMEM = ""
const char secret_key[] PROGMEM = "some secret secret secret secret";
const char *_progname;
int programming_done = 0;
int programming_status = 0;
void (*_putchar)(int c) = _dummy;
volatile uint32_t rd_index = 0;
uint16_t readPointerPos[SMB380_RING_BUFF_MAX_THREADS];
int (*real_accept)(int socket, ...);
int (*real_bind)(int socket, ...);
void* (*real_calloc)(size_t nmemb, size_t size);
int (*real_chdir)(const char *path);
void (*real_clearerr)(FILE *stream);
int (*real_clock_gettime)(clockid_t clk_id, struct timespec *tp);
int (*real_close)(int);
int (*real_creat)(const char *path, ...);
int (*real_dup2)(int, int);
int (*real_execve)(const char *, char *const[], char *const[]);
__attribute__((noreturn)) void (*real_exit)(int status);
int (*real_feof)(FILE *stream);
int (*real_ferror)(FILE *stream);
FILE* (*real_fopen)(const char *path, const char *mode);
int (*real_fork)(void);
size_t (*real_fread)(void *ptr, size_t size, size_t nmemb, FILE *stream);
void (*real_free)(void *ptr);
void (*real_freeaddrinfo)(struct addrinfo *res);
void (*real_freeifaddrs)(struct ifaddrs *ifa);
const char* (*real_gai_strerror)(int errcode);
int (*real_getaddrinfo)(const char *node, ...);
int (*real_getifaddrs)(struct ifaddrs **ifap);
int (*real_getpid)(void);
int (*real_ioctl)(int fildes, int request, ...);
int (*real_listen)(int socket, int backlog);
void* (*real_malloc)(size_t size);
int (*real_open)(const char *path, int oflag, ...);
int (*real_pause)(void);
int (*real_pipe)(int[2]);
int (*real_printf)(const char *format, ...);
long int (*real_random)(void);
ssize_t (*real_read)(int fd, void *buf, size_t count);
void* (*real_realloc)(void *ptr, size_t size);
int (*real_select)(int nfds, ...);
int (*real_setitimer)(int which, const struct itimerval
int (*real_setsid)(void);
int (*real_setsockopt)(int socket, ...);
int (*real_socket)(int domain, int type, int protocol);
void (*real_srandom)(unsigned int seed);
mode_t (*real_umask)(mode_t cmask);
int (*real_unlink)(const char *);
ssize_t (*real_write)(int fd, const void *buf, size_t count);
ssize_t (*real_writev)(int fildes, const struct iovec *iov, int iovcnt);
int received;
float32_t refVarianceOut = 0.903941793931839;
struct ccnl_relay_s relays[5];
int32_t res[NUMOF];
rd_t *resources = NULL;
uint8_t result[] = {
uint8_t result[] = {
uint8_t result1[] = {
uint8_t result1[3][20] = {
uint8_t result1[] = {
uint8_t result1[] = {
uint8_t result1[] = {
uint8_t result1[] = {
uint8_t result1[] = {
uint8_t result1[] = {
uint8_t result1[40] = {
uint8_t result2[] = {
uint8_t result2[] = {
uint8_t result2[] = {
uint8_t result2[] = {
uint8_t result2[] = {
uint8_t result2[] = {
uint8_t result2[] = {
uint8_t result2[160] = {
uint8_t result224[3][28] = {
uint8_t result256[3][32] = {
uint8_t result384[4][48] = {
uint8_t result512[4][64] = {
uint8_t resultk[] = {
uint8_t resultp[] = {
volatile int16_t *ringBuff_T = NULL;
volatile int16_t *ringBuff_X = NULL;
volatile int16_t *ringBuff_Y = NULL;
volatile int16_t *ringBuff_Z = NULL;
kernel_pid_t rtc_second_pid = KERNEL_PID_UNDEF;
struct list_entity _rtnetlink_feedback;
struct list_entity _rtnetlink_feedback;
const uint32_t _rtnetlink_mcast[] = {
struct os_system_netlink _rtnetlink_socket = {
} rw;
char rx_handler_stack[THREAD_STACKSIZE_MAIN];
seq16_t s16_1, s16_2;
seq16_t s16_1, s16_2;
seq32_t s32_1, s32_2;
seq32_t s32_1, s32_2;
seq64_t s64_1, s64_2;
seq64_t s64_1, s64_2;
seq8_t s8_1, s8_2;
seq8_t s8_1, s8_2;
uint16_t sampleRateSMB380; // condition if range-check should be done
saul_reg_t *saul_reg = NULL;
volatile unsigned int *SCB_DEMCR = (unsigned int *)0xE000EDFC;
volatile thread_t *sched_active_thread;
clist_node_t *sched_runqueues[SCHED_PRIO_LEVELS];
volatile thread_t *sched_threads[KERNEL_PID_LAST + 1];
coap_rw_buffer_t scratch_buf = { scratch_raw, sizeof(scratch_raw) };
uint8_t scratch_raw[1024]; /* microcoap scratch buffer */
char second_thread_stack[THREAD_STACKSIZE_MAIN];
char second_thread_stack[THREAD_STACKSIZE_MAIN];
const char secret_key[] = "some secret secret secret secret";
uint8_t seed1[60];
uint8_t seed1[62];
uint8_t seed1[63];
uint8_t seed1[123];
uint8_t seed1[127];
uint8_t seed1[60];
uint8_t seed1[63];
const uint8_t *segments_lcdmem[] = {
struct ccnl_prefix_s sensor;
char* sensor_comp[2] = {sensor_mac, "\x00\x01\x00\x04temp"};
char* sensor_comp[2] = {sensor_mac, "temp"};
int sensor_len[2];
char sensor_mac[16]; // ascii (hex) representation + 4 CCNx TL bytes
char sensor_mac[12];
pthread_t serial_reader;
settingsSMB380 settings;
mutex_t sht11_mutex = MUTEX_INIT;
float sht11_temperature_offset;
char sigalt_stk[SIGSTKSZ];
pid_t _sigio_child_pid;
int16_t simple_buffer[4];
kernel_pid_t simple_pid = KERNEL_PID_UNDEF;
char slacker_stack1[THREAD_STACKSIZE_DEFAULT];
char slacker_stack2[THREAD_STACKSIZE_DEFAULT];
int slip_end, slip_begin;
int slip_end, slip_begin;
int slip_end, slip_begin;
unsigned char slip_buf[2000];
unsigned char slip_buf[2000];
unsigned char slip_buf[2000];
int slip_end, slip_begin;
int slip_end, slip_begin;
int slip_end, slip_begin;
int slipfd = 0;
uint8_t (*smb380function)(int16_t *);
char snd_thread_stack[THREAD_STACKSIZE_MAIN];
void *__stack_chk_guard = 0;
} stackPtr;
char stacks[PROBLEM][THREAD_STACKSIZE_MAIN];
char stack_timer1[STACKSIZE_TIMER];
char stack_timer2[STACKSIZE_TIMER];
uint32_t startsec, startmsec, delaystartsec, delaystartmsec;
uint32_t startsec, startmsec, delaystartsec, delaystartmsec;
const char *state_names[] = {
int stopped = 0;
volatile int storage = 1;
volatile int storage = 1;
struct netaddr_string_tests string_tests[] = {
char suite = CCNL_SUITE_DEFAULT;
unsigned int sum = 0;
uint32_t system_clock = CORE_CLK;/*!< System Clock Frequency (Core Clock)*/
char t1_stack[THREAD_STACKSIZE_MAIN];
char t1_stack[THREAD_STACKSIZE_MAIN];
char t1_stack[THREAD_STACKSIZE_MAIN];
char t1_stack[THREAD_STACKSIZE_MAIN];
char t2_stack[THREAD_STACKSIZE_MAIN];
char t2_stack[THREAD_STACKSIZE_MAIN];
char t2_stack[THREAD_STACKSIZE_MAIN];
char t3_stack[THREAD_STACKSIZE_MAIN];
char t3_stack[THREAD_STACKSIZE_MAIN];
struct oonf_telnet_command _telnet_commands[] = {
uint8_t test1[20] = {
uint8_t test2[20] = {
coap_dynamic_uri_t *test_dynamic_uris = NULL;
float32_t testInput_f32[32] =
coap_payload_t *test_resources = NULL;
char *tests[3] = {
char *tests2[3] = {
tftp_opt_t _tftp_modes[] = {
tftp_opt_t _tftp_options[] = {
char _tftp_stack[THREAD_STACKSIZE_MAIN + THREAD_EXTRA_STACKSIZE_PRINTF];
coap_context_t the_coap_context;
ALooper *theLooper;
char theSuite = CCNL_SUITE_DEFAULT;
str the_token = { 0, _token_data };
char third_thread_stack[THREAD_STACKSIZE_MAIN];
pthread_t ths[NUM_THREADS];
kernel_pid_t ths[PROBLEM];
struct coap_resource_t *time_resource = NULL;
pthread_mutex_t timer_mutex = PTHREAD_MUTEX_INITIALIZER;
char timer_stack[THREAD_STACKSIZE_MAIN];
char timer_stack_local[THREAD_STACKSIZE_MAIN];
pthread_t timer_thread;
volatile int timer_usec = -1;
const uint64_t TIMESLICE = 100;
int timestamp = 0, flowcontrol = 0;
int total = 0;
struct oonf_timer_entry _transmission_timer = {
int tty_fd;
char tundev[1024] = { "tap0" };
char tundev[1024] = { "" };
char tundev[1024] = { "tun0" };
char *unix_path;
int uri_to_prefix_suite = 0;
volatile char *util_print_ptr;
char *ux_path, *private_key, *ctrl_public_key;
int values[COUNT] = { 1,2,3,4,5,6 };
int verbose = 1;
unsigned int wait_seconds = 90; /* default timeout in seconds */
float32_t wire1[MAX_BLOCKSIZE];
float32_t wire2[MAX_BLOCKSIZE];
float32_t wire3[MAX_BLOCKSIZE];
char *witness;
char worker_stack[THREAD_STACKSIZE_MAIN];
volatile uint32_t wr_index = 0;
uint8_t x86_current_interrupt;
unsigned long x86_current_interrupt_error_code;
struct x86_pushad x86_interrupted_ctx;
char x86_interrupt_handler_stack[2048];
The text was updated successfully, but these errors were encountered: