aboutsummaryrefslogtreecommitdiff
path: root/cmem/cmem.h
diff options
context:
space:
mode:
authorGil Pitney <gil.pitney@linaro.org>2014-10-28 18:00:42 -0700
committerGil Pitney <gil.pitney@linaro.org>2014-10-28 18:00:42 -0700
commit61b2c94d9e64758e55730be6a3fc9006c171db85 (patch)
treef564f09ebf93ba293dfa225bd374df6f1f37aa01 /cmem/cmem.h
Initial Commit: Based on TI OpenCL v0.8, originally based on clover.shamrock_v0.8
This is a continuation of the clover OpenCL project: http://people.freedesktop.org/~steckdenis/clover based on the contributions from Texas Instruments for Keystone II DSP device: git.ti.com/opencl and adding contributions from Linaro for ARM CPU-only support. See README.txt for more info, and build instructions. Signed-off-by: Gil Pitney <gil.pitney@linaro.org>
Diffstat (limited to 'cmem/cmem.h')
-rw-r--r--cmem/cmem.h92
1 files changed, 92 insertions, 0 deletions
diff --git a/cmem/cmem.h b/cmem/cmem.h
new file mode 100644
index 0000000..921362c
--- /dev/null
+++ b/cmem/cmem.h
@@ -0,0 +1,92 @@
+/*
+ *
+ * Copyright (C) 2012-2014 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ *
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+*/
+
+
+#ifndef __CMEM_H__
+#define __CMEM_H__
+
+#define CMEM_DRVNAME "cmem"
+#define CMEM_MODFILE "cmem"
+
+#define CMEM_DRIVER_SIGNATURE "/dev/"CMEM_MODFILE
+
+#ifdef __KERNEL__
+
+#endif /* __KERNEL__ */
+/* Maximum number of buffers allocated per API call*/
+#define CMEM_MAX_BUF_PER_ALLOC 64
+/**
+* ti816x_bar_info - PCI Base Address Register information
+* @num: BAR register index - 0 to 5
+* @addr: For 'SET' operations, contains ti816x internal address to translate
+* @size: Size allocated for this BAR (only usd for GET operation)
+* this BAR access to. For 'GET'' operations, contains the (host) physical
+* address assigned to this BAR.
+*/
+/* Basic information about host buffer accessible by DSP through PCIE */
+typedef struct _cmem_host_buf_entry_t {
+ uint64_t dmaAddr; /* PCIe address */
+ uint8_t *virtAddr; /* Host Virtual address */
+ uint32_t length; /* Length of host buffer */
+} cmem_host_buf_entry_t;
+
+
+/* List of Buffers */
+typedef struct _cmem_host_buf_info_t {
+ unsigned int num_buffers; /* Number of host buffers */
+ unsigned int type; /* memory type 0; Persistent; 1; Dynamic */
+ cmem_host_buf_entry_t *buf_info;
+} cmem_host_buf_info_t;
+
+/* List of Buffers */
+typedef struct _cmem_ioctl_host_buf_info_t {
+ unsigned int num_buffers; /* Number of host buffers */
+ unsigned int type; /* memory type 0; Persistent; 1; Dynamic */
+ cmem_host_buf_entry_t buf_info[CMEM_MAX_BUF_PER_ALLOC];
+} cmem_ioctl_host_buf_info_t;
+
+/** Parameters used for calling IOCTL */
+typedef struct _cmem_ioctl_t {
+ cmem_ioctl_host_buf_info_t host_buf_info;
+} cmem_ioctl_t;
+
+/* IOCTLs defined for the application as well as driver */
+#define CMEM_IOCTL_ALLOC_HOST_BUFFERS _IOWR('P', 1, unsigned int)
+#define CMEM_IOCTL_GET_HOST_BUF_INFO _IOWR('P', 2, unsigned int)
+#define CMEM_IOCTL_FREE_HOST_BUFFERS _IOWR('P', 3, unsigned int)
+
+#endif