diff options
author | Pan Xiuli <xiuli.pan@intel.com> | 2015-11-19 12:51:48 +0800 |
---|---|---|
committer | Yang Rong <rong.r.yang@intel.com> | 2016-11-08 20:38:22 +0800 |
commit | ffdc32cb9ba63d1787601ec4398f71542e119205 (patch) | |
tree | d68f71eea9b0441bb87440aefba65e3102259f9f /src/cl_mem.h | |
parent | f4432a8c3875582c34cd46ece0f59d5b419cf9b4 (diff) | |
download | beignet-ffdc32cb9ba63d1787601ec4398f71542e119205.tar.gz |
Runtime: Add pipe related APIs
Add clCreatePipe and clGetPipeInfo
Signed-off-by: Pan Xiuli <xiuli.pan@intel.com>
Reviewed-by: Yang Rong <rong.r.yang@intel.com>
Diffstat (limited to 'src/cl_mem.h')
-rw-r--r-- | src/cl_mem.h | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/cl_mem.h b/src/cl_mem.h index 4a71a8f7..10467789 100644 --- a/src/cl_mem.h +++ b/src/cl_mem.h @@ -73,6 +73,7 @@ typedef struct _cl_mem_dstr_cb { enum cl_mem_type { CL_MEM_BUFFER_TYPE, CL_MEM_SUBBUFFER_TYPE, + CL_MEM_PIPE_TYPE, CL_MEM_SVM_TYPE, CL_MEM_IMAGE_TYPE, CL_MEM_GL_IMAGE_TYPE, @@ -115,6 +116,13 @@ typedef struct _cl_mem { CL_OBJECT_GET_REF(mem) >= 1 && \ mem->type < CL_MEM_IMAGE_TYPE)) +typedef struct _cl_mem_pipe { + _cl_mem base; + cl_svm_mem_flags flags; /* Flags specified at the creation time */ + uint32_t packet_size; + uint32_t max_packets; +} _cl_mem_pipe; + typedef struct _cl_mem_svm { _cl_mem base; cl_svm_mem_flags flags; /* Flags specified at the creation time */ @@ -197,11 +205,11 @@ cl_mem_gl_image(cl_mem mem) return (struct _cl_mem_gl_image*)mem; } -inline static struct _cl_mem_buffer * -cl_mem_buffer(cl_mem mem) +inline static struct _cl_mem_pipe * +cl_mem_pipe(cl_mem mem) { - assert(!IS_IMAGE(mem)); - return (struct _cl_mem_buffer *)mem; + assert(mem->type == CL_MEM_PIPE_TYPE); + return (struct _cl_mem_pipe *)mem; } /* Query information about a memory object */ @@ -219,10 +227,13 @@ extern cl_mem cl_mem_new_buffer(cl_context, cl_mem_flags, size_t, void*, cl_int* /* Create a new sub memory object */ extern cl_mem cl_mem_new_sub_buffer(cl_mem, cl_mem_flags, cl_buffer_create_type, const void *, cl_int *); +extern cl_mem cl_mem_new_pipe(cl_context, cl_mem_flags, cl_uint, cl_uint, cl_int *); +/* Query information about a pipe object */ +extern cl_int cl_get_pipe_info(cl_mem, cl_mem_info, size_t, void *, size_t *); + void* cl_mem_svm_allocate(cl_context, cl_svm_mem_flags, size_t, unsigned int); void cl_mem_svm_delete(cl_context, void *svm_pointer); - /* Idem but this is an image */ extern cl_mem cl_mem_new_image(cl_context context, |