zx/
lib.rs

1// Copyright 2016 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5//! Type-safe bindings for Zircon kernel
6//! [syscalls](https://fuchsia.dev/fuchsia-src/reference/syscalls).
7
8// Put this first so subsequently declared modules have access.
9#[macro_use]
10mod macros;
11
12mod bti;
13mod channel;
14mod clock;
15mod clock_update;
16mod counter;
17mod cprng;
18mod debuglog;
19mod event;
20mod eventpair;
21mod exception;
22mod fifo;
23mod futex;
24mod guest;
25mod handle;
26mod info;
27mod interrupt;
28mod iob;
29mod iommu;
30mod job;
31mod name;
32mod pager;
33mod pmt;
34mod port;
35mod process;
36mod profile;
37mod property;
38mod resource;
39mod rights;
40mod signals;
41mod socket;
42mod stream;
43mod system;
44mod task;
45mod thread;
46mod time;
47mod vcpu;
48mod version;
49mod vmar;
50mod vmo;
51mod wait;
52
53pub mod vdso_next {
54    pub use super::iob::vdso_next::*;
55}
56
57pub use self::bti::*;
58pub use self::channel::*;
59pub use self::clock::*;
60pub use self::clock_update::{ClockUpdate, ClockUpdateBuilder};
61pub use self::counter::*;
62pub use self::cprng::*;
63pub use self::debuglog::*;
64pub use self::event::*;
65pub use self::eventpair::*;
66pub use self::exception::*;
67pub use self::fifo::*;
68pub use self::futex::*;
69pub use self::guest::*;
70pub use self::handle::*;
71pub use self::info::*;
72pub use self::interrupt::*;
73pub use self::iob::*;
74pub use self::iommu::*;
75pub use self::job::*;
76pub use self::name::*;
77pub use self::pager::*;
78pub use self::pmt::*;
79pub use self::port::*;
80pub use self::process::*;
81pub use self::profile::*;
82pub use self::property::*;
83pub use self::resource::*;
84pub use self::rights::*;
85pub use self::signals::*;
86pub use self::socket::*;
87pub use self::stream::*;
88pub use self::system::*;
89pub use self::task::*;
90pub use self::thread::*;
91pub use self::time::*;
92pub use self::vcpu::*;
93pub use self::version::*;
94pub use self::vmar::*;
95pub use self::vmo::*;
96pub use self::wait::*;
97pub use zx_status::*;
98
99/// Prelude containing common utility traits.
100/// Designed for use like `use zx::prelude::*;`
101pub mod prelude {
102    pub use crate::{AsHandleRef, HandleBased, Peered};
103}
104
105pub mod sys {
106    pub use zx_sys::*;
107}