summaryrefslogtreecommitdiff
path: root/src/cl_mem.h
diff options
context:
space:
mode:
authorPan Xiuli <xiuli.pan@intel.com>2015-11-19 12:51:48 +0800
committerYang Rong <rong.r.yang@intel.com>2016-11-08 20:38:22 +0800
commitffdc32cb9ba63d1787601ec4398f71542e119205 (patch)
treed68f71eea9b0441bb87440aefba65e3102259f9f /src/cl_mem.h
parentf4432a8c3875582c34cd46ece0f59d5b419cf9b4 (diff)
downloadbeignet-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.h21
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,