diff options
author | Zach Reizner <zachr@google.com> | 2018-01-09 15:01:36 -0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-01-10 15:44:31 -0800 |
commit | 20bb5976367883b43d5d07c2bcc33d68dab25cd7 (patch) | |
tree | a67e38df4ed7db5b8320277a84391a0032db19b6 | |
parent | 3b1d8a577313891da7d904ce66b6cb03453cccac (diff) | |
download | crosvm-20bb5976367883b43d5d07c2bcc33d68dab25cd7.tar crosvm-20bb5976367883b43d5d07c2bcc33d68dab25cd7.tar.gz crosvm-20bb5976367883b43d5d07c2bcc33d68dab25cd7.tar.bz2 crosvm-20bb5976367883b43d5d07c2bcc33d68dab25cd7.tar.lz crosvm-20bb5976367883b43d5d07c2bcc33d68dab25cd7.tar.xz crosvm-20bb5976367883b43d5d07c2bcc33d68dab25cd7.tar.zst crosvm-20bb5976367883b43d5d07c2bcc33d68dab25cd7.zip |
sys_util: implement FromRawFd for EventFd
This is used to make EventFd passed over unix domain socket, such as by the plugin API. TEST=./build_test BUG=chromium:800626 Change-Id: Ifd6c81c51b31a376d57a007bf413a836f3af870a Reviewed-on: https://chromium-review.googlesource.com/857906 Commit-Ready: Zach Reizner <zachr@chromium.org> Tested-by: Zach Reizner <zachr@chromium.org> Reviewed-by: Stephen Barber <smbarber@chromium.org> Reviewed-by: Dylan Reid <dgreid@chromium.org>
-rw-r--r-- | sys_util/src/eventfd.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/sys_util/src/eventfd.rs b/sys_util/src/eventfd.rs index 9298a05..ffdfadb 100644 --- a/sys_util/src/eventfd.rs +++ b/sys_util/src/eventfd.rs @@ -83,6 +83,14 @@ impl AsRawFd for EventFd { } } +impl FromRawFd for EventFd { + unsafe fn from_raw_fd(fd: RawFd) -> Self { + EventFd { + eventfd: File::from_raw_fd(fd) + } + } +} + unsafe impl ::Pollable for EventFd { fn pollable_fd(&self) -> RawFd { self.eventfd.as_raw_fd() |