ANDROID: ashmem: update header file for Rust

To make the ioctl constants available from Rust, use a enum rather than
using #define. This is analogous to a similar change for Binder [1].

Also move some constants from ashmem.c to ashmem.h so that Rust ashmem
can use them too.

Bug: 370906207
Link: https://lore.kernel.org/all/20231208152801.3425772-1-aliceryhl@google.com/ [1]
Change-Id: I14032b0d0522eb961d41d3cd097d352d7fd10f75
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
This commit is contained in:
Alice Ryhl
2024-07-24 09:51:33 +00:00
committed by Treehugger Robot
parent 977fca6555
commit 3bc1a0a8e5
3 changed files with 21 additions and 17 deletions
-4
View File
@@ -26,10 +26,6 @@
#include <linux/shmem_fs.h>
#include "ashmem.h"
#define ASHMEM_NAME_PREFIX "dev/ashmem/"
#define ASHMEM_NAME_PREFIX_LEN (sizeof(ASHMEM_NAME_PREFIX) - 1)
#define ASHMEM_FULL_NAME_LEN (ASHMEM_NAME_LEN + ASHMEM_NAME_PREFIX_LEN)
/**
* struct ashmem_area - The anonymous shared memory area
* @name: The optional name in /proc/pid/maps
+8 -2
View File
@@ -15,10 +15,16 @@
#include "uapi/ashmem.h"
#define ASHMEM_NAME_PREFIX "dev/ashmem/"
#define ASHMEM_NAME_PREFIX_LEN (sizeof(ASHMEM_NAME_PREFIX) - 1)
#define ASHMEM_FULL_NAME_LEN (ASHMEM_NAME_LEN + ASHMEM_NAME_PREFIX_LEN)
/* support of 32bit userspace on 64bit platforms */
#ifdef CONFIG_COMPAT
#define COMPAT_ASHMEM_SET_SIZE _IOW(__ASHMEMIOC, 3, compat_size_t)
#define COMPAT_ASHMEM_SET_PROT_MASK _IOW(__ASHMEMIOC, 5, unsigned int)
enum {
COMPAT_ASHMEM_SET_SIZE = _IOW(__ASHMEMIOC, 3, compat_size_t),
COMPAT_ASHMEM_SET_PROT_MASK = _IOW(__ASHMEMIOC, 5, unsigned int),
};
#endif
#endif /* _LINUX_ASHMEM_H */
+13 -11
View File
@@ -29,16 +29,18 @@ struct ashmem_pin {
#define __ASHMEMIOC 0x77
#define ASHMEM_SET_NAME _IOW(__ASHMEMIOC, 1, char[ASHMEM_NAME_LEN])
#define ASHMEM_GET_NAME _IOR(__ASHMEMIOC, 2, char[ASHMEM_NAME_LEN])
#define ASHMEM_SET_SIZE _IOW(__ASHMEMIOC, 3, size_t)
#define ASHMEM_GET_SIZE _IO(__ASHMEMIOC, 4)
#define ASHMEM_SET_PROT_MASK _IOW(__ASHMEMIOC, 5, unsigned long)
#define ASHMEM_GET_PROT_MASK _IO(__ASHMEMIOC, 6)
#define ASHMEM_PIN _IOW(__ASHMEMIOC, 7, struct ashmem_pin)
#define ASHMEM_UNPIN _IOW(__ASHMEMIOC, 8, struct ashmem_pin)
#define ASHMEM_GET_PIN_STATUS _IO(__ASHMEMIOC, 9)
#define ASHMEM_PURGE_ALL_CACHES _IO(__ASHMEMIOC, 10)
#define ASHMEM_GET_FILE_ID _IOR(__ASHMEMIOC, 11, unsigned long)
enum {
ASHMEM_SET_NAME = _IOW(__ASHMEMIOC, 1, char[ASHMEM_NAME_LEN]),
ASHMEM_GET_NAME = _IOR(__ASHMEMIOC, 2, char[ASHMEM_NAME_LEN]),
ASHMEM_SET_SIZE = _IOW(__ASHMEMIOC, 3, size_t),
ASHMEM_GET_SIZE = _IO(__ASHMEMIOC, 4),
ASHMEM_SET_PROT_MASK = _IOW(__ASHMEMIOC, 5, unsigned long),
ASHMEM_GET_PROT_MASK = _IO(__ASHMEMIOC, 6),
ASHMEM_PIN = _IOW(__ASHMEMIOC, 7, struct ashmem_pin),
ASHMEM_UNPIN = _IOW(__ASHMEMIOC, 8, struct ashmem_pin),
ASHMEM_GET_PIN_STATUS = _IO(__ASHMEMIOC, 9),
ASHMEM_PURGE_ALL_CACHES = _IO(__ASHMEMIOC, 10),
ASHMEM_GET_FILE_ID = _IOR(__ASHMEMIOC, 11, unsigned long),
};
#endif /* _UAPI_LINUX_ASHMEM_H */