int8_t ker_sys_timer_restart(uint8_t tid, int32_t interval) { sos_pid_t my_id = ker_get_current_pid(); if( ker_timer_restart(my_id, tid, interval) != SOS_OK ) { return ker_mod_panic(my_id); } return SOS_OK; }
int8_t ker_sys_post(sos_pid_t did, uint8_t type, uint8_t size, void *data, uint16_t flag) { sos_pid_t my_id = ker_get_current_pid(); if(post_long(did, my_id, type, size, data, flag) != SOS_OK ) { return ker_mod_panic(my_id); } return SOS_OK; }
int8_t ker_sys_timer_stop(uint8_t tid) { sos_pid_t my_id = ker_get_current_pid(); if( (ker_timer_stop(my_id, tid) != SOS_OK) || (ker_timer_release(my_id, tid) != SOS_OK) ) { return ker_mod_panic(my_id); } return SOS_OK; }
int8_t ker_sys_timer_start(uint8_t tid, int32_t interval, uint8_t type) { sos_pid_t my_id = ker_get_current_pid(); if( (ker_timer_init(my_id, tid, type) != SOS_OK) || (ker_timer_start(my_id, tid, interval) != SOS_OK)) { return ker_mod_panic(my_id); } return SOS_OK; }
void* ker_sys_msg_take_data(Message *msg) { sos_pid_t my_id = ker_get_current_pid(); void *ret = ker_msg_take_data(my_id, msg); if( ret != NULL ) { return ret; } #ifndef SOS_TEST_SUITE ker_mod_panic(my_id); #endif return NULL; }
int8_t ker_sys_post_value(sos_pid_t dst_mod_id, uint8_t type, uint32_t data, uint16_t flag) { Message *m = msg_create(); sos_pid_t my_id = ker_get_current_pid(); if(m == NULL){ return ker_mod_panic(my_id); } m->daddr = node_address; m->did = dst_mod_id; m->type = type; m->saddr = node_address; m->sid = my_id; m->len = 4; *((uint32_t*)(m->data)) = data; #ifdef SOS_USE_PREEMPTION // assign priority based on did m->priority = get_module_priority(dst_mod_id); #endif m->flag = flag & ((sos_ker_flag_t)(~SOS_MSG_RELEASE)); sched_msg_alloc(m); return SOS_OK; }