~thopiekar/arm-mali/libump-sunxi

« back to all changes in this revision

Viewing changes to src/ump_uk_types.h

  • Committer: Luc Verhaegen
  • Date: 2014-03-25 21:04:12 UTC
  • Revision ID: git-v1:3211f0135d0fb8f2f263979bdcb7ff043886af80
import r3p0 source

Signed-off-by: Luc Verhaegen <libv@skynet.be>

Show diffs side-by-side

added added

removed removed

Lines of Context:
51
51
        _UMP_IOC_MAP_MEM,    /* not used in Linux */
52
52
        _UMP_IOC_UNMAP_MEM,  /* not used in Linux */
53
53
        _UMP_IOC_MSYNC,
 
54
#if UNIFIED_MEMORY_PROVIDER_VERSION > 2
 
55
        _UMP_IOC_CACHE_OPERATIONS_CONTROL,
 
56
        _UMP_IOC_SWITCH_HW_USAGE,
 
57
        _UMP_IOC_LOCK,
 
58
        _UMP_IOC_UNLOCK,
 
59
#endif /* UNIFIED_MEMORY_PROVIDER_VERSION */
54
60
}_ump_uk_functions;
55
61
 
56
62
typedef enum
64
70
{
65
71
        _UMP_UK_MSYNC_CLEAN = 0,
66
72
        _UMP_UK_MSYNC_CLEAN_AND_INVALIDATE = 1,
 
73
#if UNIFIED_MEMORY_PROVIDER_VERSION > 2
 
74
        _UMP_UK_MSYNC_INVALIDATE = 2,
 
75
        _UMP_UK_MSYNC_FLUSH_L1   = 3,
 
76
#endif /* UNIFIED_MEMORY_PROVIDER_VERSION */
67
77
        _UMP_UK_MSYNC_READOUT_CACHE_ENABLED = 128,
68
78
} ump_uk_msync_op;
69
79
 
 
80
#if UNIFIED_MEMORY_PROVIDER_VERSION > 2
 
81
typedef enum
 
82
{
 
83
        _UMP_UK_CACHE_OP_START = 0,
 
84
        _UMP_UK_CACHE_OP_FINISH  = 1,
 
85
} ump_uk_cache_op_control;
 
86
 
 
87
typedef enum
 
88
{
 
89
        _UMP_UK_READ = 1,
 
90
        _UMP_UK_READ_WRITE = 3,
 
91
} ump_uk_lock_usage;
 
92
 
 
93
typedef enum
 
94
{
 
95
        _UMP_UK_USED_BY_CPU = 0,
 
96
        _UMP_UK_USED_BY_MALI = 1,
 
97
        _UMP_UK_USED_BY_UNKNOWN_DEVICE= 100,
 
98
} ump_uk_user;
 
99
#endif /* UNIFIED_MEMORY_PROVIDER_VERSION */
 
100
 
70
101
/**
71
102
 * Get API version ([in,out] u32 api_version, [out] u32 compatible)
72
103
 */
136
167
        u32 size;             /**< [in] size to flush */
137
168
        ump_uk_msync_op op;   /**< [in] flush operation */
138
169
        u32 cookie;           /**< [in] cookie stored with reference to the kernel mapping internals */
139
 
        u32 secure_id;        /**< [in] cookie stored with reference to the kernel mapping internals */
 
170
        u32 secure_id;        /**< [in] secure_id that identifies the ump buffer */
140
171
        u32 is_cached;        /**< [out] caching of CPU mappings */
141
172
} _ump_uk_msync_s;
142
173
 
 
174
#if UNIFIED_MEMORY_PROVIDER_VERSION > 2
 
175
typedef struct _ump_uk_cache_operations_control_s
 
176
{
 
177
        void *ctx;                   /**< [in,out] user-kernel context (trashed on output) */
 
178
        ump_uk_cache_op_control op;  /**< [in] cache operations start/stop */
 
179
} _ump_uk_cache_operations_control_s;
 
180
 
 
181
 
 
182
typedef struct _ump_uk_switch_hw_usage_s
 
183
{
 
184
        void *ctx;            /**< [in,out] user-kernel context (trashed on output) */
 
185
        u32 secure_id;        /**< [in] secure_id that identifies the ump buffer */
 
186
        ump_uk_user new_user;         /**< [in] cookie stored with reference to the kernel mapping internals */
 
187
 
 
188
} _ump_uk_switch_hw_usage_s;
 
189
 
 
190
typedef struct _ump_uk_lock_s
 
191
{
 
192
        void *ctx;            /**< [in,out] user-kernel context (trashed on output) */
 
193
        u32 secure_id;        /**< [in] secure_id that identifies the ump buffer */
 
194
        ump_uk_lock_usage lock_usage;
 
195
} _ump_uk_lock_s;
 
196
 
 
197
typedef struct _ump_uk_unlock_s
 
198
{
 
199
        void *ctx;            /**< [in,out] user-kernel context (trashed on output) */
 
200
        u32 secure_id;        /**< [in] secure_id that identifies the ump buffer */
 
201
} _ump_uk_unlock_s;
 
202
#endif /* UNIFIED_MEMORY_PROVIDER_VERSION */
 
203
 
143
204
#ifdef __cplusplus
144
205
}
145
206
#endif