diff --git a/core/hwtimer.c b/core/hwtimer.c index 217fe57234a69a5f65d070718b3257832169eae5..6f0c691d4bb53e9c85663e0aba555deb2f2174ea 100644 --- a/core/hwtimer.c +++ b/core/hwtimer.c @@ -122,13 +122,12 @@ void hwtimer_wait(unsigned long ticks) { DEBUG("hwtimer_wait ticks=%lu\n", ticks); - mutex_t mutex; - if (ticks <= 6 || inISR()) { hwtimer_spin(ticks); return; } - mutex_init(&mutex); + + mutex_t mutex = MUTEX_INIT; mutex_lock(&mutex); /* -2 is to adjust the real value */ int res = hwtimer_set(ticks - 2, hwtimer_releasemutex, &mutex); diff --git a/drivers/cc110x/cc1100_phy.c b/drivers/cc110x/cc1100_phy.c index 9b5fbbca2569372acb5c9ad154974d6761fd14d4..4bbc95162291338053768051617886a098859c08 100644 --- a/drivers/cc110x/cc1100_phy.c +++ b/drivers/cc110x/cc1100_phy.c @@ -82,7 +82,7 @@ static packet_monitor_t packet_monitor; static handler_entry_t handlers[MAX_PACKET_HANDLERS]; static const pm_table_t handler_table; static const char *cc1100_event_handler_name = "cc1100_event_handler"; -static mutex_t cc1100_mutex; +static mutex_t cc1100_mutex = MUTEX_INIT; volatile int cc1100_mutex_pid; static vtimer_t cc1100_watch_dog; static timex_t cc1100_watch_dog_period; @@ -175,7 +175,6 @@ void cc1100_phy_init(void) /* Initialize mutex */ cc1100_mutex_pid = -1; - mutex_init(&cc1100_mutex); /* Allocate event numbers and start cc1100 event process */ cc1100_event_handler_pid = thread_create(event_handler_stack, sizeof(event_handler_stack), PRIORITY_CC1100, CREATE_STACKTEST, diff --git a/drivers/sht11/sht11.c b/drivers/sht11/sht11.c index bd3699da39da4475f2b503f817bfcb954af1a47f..0821c0d666a1199a78e61eb27bf1b0c4f8678aaa 100644 --- a/drivers/sht11/sht11.c +++ b/drivers/sht11/sht11.c @@ -85,7 +85,7 @@ static void transmission_start(void); static inline void clk_signal(void); /* mutex for exclusive measurement operation */ -mutex_t sht11_mutex; +mutex_t sht11_mutex = MUTEX_INIT; /*---------------------------------------------------------------------------*/ static inline void clk_signal(void) @@ -266,7 +266,6 @@ static uint8_t measure(uint8_t *p_value, uint8_t *p_checksum, uint8_t mode) void sht11_init(void) { sht11_temperature_offset = 0; - mutex_init(&sht11_mutex); SHT11_INIT; hwtimer_wait(11 * HWTIMER_TICKS(1000)); } diff --git a/sys/net/network_layer/sixlowpan/lowpan.c b/sys/net/network_layer/sixlowpan/lowpan.c index 3bb4d1c72cddffee7250841cb8160cb86d057ea7..c8bb0a36f9fe9346aa831adaa19dd5509a4f0bfc 100644 --- a/sys/net/network_layer/sixlowpan/lowpan.c +++ b/sys/net/network_layer/sixlowpan/lowpan.c @@ -121,14 +121,14 @@ uint8_t frag_size; uint8_t reas_buf[512]; uint8_t comp_buf[512]; uint8_t first_frag = 0; -mutex_t fifo_mutex; +mutex_t fifo_mutex = MUTEX_INIT; int ip_process_pid = 0; int nd_nbr_cache_rem_pid = 0; int contexts_rem_pid = 0; int transfer_pid = 0; -mutex_t lowpan_context_mutex; +mutex_t lowpan_context_mutex = MUTEX_INIT; /* registered upper layer threads */ int sixlowpan_reg[SIXLOWPAN_MAX_REGISTERED]; @@ -1788,12 +1788,6 @@ int sixlowpan_lowpan_init(void) /* init mac-layer and radio transceiver */ sixlowpan_mac_init(); - /* init lowpan context mutex */ - mutex_init(&lowpan_context_mutex); - - /* init packet_fifo mutex */ - mutex_init(&fifo_mutex); - if (!ip_process_pid) { ip_process_pid = thread_create(ip_process_buf, IP_PROCESS_STACKSIZE, PRIORITY_MAIN - 1, CREATE_STACKTEST, diff --git a/sys/net/routing/etx_beaconing.c b/sys/net/routing/etx_beaconing.c index 1bc6c64c4fa7d0b92dc754f7e45e3e123f1819d9..680b08dfd8381ba5b2870dafcb553e2f82db6f89 100644 --- a/sys/net/routing/etx_beaconing.c +++ b/sys/net/routing/etx_beaconing.c @@ -98,7 +98,7 @@ static etx_neighbor_t candidates[ETX_MAX_CANDIDATE_NEIGHBORS]; * In this time, no packet may be handled, otherwise it could assume values * from the last round to count for this round. */ -mutex_t etx_mutex; +mutex_t etx_mutex = MUTEX_INIT; //Transceiver command for sending ETX probes transceiver_command_t tcmd; @@ -141,7 +141,6 @@ void etx_show_candidates(void) void etx_init_beaconing(ipv6_addr_t *address) { - mutex_init(&etx_mutex); own_address = address; //set code puts("ETX BEACON INIT"); diff --git a/sys/net/routing/rpl/rpl.c b/sys/net/routing/rpl/rpl.c index 401233856b94fc1239066215363b9ef454763e6d..713d41ed482d9b5224b2ec3820756d36778d805d 100644 --- a/sys/net/routing/rpl/rpl.c +++ b/sys/net/routing/rpl/rpl.c @@ -50,8 +50,8 @@ char addr_str[IPV6_MAX_ADDR_STR_LEN]; rpl_of_t *rpl_objective_functions[NUMBER_IMPLEMENTED_OFS]; rpl_routing_entry_t rpl_routing_table[RPL_MAX_ROUTING_ENTRIES]; unsigned int rpl_process_pid; -mutex_t rpl_recv_mutex; -mutex_t rpl_send_mutex; +mutex_t rpl_recv_mutex = MUTEX_INIT; +mutex_t rpl_send_mutex = MUTEX_INIT; msg_t rpl_msg_queue[RPL_PKT_RECV_BUF_SIZE]; char rpl_process_buf[RPL_PROCESS_STACKSIZE]; uint8_t rpl_buffer[BUFFER_SIZE - LL_HDR_LEN]; @@ -73,8 +73,6 @@ rpl_of_t *rpl_get_of_for_ocp(uint16_t ocp) uint8_t rpl_init(int if_id) { - mutex_init(&rpl_send_mutex); - mutex_init(&rpl_recv_mutex); rpl_instances_init(); /* initialize routing table */ diff --git a/sys/vtimer/vtimer.c b/sys/vtimer/vtimer.c index bccda6cb132caf8379617e5f7e1a0c27071fbf4e..c03714033a42ca4fdd3596e6ed5139dac6af1ec8 100644 --- a/sys/vtimer/vtimer.c +++ b/sys/vtimer/vtimer.c @@ -343,8 +343,7 @@ int vtimer_sleep(timex_t time) int ret; vtimer_t t; - mutex_t mutex; - mutex_init(&mutex); + mutex_t mutex = MUTEX_INIT; mutex_lock(&mutex); t.action = vtimer_callback_unlock; diff --git a/tests/test_mutex_unlock_and_sleep/main.c b/tests/test_mutex_unlock_and_sleep/main.c index 7e2c9999f172afb6654185fee445060b907a2b67..c39914442cf7ab8ce020318e9173eb44645bf97e 100644 --- a/tests/test_mutex_unlock_and_sleep/main.c +++ b/tests/test_mutex_unlock_and_sleep/main.c @@ -22,7 +22,7 @@ #include "thread.h" #include "mutex.h" -static mutex_t mutex; +static mutex_t mutex = MUTEX_INIT; static volatile int indicator, count; static char stack[KERNEL_CONF_STACKSIZE_MAIN]; @@ -42,7 +42,6 @@ int main(void) { indicator = 0; count = 0; - mutex_init(&mutex); thread_create(stack, sizeof(stack), diff --git a/tests/test_pthread_condition_variable/main.c b/tests/test_pthread_condition_variable/main.c index 92c8f1f1babef058dfb1de18d57fcad8f334a035..ff83f8dd7c062f0eed49f3441408ba67df88ad5f 100644 --- a/tests/test_pthread_condition_variable/main.c +++ b/tests/test_pthread_condition_variable/main.c @@ -22,7 +22,7 @@ #include "pthread.h" #include "thread.h" -static mutex_t mutex; +static mutex_t mutex = MUTEX_INIT; static struct pthread_cond_t cv; static volatile int is_finished; static volatile long count; @@ -55,7 +55,6 @@ int main(void) count = 0; is_finished = 0; expected_value = 1000*1000; - mutex_init(&mutex); pthread_cond_init(&cv, NULL); int pid = thread_create(stack, diff --git a/tests/test_thread_cooperation/main.c b/tests/test_thread_cooperation/main.c index 41c8e809b19b01c33f765c6af6c5cbe911b30ea8..58bdb39bc8215ebaee7cb66044647211e33247e8 100644 --- a/tests/test_thread_cooperation/main.c +++ b/tests/test_thread_cooperation/main.c @@ -26,7 +26,7 @@ #define PROBLEM 12 -mutex_t mtx; +mutex_t mtx = MUTEX_INIT; volatile int storage = 1; int main_id; @@ -63,8 +63,6 @@ int main(void) { main_id = thread_getpid(); - mutex_init(&mtx); - printf("Problem: %d\n", PROBLEM); msg_t args[PROBLEM];