From 855454a4fdde2256be75ad6703fddde0fa7c5e8b Mon Sep 17 00:00:00 2001
From: zxstty <zhaojiaqi18@huawei.com>
Date: Thu, 9 Nov 2023 11:10:52 +0800
Subject: [PATCH] 0004

---
 openeuler/BUILD.gn                        | 13 ++++++
 openeuler/compiler_include/linux/ashmem.h | 50 +++++++++++++++++++++++
 2 files changed, 63 insertions(+)
 create mode 100644 openeuler/BUILD.gn
 create mode 100644 openeuler/compiler_include/linux/ashmem.h

diff --git a/openeuler/BUILD.gn b/openeuler/BUILD.gn
new file mode 100644
index 0000000..9c175aa
--- /dev/null
+++ b/openeuler/BUILD.gn
@@ -0,0 +1,13 @@
+config("openeuler_config") {
+  cflags = [
+    "-Wno-error",
+    "-Wno-error=implicit-fallthrough",
+    "-Wno-error=unused-command-line-argument",
+  ]
+}
+
+config("openeuler_include_dirs") {
+  include_dirs = [
+    "//build/openeuler/compiler_include",
+  ]
+}
\ No newline at end of file
diff --git a/openeuler/compiler_include/linux/ashmem.h b/openeuler/compiler_include/linux/ashmem.h
new file mode 100644
index 0000000..5e56454
--- /dev/null
+++ b/openeuler/compiler_include/linux/ashmem.h
@@ -0,0 +1,50 @@
+/*
+ * drivers/staging/android/uapi/ashmem.h
+ *
+ * Copyright 2008 Google Inc.
+ * Author: Robert Love
+ *
+ * This file is dual licensed.  It may be redistributed and/or modified
+ * under the terms of the Apache 2.0 License OR version 2 of the GNU
+ * General Public License.
+ */
+
+#ifndef _UAPI_LINUX_ASHMEM_H
+#define _UAPI_LINUX_ASHMEM_H
+
+#include <linux/ioctl.h>
+#include <stdint.h>
+
+#define ASHMEM_NAME_LEN         256
+
+#define ASHMEM_NAME_DEF         "dev/ashmem"
+
+/* Return values from ASHMEM_PIN: Was the mapping purged while unpinned? */
+#define ASHMEM_NOT_PURGED       0
+#define ASHMEM_WAS_PURGED       1
+
+/* Return values from ASHMEM_GET_PIN_STATUS: Is the mapping pinned? */
+#define ASHMEM_IS_UNPINNED      0
+#define ASHMEM_IS_PINNED        1
+
+typedef uint32_t __u32, __le32;
+
+struct ashmem_pin {
+        __u32 offset;   /* offset into region, in bytes, page-aligned */
+        __u32 len;      /* length forward from offset, in bytes, page-aligned */
+};
+
+#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)
+
+#endif  /* _UAPI_LINUX_ASHMEM_H */
\ No newline at end of file
-- 
2.33.0

