static void handle_request( struct imt_rpc_req *req ) { DBG2("imt: req: id %4d cmd %X len %3d par %08X rsp %08X", req->id, req->cmd, req->len, req->par, req->rsp ); if( req->cmd == IMT_CONNECTED ) { DBG("imt: CONNECTED: %02X", req->rsp); // no need to reply return; } else if( req->cmd == IMT_TRACE ) { DBG2("imt: TRACE: %d", req->par); output_trace(req->data); // TRACE does not respond! // reply( req, IMT_TRACED, 16, req->par ); } else if( req->cmd == IMT_MALLOC ) { uint32_t data = 0; DBG2("imt: MALLOC: %d", req->par); #if defined(CONFIG_ION_OMAP) data = tiler_alloc( req->par ); #endif reply( req, IMT_MALLOCED, 16, data ); } else if( req->cmd == IMT_FREE ) { DBG2("imt: FREE: %08X", req->par); #if defined(CONFIG_ION_OMAP) tiler_free( req->par ); #endif reply( req, IMT_FREED, 16, req->par ); } else { // we dont know that command ERR("imt: CONFUSED!: %X", req->cmd); reply( req, IMT_CONFUSED, 16, req->par ); } }
/* NAME {* bdd\_done*} SECTION {* kernel *} SHORT {* resets the bdd package *} PROTO {* void bdd_done(void) *} DESCR {* This function frees all memory used by the bdd package and resets the package to it's initial state.*} ALSO {* bdd\_init *} */ void bdd_done(void) { /*sanitycheck(); FIXME */ if(trace_enable) output_trace(); bdd_fdd_done(); bdd_reorder_done(); bdd_pairs_done(); free(bddnodes); free(bddrefstack); free(bddvarset); free(bddvar2level); free(bddlevel2var); bddnodes = NULL; bddrefstack = NULL; bddvarset = NULL; bddvar2level = NULL; bddlevel2var = NULL; bdd_operator_done(); bddrunning = 0; bddnodesize = 0; bddmaxnodesize = 0; bddvarnum = 0; bddproduced = 0; err_handler = NULL; gbc_handler = NULL; resize_handler = NULL; }