summaryrefslogtreecommitdiff
path: root/shared-core/amd.h
diff options
context:
space:
mode:
Diffstat (limited to 'shared-core/amd.h')
-rw-r--r--shared-core/amd.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/shared-core/amd.h b/shared-core/amd.h
index ac6195e2..31cf3eff 100644
--- a/shared-core/amd.h
+++ b/shared-core/amd.h
@@ -27,6 +27,43 @@
#ifndef __AMD_H__
#define __AMD_H__
+/* struct amd_cbuffer are for command buffer, this is the structure passed
+ * around during command validation (ie check that user have the right to
+ * execute the given command).
+ */
+struct amd_cbuffer_arg
+{
+ struct list_head list;
+ struct drm_buffer_object *buffer;
+ int32_t dw_id;
+};
+
+struct amd_cbuffer
+{
+ uint32_t *cbuffer;
+ uint32_t cbuffer_dw_count;
+ struct amd_cbuffer_arg arg_unused;
+ struct amd_cbuffer_arg arg_used;
+ struct amd_cbuffer_arg *args;
+ void *driver;
+};
+
+struct amd_cbuffer_checker
+{
+ uint32_t numof_p0_checkers;
+ uint32_t numof_p3_checkers;
+ int (*check)(struct drm_device *dev, struct amd_cbuffer *cbuffer);
+ int (**check_p0)(struct drm_device *dev, struct amd_cbuffer *cbuffer,
+ int dw_id, int reg);
+ int (**check_p3)(struct drm_device *dev, struct amd_cbuffer *cbuffer,
+ int dw_id, int op, int count);
+};
+
+struct amd_cbuffer_arg *
+amd_cbuffer_arg_from_dw_id(struct amd_cbuffer_arg *head, uint32_t dw_id);
+int amd_cbuffer_check(struct drm_device *dev, struct amd_cbuffer *cbuffer);
+
+
/* struct amd_fb amd is for storing amd framebuffer informations
*/
struct amd_fb