1dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project/* cutils/ashmem.h
2dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project **
3dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ** Copyright 2008 The Android Open Source Project
4dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project **
5dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ** This file is dual licensed.  It may be redistributed and/or modified
6dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ** under the terms of the Apache 2.0 License OR version 2 of the GNU
7dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project ** General Public License.
8dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project */
9dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
10dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#ifndef _CUTILS_ASHMEM_H
11dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define _CUTILS_ASHMEM_H
12dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
13143b370748150000fb54b676213470e736488766Carl Shapiro#include <stddef.h>
141d3faaf72f28c9d71dde067b74b1351cdbc9a758Mathias Agopian
15dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#ifdef __cplusplus
16dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectextern "C" {
17dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#endif
18dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
19dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectint ashmem_create_region(const char *name, size_t size);
20dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectint ashmem_set_prot_region(int fd, int prot);
21dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectint ashmem_pin_region(int fd, size_t offset, size_t len);
22dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectint ashmem_unpin_region(int fd, size_t offset, size_t len);
237be52b1a0e052635b361f9d8c186adbbcc981b7eBjorn Bringertint ashmem_get_size_region(int fd);
24dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
25dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#ifdef __cplusplus
26dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project}
27dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#endif
28dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
29dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#ifndef __ASHMEMIOC	/* in case someone included <linux/ashmem.h> too */
30dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
31dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define ASHMEM_NAME_LEN		256
32dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
33dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define ASHMEM_NAME_DEF		"dev/ashmem"
34dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
35dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project/* Return values from ASHMEM_PIN: Was the mapping purged while unpinned? */
36dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define ASHMEM_NOT_PURGED	0
37dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define ASHMEM_WAS_PURGED	1
38dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
39dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project/* Return values from ASHMEM_UNPIN: Is the mapping now pinned or unpinned? */
40dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define ASHMEM_IS_UNPINNED	0
41dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define ASHMEM_IS_PINNED	1
42dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
43dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#endif	/* ! __ASHMEMIOC */
44dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project
45dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#endif	/* _CUTILS_ASHMEM_H */
46