summaryrefslogtreecommitdiff
path: root/src/cl_accelerator_intel.h
blob: 435ae737685281a47deb8290f714475689ef966f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef __CL_ACCELERATOR_INTEL_H__
#define __CL_ACCELERATOR_INTEL_H__

#include "cl_base_object.h"
#include "CL/cl.h"
#include "CL/cl_ext.h"
#include <stdint.h>

struct _cl_accelerator_intel {
  _cl_base_object base;
  cl_accelerator_intel prev, next;     /* We chain in the allocator, why chain? */
  cl_context ctx;            /* Context it belongs to */
  cl_accelerator_type_intel type;
  union {
    cl_motion_estimation_desc_intel me;
  } desc;                     /* save desc before we decide how to handle it */
};

#define CL_OBJECT_ACCELERATOR_INTEL_MAGIC 0x7e6a08c9a7ac3e3fLL
#define CL_OBJECT_IS_ACCELERATOR_INTEL(obj) \
    (((cl_base_object)obj)->magic == CL_OBJECT_ACCELERATOR_INTEL_MAGIC)

cl_accelerator_intel cl_accelerator_intel_new(cl_context ctx,
                         cl_accelerator_type_intel accel_type,
                         size_t desc_sz,
                         const void* desc,
                         cl_int* errcode_ret);

void cl_accelerator_intel_add_ref(cl_accelerator_intel accel);
void cl_accelerator_intel_delete(cl_accelerator_intel accel);

#endif