Example #1
0
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;                                            
}                                                             
Example #2
0
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;
}
Example #3
0
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;                                            
}                   	
Example #4
0
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;                                            
}                                                             
Example #5
0
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;
}
Example #6
0
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;
}