1/* 2 * Copyright 2008 The Android Open Source Project 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8#ifndef _CUTILS_ASHMEM_H 9#define _CUTILS_ASHMEM_H 10 11#include <stddef.h> 12 13#ifdef __cplusplus 14extern "C" { 15#endif 16 17int ashmem_create_region(const char *name, size_t size); 18int ashmem_set_prot_region(int fd, int prot); 19int ashmem_pin_region(int fd, size_t offset, size_t len); 20int ashmem_unpin_region(int fd, size_t offset, size_t len); 21int ashmem_get_size_region(int fd); 22int ashmem_purge_all_caches(int fd); 23 24#ifdef __cplusplus 25} 26#endif 27 28#ifndef __ASHMEMIOC /* in case someone included <linux/ashmem.h> too */ 29 30#define ASHMEM_NAME_LEN 256 31 32#define ASHMEM_NAME_DEF "dev/ashmem" 33 34/* Return values from ASHMEM_PIN: Was the mapping purged while unpinned? */ 35#define ASHMEM_NOT_PURGED 0 36#define ASHMEM_WAS_PURGED 1 37 38/* Return values from ASHMEM_UNPIN: Is the mapping now pinned or unpinned? */ 39#define ASHMEM_IS_UNPINNED 0 40#define ASHMEM_IS_PINNED 1 41 42#endif /* ! __ASHMEMIOC */ 43 44#endif /* _CUTILS_ASHMEM_H */ 45