summaryrefslogtreecommitdiff
path: root/libs/binder/OS.cpp
diff options
context:
space:
mode:
author Andrei Homescu <ahomescu@google.com> 2022-08-04 01:33:33 +0000
committer Andrei Homescu <ahomescu@google.com> 2022-08-16 21:58:41 +0000
commit24ad36eec712d42f972b4b83311c86aa0b37e3b7 (patch)
treeebfe4315fa402676639ba574964aecfeea7ccd67 /libs/binder/OS.cpp
parenta8fa78c5fdb652375440aa2b4b412e9e0bbc4c6d (diff)
libbinder: build ParcelFileDescriptor on Trusty
Adds ParcelFileDescriptor.cpp to the Trusty build which in turn compiles some extra related code from Parcel.cpp. This code uses fcntl(...O_DUPFD_CLOEXEC...) to duplicate file descriptors which is not available on Trusty (or other OSes), so we abstract the relevant calls to that function in a wrapper in OS.cpp. Bug: 224644083 Test: m Test: build on Trusty Change-Id: I2e0ee517e7c7b55458a6ee6db977985aab4d7c58
Diffstat (limited to 'libs/binder/OS.cpp')
-rw-r--r--libs/binder/OS.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/libs/binder/OS.cpp b/libs/binder/OS.cpp
index 6eb72726f5..cc4a03ba67 100644
--- a/libs/binder/OS.cpp
+++ b/libs/binder/OS.cpp
@@ -48,4 +48,14 @@ status_t getRandomBytes(uint8_t* data, size_t size) {
return OK;
}
+status_t dupFileDescriptor(int oldFd, int* newFd) {
+ int ret = fcntl(oldFd, F_DUPFD_CLOEXEC, 0);
+ if (ret < 0) {
+ return -errno;
+ }
+
+ *newFd = ret;
+ return OK;
+}
+
} // namespace android