~thopiekar/arm-mali/libump-sunxi

« back to all changes in this revision

Viewing changes to src/ump_internal.h

  • Committer: Luc Verhaegen
  • Date: 2014-03-25 21:04:12 UTC
  • Revision ID: git-v1:fa5ad94ac2873793dcca65dafc3ea211de5e7226
import ump r2p4 source

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

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2010-2012 ARM Limited. All rights reserved.
 
3
 * 
 
4
 * Licensed under the Apache License, Version 2.0 (the "License");
 
5
 * you may not use this file except in compliance with the License.
 
6
 * You may obtain a copy of the License at
 
7
 * 
 
8
 *       http://www.apache.org/licenses/LICENSE-2.0
 
9
 * 
 
10
 * Unless required by applicable law or agreed to in writing, software
 
11
 * distributed under the License is distributed on an "AS IS" BASIS,
 
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
13
 * See the License for the specific language governing permissions and
 
14
 * limitations under the License.
 
15
 */
 
16
 
 
17
/**
 
18
 * @file ump_internal.c
 
19
 *
 
20
 * Internal definitions and debugging macros for the UMP implementation.
 
21
 */
 
22
 
 
23
#ifndef _UNIFIED_MEMORY_PROVIDER_INTERNAL_H_
 
24
#define _UNIFIED_MEMORY_PROVIDER_INTERNAL_H_
 
25
 
 
26
#include <ump/ump.h>
 
27
#include <ump/ump_osu.h>
 
28
 
 
29
#ifdef __cplusplus
 
30
extern "C" {
 
31
#endif
 
32
 
 
33
typedef enum ump_cache_enabled
 
34
{
 
35
        UMP_CACHE_DISABLE = 0,
 
36
        UMP_CACHE_ENABLE  = 1
 
37
} ump_cache_enabled;
 
38
 
 
39
/**
 
40
 * The actual (hidden) definition of ump_handles.
 
41
 */
 
42
typedef struct ump_mem
 
43
{
 
44
        ump_secure_id secure_id;       /**< UMP device driver cookie */
 
45
        void * mapped_mem;             /**< Mapped memory; all read and write use this */
 
46
        unsigned long size;            /**< Size of allocated memory */
 
47
        _ump_osu_lock_t* ref_lock;    /**< Lock protection ref_count */
 
48
        int ref_count;                 /**< The reference count of the ump_handle in userspace. It is used for finding out
 
49
                                            when to free the memory used by this userspace handle. It is NOT the same as the
 
50
                                            real ump_mem reference count in the devicedriver which do reference counting
 
51
                                            for the memory that this handle reveals. */
 
52
        unsigned long cookie;          /**< cookie for use in arch_unmap calls */
 
53
        ump_cache_enabled is_cached;
 
54
} ump_mem;
 
55
 
 
56
#ifdef __cplusplus
 
57
}
 
58
#endif
 
59
 
 
60
 
 
61
 
 
62
#endif /* _UNIFIED_MEMORY_PROVIDER_INTERNAL_H_ */