static void romdisk_remove(struct device_t * dev) { struct block_t * blk = (struct block_t *)dev->priv; if(blk && unregister_block(blk)) { free_device_name(blk->name); free(blk->priv); free(blk); } }
static bool_t spi_flash_unregister(struct resource_t * res) { struct block_t * blk; char name[64]; snprintf(name, sizeof(name), "%s.%d", res->name, res->id); blk = search_block(name); if(!blk) return FALSE; if(!unregister_block(blk)) return FALSE; spi_device_free(((struct spi_flash_private_data_t *)blk->priv)->dev); free(blk->priv); free(blk->name); free(blk); return TRUE; }
static bool_t unregister_romdisk(const char * name) { struct block_t * blk; struct romdisk_t * romdisk; if(!name) return FALSE; blk = search_block(name); if(!blk) return FALSE; romdisk = (struct romdisk_t *)(blk->priv); if(!unregister_block(blk)) return FALSE; free(romdisk->name); free(romdisk); free(blk); return TRUE; }
static bool_t unregister_application(const char * name) { struct block_t * blk; struct application_t * app; if(!name) return FALSE; blk = search_block(name); if(!blk) return FALSE; app = (struct application_t *)(blk->priv); if(!unregister_block(blk)) return FALSE; free(app->name); free(app); free(blk); return TRUE; }