void pci_pool_destroy(struct pci_pool *pool)
{
	if (pool->memory) {
		pool->memory->complete();
		SAFE_RELEASE(pool->memory);
	}
	kern_os_free(pool);
}
Example #2
0
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);
}
Example #3
0
void operator delete( void * addr)
{
    kern_os_free( addr);
}
void vfree(void *addr)
{
  if (addr)
    kern_os_free(addr);
}