Exemplo n.º 1
0
static void etna_device_del_impl(struct etna_device *dev)
{
	etna_cleanup_bo_cache(dev, 0);
	drmHashDestroy(dev->handle_table);
	drmHashDestroy(dev->name_table);

	free(dev);
}
Exemplo n.º 2
0
static void fd_device_del_impl(struct fd_device *dev)
{
	fd_cleanup_bo_cache(dev, 0);
	drmHashDestroy(dev->handle_table);
	drmHashDestroy(dev->name_table);
	if (dev->closefd)
		close(dev->fd);
	dev->funcs->destroy(dev);
}
Exemplo n.º 3
0
drm_public void drm_tegra_close(struct drm_tegra *drm)
{
	if (!drm)
		return;

	drm_tegra_bo_cache_cleanup(drm, 0);
	drmHashDestroy(drm->handle_table);
	drmHashDestroy(drm->name_table);

	if (drm->close)
		close(drm->fd);

	free(drm);
}
Exemplo n.º 4
0
drm_public void omap_device_del(struct omap_device *dev)
{
	if (!atomic_dec_and_test(&dev->refcnt))
		return;
	pthread_mutex_lock(&table_lock);
	drmHashDestroy(dev->handle_table);
	drmHashDelete(dev_table, dev->fd);
	pthread_mutex_unlock(&table_lock);
	free(dev);
}
Exemplo n.º 5
0
void hash_destroy(struct locked_hash_table *table)
{
	drmHashDestroy(table->table);
}
Exemplo n.º 6
0
int main(void)
{
    HashTablePtr  table;
    unsigned long i;
    int           ret = 0;

    printf("\n***** 256 consecutive integers ****\n");
    table = drmHashCreate();
    for (i = 0; i < 256; i++)
        drmHashInsert(table, i, (void *)(i << 16 | i));
    for (i = 0; i < 256; i++)
        ret |= check_table(table, i, (void *)(i << 16 | i));
    compute_dist(table);
    drmHashDestroy(table);

    printf("\n***** 1024 consecutive integers ****\n");
    table = drmHashCreate();
    for (i = 0; i < 1024; i++)
        drmHashInsert(table, i, (void *)(i << 16 | i));
    for (i = 0; i < 1024; i++)
        ret |= check_table(table, i, (void *)(i << 16 | i));
    compute_dist(table);
    drmHashDestroy(table);

    printf("\n***** 1024 consecutive page addresses (4k pages) ****\n");
    table = drmHashCreate();
    for (i = 0; i < 1024; i++)
        drmHashInsert(table, i*4096, (void *)(i << 16 | i));
    for (i = 0; i < 1024; i++)
        ret |= check_table(table, i*4096, (void *)(i << 16 | i));
    compute_dist(table);
    drmHashDestroy(table);

    printf("\n***** 1024 random integers ****\n");
    table = drmHashCreate();
    srandom(0xbeefbeef);
    for (i = 0; i < 1024; i++)
        drmHashInsert(table, random(), (void *)(i << 16 | i));
    srandom(0xbeefbeef);
    for (i = 0; i < 1024; i++)
        ret |= check_table(table, random(), (void *)(i << 16 | i));
    srandom(0xbeefbeef);
    for (i = 0; i < 1024; i++)
        ret |= check_table(table, random(), (void *)(i << 16 | i));
    compute_dist(table);
    drmHashDestroy(table);

    printf("\n***** 5000 random integers ****\n");
    table = drmHashCreate();
    srandom(0xbeefbeef);
    for (i = 0; i < 5000; i++)
        drmHashInsert(table, random(), (void *)(i << 16 | i));
    srandom(0xbeefbeef);
    for (i = 0; i < 5000; i++)
        ret |= check_table(table, random(), (void *)(i << 16 | i));
    srandom(0xbeefbeef);
    for (i = 0; i < 5000; i++)
        ret |= check_table(table, random(), (void *)(i << 16 | i));
    compute_dist(table);
    drmHashDestroy(table);

    return ret;
}