예제 #1
0
파일: etnaviv_bo.c 프로젝트: etnaviv/libdrm
/* lookup a buffer from it's handle, call w/ table_lock held: */
static struct etna_bo * lookup_bo(struct etna_device *dev,
		uint32_t handle)
{
	struct etna_bo *bo = NULL;
	if (!drmHashLookup(dev->handle_table, handle, (void **)&bo)) {
		/* found, incr refcnt and return: */
		bo = etna_bo_ref(bo);
	}
	return bo;
}
예제 #2
0
static uint32_t append_bo(struct etna_cmd_stream *stream, struct etna_bo *bo)
{
	struct etna_cmd_stream_priv *priv = etna_cmd_stream_priv(stream);
	uint32_t idx;

	idx = APPEND(&priv->submit, bos);
	idx = APPEND(priv, bos);

	priv->submit.bos[idx].flags = 0;
	priv->submit.bos[idx].handle = bo->handle;

	priv->bos[idx] = etna_bo_ref(bo);

	return idx;
}