~thopiekar/arm-mali/libump-sunxi

« back to all changes in this revision

Viewing changes to src/ump_arch.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_arch.h
 
19
 *
 
20
 * Header file for the arch dependent backend, which will do the communication with the UMP device driver.
 
21
 */
 
22
 
 
23
#ifndef _UNIFIED_MEMORY_PROVIDER_ARCH_H_
 
24
#define _UNIFIED_MEMORY_PROVIDER_ARCH_H_
 
25
 
 
26
#include <ump/ump.h>
 
27
#include <ump/ump_ref_drv.h>
 
28
#include "ump_internal.h"
 
29
 
 
30
#ifdef __cplusplus
 
31
extern "C" {
 
32
#endif
 
33
 
 
34
 
 
35
 
 
36
/** Open UMP interface. */
 
37
ump_result ump_arch_open(void);
 
38
 
 
39
/** Close UMP interface. */
 
40
void ump_arch_close(void);
 
41
 
 
42
/** Allocate UMP memory. */
 
43
ump_secure_id ump_arch_allocate(unsigned long * size, ump_alloc_constraints constraints);
 
44
 
 
45
/** Query size of specified UMP memory, in bytes. */
 
46
unsigned long ump_arch_size_get(ump_secure_id secure_id);
 
47
 
 
48
/** Release a reference from specified UMP memory. */
 
49
void ump_arch_reference_release(ump_secure_id secure_id);
 
50
 
 
51
/** Map specified UMP memory into CPU address space */
 
52
void* ump_arch_map(ump_secure_id secure_id, unsigned long size, ump_cache_enabled cache, unsigned long *cookie_out);
 
53
 
 
54
/** Unmap specified UMP memory from CPU adderss space */
 
55
void ump_arch_unmap(void* mapping, unsigned long size, unsigned long cookie);
 
56
 
 
57
/** Memory synchronization - cache flushing of mapped memory
 
58
 * @return Is_cached: 1==True 0==NonCached */
 
59
int ump_arch_msync(ump_secure_id secure_id, void* mapping, unsigned long cookie, void * address, unsigned long size,  ump_cpu_msync_op op);
 
60
 
 
61
#ifdef __cplusplus
 
62
}
 
63
#endif
 
64
 
 
65
#endif /* _UNIFIED_MEMORY_PROVIDER_ARCH_H_ */