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; }
CAN::~CAN() { // No lock needed in destructor can_irq_free(&_can); can_free(&_can); }
CAN::~CAN() { can_free(&_can); }
CAN::~CAN() { can_irq_free(&_can); can_free(&_can); }