summaryrefslogtreecommitdiff
path: root/uio_vmeta.h
diff options
context:
space:
mode:
Diffstat (limited to 'uio_vmeta.h')
-rw-r--r--uio_vmeta.h56
1 files changed, 39 insertions, 17 deletions
diff --git a/uio_vmeta.h b/uio_vmeta.h
index d1cef5f..6f262a7 100644
--- a/uio_vmeta.h
+++ b/uio_vmeta.h
@@ -10,39 +10,60 @@
#define __UIO_VMETA_H
typedef unsigned int vmeta_instance_status;
-typedef struct _id_instance
-{
- vmeta_instance_status status;
- int height;
- int width;
- int frame_rate;
- pid_t pid;
- unsigned int pt;//pthread_t
-}id_instance;
+
+struct _id_instance {
+ vmeta_instance_status status;
+ int height;
+ int width;
+ int frame_rate;
+ pid_t pid;
+ unsigned int pt; /* pthread_t */
+};
#define MAX_VMETA_INSTANCE 32
-typedef enum _VMETA_LOCK_FLAG{
+enum _VMETA_LOCK_FLAG {
VMETA_LOCK_OFF = 0,
VMETA_LOCK_ON,
VMETA_LOCK_FORCE_INIT
-}VMETA_LOCK_FLAG;
+};
/* This struct should be aligned with user space API */
-typedef struct _kernel_share
-{
+struct _kernel_share {
int ref_count;
- VMETA_LOCK_FLAG lock_flag;
+ enum _VMETA_LOCK_FLAG lock_flag;
int active_user_id;
- id_instance user_id_list[MAX_VMETA_INSTANCE];
-}kernel_share;
+ struct _id_instance user_id_list[MAX_VMETA_INSTANCE];
+};
+
+#ifndef __KERNEL__
+/*
+ * Needed for userspace
+ */
+typedef enum _VMETA_LOCK_FLAG VMETA_LOCK_FLAG;
+typedef struct _id_instance id_instance;
+typedef struct _kernel_share kernel_share;
+#endif
struct vmeta_lock {
unsigned long timeout;
unsigned int user_id;
};
-#define IOP_MAGIC 'v'
+struct vmeta_info {
+ uint32_t revision;
+ struct {
+ uint32_t phys;
+ uint32_t size;
+ } map[3];
+};
+
+#define VMETA_STATUS_BIT_USED 0
+#define VMETA_STATUS_BIT_REGISTED 1
+#define VMETA_STATUS_USED BIT(0)
+#define VMETA_STATUS_REGISTERED BIT(1)
+
+#define IOP_MAGIC ('v')
#define VMETA_CMD_POWER_ON _IO(IOP_MAGIC, 0)
#define VMETA_CMD_POWER_OFF _IO(IOP_MAGIC, 1)
@@ -65,5 +86,6 @@ struct vmeta_lock {
#define VMETA_CMD_UNLOCK_USER_ID _IO(IOP_MAGIC, 18)
#define VMETA_CMD_FORCE_INI _IO(IOP_MAGIC, 19)
#define VMETA_CMD_GET_USER_NUM _IOR(IOP_MAGIC, 20, unsigned)
+#define VMETA_CMD_GET_INFO _IOR(IOP_MAGIC, 21, struct vmeta_info)
#endif /* __UIO_VMETA_H */