• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * Copyright (c) 2019, The Linux Foundation. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *    * Redistributions of source code must retain the above copyright
8  *      notice, this list of conditions and the following disclaimer.
9  *    * Redistributions in binary form must reproduce the above
10  *      copyright notice, this list of conditions and the following
11  *      disclaimer in the documentation and/or other materials provided
12  *      with the distribution.
13  *    * Neither the name of The Linux Foundation nor the names of its
14  *      contributors may be used to endorse or promote products derived
15  *      from this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
18  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
20  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
21  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
24  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
26  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
27  * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29 
30 #ifndef FASTRPC_ANDROID_USER_H
31 #define FASTRPC_ANDROID_USER_H
32 
33 #include <assert.h>
34 #include <fcntl.h>
35 #include <asm/ioctl.h>
36 #include <errno.h>
37 
38 /*
39  * API to check if kernel supports remote memory allocation
40  * Returns 0 if NOT supported
41  *
42  */
43 int is_kernel_alloc_supported(int dev, int domain);
44 
45 /*
46  * API to allocate ION memory for internal purposes
47  * Returns NULL if allocation fails
48  *
49  */
50 void* rpcmem_alloc_internal(int heapid, uint32 flags, int size);
51 
52 /*
53  * API to free internally allocated ION memory
54  *
55  */
56 void rpcmem_free_internal(void* po);
57 
58 /*
59  * API to get fd of internally allocated ION buffer
60  * Returns valid fd on success and -1 on failure
61  *
62  */
63 int rpcmem_to_fd_internal(void *po);
64 
65 #endif //FASTRPC_ANDROID_USER_H
66