~thopiekar/arm-mali/libump-sunxi

« back to all changes in this revision

Viewing changes to src/ump_ref_drv.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:
48
48
{
49
49
        UMP_MSYNC_CLEAN = 0 ,
50
50
        UMP_MSYNC_CLEAN_AND_INVALIDATE = 1,
 
51
#if UNIFIED_MEMORY_PROVIDER_VERSION > 2
 
52
        UMP_MSYNC_INVALIDATE = 2,
 
53
#endif
51
54
        UMP_MSYNC_READOUT_CACHE_ENABLED = 128,
52
55
} ump_cpu_msync_op;
53
56
 
 
57
#if UNIFIED_MEMORY_PROVIDER_VERSION > 2
 
58
typedef enum
 
59
{
 
60
        UMP_READ = 1,
 
61
        UMP_READ_WRITE = 3,
 
62
} ump_lock_usage;
 
63
#endif /* UNIFIED_MEMORY_PROVIDER_VERSION */
 
64
 
54
65
/** Flushing cache for an ump_handle.
55
66
 * The function will always CLEAN_AND_INVALIDATE as long as the \a op is not UMP_MSYNC_READOUT_CACHE_ENABLED.
56
67
 * If so it will only report back if the given ump_handle is cacheable.
58
69
 * Return value is 1 if cache is enabled, and 0 if it is disabled for the given allocation.*/
59
70
UMP_API_EXPORT int ump_cpu_msync_now(ump_handle mem, ump_cpu_msync_op op, void* address, int size);
60
71
 
 
72
#if UNIFIED_MEMORY_PROVIDER_VERSION > 2
 
73
typedef enum
 
74
{
 
75
        UMP_USED_BY_CPU = 0,
 
76
        UMP_USED_BY_MALI = 1,
 
77
        UMP_USED_BY_UNKNOWN_DEVICE = 100,
 
78
} ump_hw_usage;
 
79
 
 
80
typedef enum
 
81
{
 
82
        UMP_CACHE_OP_START = 0,
 
83
        UMP_CACHE_OP_FINISH  = 1,
 
84
} ump_cache_op_control;
 
85
 
 
86
/** Cache operation control. Tell when cache maintenance operations start and end.
 
87
This will allow the kernel to merge cache operations togheter, thus making them faster */
 
88
UMP_API_EXPORT int ump_cache_operations_control(ump_cache_op_control op);
 
89
 
 
90
/** Memory synchronization - cache flushing if previous user was different hardware */
 
91
UMP_API_EXPORT int ump_switch_hw_usage( ump_handle mem, ump_hw_usage new_user );
 
92
 
 
93
/** Memory synchronization - cache flushing if previous user was different hardware */
 
94
UMP_API_EXPORT int ump_switch_hw_usage_secure_id( ump_secure_id ump_id, ump_hw_usage new_user );
 
95
 
 
96
/** Locking buffer. Blocking call if the buffer is already locked. */
 
97
UMP_API_EXPORT int ump_lock( ump_handle mem, ump_lock_usage lock_usage );
 
98
 
 
99
/** Locking buffer. Blocking call if the buffer is already locked. */
 
100
UMP_API_EXPORT int ump_lock_secure_id( ump_secure_id ump_id, ump_lock_usage lock_usage );
 
101
 
 
102
/** Unlocking buffer. Let other users lock the buffer for their usage */
 
103
UMP_API_EXPORT int ump_unlock( ump_handle mem );
 
104
 
 
105
/** Unlocking buffer. Let other users lock the buffer for their usage */
 
106
UMP_API_EXPORT int ump_unlock_secure_id( ump_secure_id ump_id );
 
107
#endif /* UNIFIED_MEMORY_PROVIDER_VERSION */
61
108
 
62
109
#ifdef __cplusplus
63
110
}