ashmem.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. * include/linux/ashmem.h
  3. *
  4. * Copyright 2008 Google Inc.
  5. * Author: Robert Love
  6. *
  7. * This file is dual licensed. It may be redistributed and/or modified
  8. * under the terms of the Apache 2.0 License OR version 2 of the GNU
  9. * General Public License.
  10. */
  11. #ifndef _LINUX_ASHMEM_H
  12. #define _LINUX_ASHMEM_H
  13. #include <linux/limits.h>
  14. #include <linux/ioctl.h>
  15. #include <linux/types.h>
  16. #define ASHMEM_NAME_LEN 256
  17. #define ASHMEM_NAME_DEF "dev/ashmem"
  18. /* Return values from ASHMEM_PIN: Was the mapping purged while unpinned? */
  19. #define ASHMEM_NOT_PURGED 0
  20. #define ASHMEM_WAS_PURGED 1
  21. /* Return values from ASHMEM_GET_PIN_STATUS: Is the mapping pinned? */
  22. #define ASHMEM_IS_UNPINNED 0
  23. #define ASHMEM_IS_PINNED 1
  24. struct ashmem_pin {
  25. __u32 offset; /* offset into region, in bytes, page-aligned */
  26. __u32 len; /* length forward from offset, in bytes, page-aligned */
  27. };
  28. #define __ASHMEMIOC 0x77
  29. #define ASHMEM_SET_NAME _IOW(__ASHMEMIOC, 1, char[ASHMEM_NAME_LEN])
  30. #define ASHMEM_GET_NAME _IOR(__ASHMEMIOC, 2, char[ASHMEM_NAME_LEN])
  31. #define ASHMEM_SET_SIZE _IOW(__ASHMEMIOC, 3, size_t)
  32. #define ASHMEM_GET_SIZE _IO(__ASHMEMIOC, 4)
  33. #define ASHMEM_SET_PROT_MASK _IOW(__ASHMEMIOC, 5, unsigned long)
  34. #define ASHMEM_GET_PROT_MASK _IO(__ASHMEMIOC, 6)
  35. #define ASHMEM_PIN _IOW(__ASHMEMIOC, 7, struct ashmem_pin)
  36. #define ASHMEM_UNPIN _IOW(__ASHMEMIOC, 8, struct ashmem_pin)
  37. #define ASHMEM_GET_PIN_STATUS _IO(__ASHMEMIOC, 9)
  38. #define ASHMEM_PURGE_ALL_CACHES _IO(__ASHMEMIOC, 10)
  39. int get_ashmem_file(int fd, struct file **filp, struct file **vm_file,
  40. unsigned long *len);
  41. void put_ashmem_file(struct file *file);
  42. #endif /* _LINUX_ASHMEM_H */