Beispiel #1
0
BOOL release_db_mem(INT32 db_code)
{
	INT32 ret;
	ret = ERR_FAILED;
	// two case:nofree DB_NODE  or  x_mem no free space
	if( (ERR_FAILED==db_code) && (db_block.index < db_block.max_count) )
		db_code = ERR_NO_MEM;
	if(ERR_NO_MEM==db_code)
	{// free data: first choice, free one day extend data; second choice, free one day data; third choice, free one tp data
		if(can_free(EXT_DATA)&&ret!=SUCCESS)
			ret = data_release_extend();
		if(can_free(EVN_DATA)&&ret!=SUCCESS)
			ret = data_release_event();
		while(can_free(TP_DATA)&&ret!=SUCCESS)
			ret = data_release_tp();
	}
	else
	{// no free DB_NODE, free event node: first choice, free one day event data; second choice, free one tp data
		if(can_free(EVN_DATA)&&ret!=SUCCESS)
			ret = data_release_event();
		while(can_free(TP_DATA)&&ret!=SUCCESS)
			ret = data_release_tp();
	}
	return ret;
}
Beispiel #2
0
CAN::~CAN() {
    // No lock needed in destructor
    can_irq_free(&_can);
    can_free(&_can);
}
Beispiel #3
0
CAN::~CAN() {
    can_free(&_can);
}
Beispiel #4
0
CAN::~CAN() {
    can_irq_free(&_can);
    can_free(&_can);
}