void pci_pool_destroy(struct pci_pool *pool) { if (pool->memory) { pool->memory->complete(); SAFE_RELEASE(pool->memory); } kern_os_free(pool); }
void * kern_os_realloc( void * addr, size_t nsize) { struct _mhead * ohdr; struct _mhead * nmem; size_t nmemsize, osize; if (!addr) { return (kern_os_malloc(nsize)); } ohdr = (struct _mhead *)addr; ohdr--; osize = ohdr->mlen - sizeof(*ohdr); if (nsize == osize) { return (addr); } if (nsize == 0) { kern_os_free(addr); return (0); } nmemsize = sizeof (*nmem) + nsize ; nmem = (struct _mhead *) kalloc(nmemsize); if (!nmem) { kern_os_free(addr); return (0); } #if OSALLOCDEBUG debug_iomalloc_size += (nmemsize - ohdr->mlen); #endif nmem->mlen = nmemsize; if (nsize > osize) { (void) memset(&nmem->dat[osize], 0, nsize - osize); } (void)memcpy(nmem->dat, ohdr->dat, (nsize > osize) ? osize : nsize); kfree(ohdr, ohdr->mlen); return (nmem->dat); }
void operator delete( void * addr) { kern_os_free( addr); }
void vfree(void *addr) { if (addr) kern_os_free(addr); }