Skip to main content

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#![cfg_attr(not(target_os = "fuchsia"), allow(unused_crate_dependencies, unused_macros))]
9
10// Put this first so subsequently declared modules have access.
11#[macro_use]
12mod macros;
13
14#[cfg(target_os = "fuchsia")]
15mod bti;
16#[cfg(target_os = "fuchsia")]
17mod channel;
18#[cfg(target_os = "fuchsia")]
19mod clock;
20#[cfg(target_os = "fuchsia")]
21mod clock_update;
22#[cfg(target_os = "fuchsia")]
23mod counter;
24#[cfg(target_os = "fuchsia")]
25mod cprng;
26#[cfg(target_os = "fuchsia")]
27mod debuglog;
28#[cfg(target_os = "fuchsia")]
29mod event;
30#[cfg(target_os = "fuchsia")]
31mod eventpair;
32#[cfg(target_os = "fuchsia")]
33mod exception;
34#[cfg(target_os = "fuchsia")]
35mod fifo;
36#[cfg(target_os = "fuchsia")]
37mod futex;
38#[cfg(target_os = "fuchsia")]
39mod guest;
40#[cfg(target_os = "fuchsia")]
41mod handle;
42#[cfg(target_os = "fuchsia")]
43mod info;
44#[cfg(target_os = "fuchsia")]
45mod interrupt;
46#[cfg(target_os = "fuchsia")]
47mod iob;
48#[cfg(target_os = "fuchsia")]
49mod iommu;
50#[cfg(target_os = "fuchsia")]
51mod job;
52#[cfg(target_os = "fuchsia")]
53mod koid;
54#[cfg(target_os = "fuchsia")]
55mod msi;
56#[cfg(target_os = "fuchsia")]
57mod name;
58mod object_type;
59#[cfg(target_os = "fuchsia")]
60mod pager;
61#[cfg(target_os = "fuchsia")]
62mod pci_device;
63#[cfg(target_os = "fuchsia")]
64mod pmt;
65#[cfg(target_os = "fuchsia")]
66mod port;
67#[cfg(target_os = "fuchsia")]
68mod process;
69#[cfg(target_os = "fuchsia")]
70mod profile;
71#[cfg(target_os = "fuchsia")]
72mod property;
73#[cfg(target_os = "fuchsia")]
74mod resource;
75mod rights;
76#[cfg(target_os = "fuchsia")]
77mod signals;
78#[cfg(target_os = "fuchsia")]
79mod socket;
80#[cfg(target_os = "fuchsia")]
81mod stream;
82#[cfg(target_os = "fuchsia")]
83mod suspend_token;
84#[cfg(target_os = "fuchsia")]
85mod system;
86#[cfg(target_os = "fuchsia")]
87mod task;
88#[cfg(target_os = "fuchsia")]
89mod thread;
90#[cfg(target_os = "fuchsia")]
91mod time;
92#[cfg(target_os = "fuchsia")]
93mod vcpu;
94#[cfg(target_os = "fuchsia")]
95mod version;
96#[cfg(target_os = "fuchsia")]
97mod vmar;
98#[cfg(target_os = "fuchsia")]
99mod vmo;
100#[cfg(target_os = "fuchsia")]
101mod wait;
102
103#[cfg(target_os = "fuchsia")]
104pub mod vdso_next {
105    pub use super::iob::vdso_next::*;
106}
107
108#[cfg(target_os = "fuchsia")]
109pub use self::bti::*;
110#[cfg(target_os = "fuchsia")]
111pub use self::channel::*;
112#[cfg(target_os = "fuchsia")]
113pub use self::clock::*;
114#[cfg(target_os = "fuchsia")]
115pub use self::clock_update::{ClockUpdate, ClockUpdateBuilder};
116#[cfg(target_os = "fuchsia")]
117pub use self::counter::*;
118#[cfg(target_os = "fuchsia")]
119pub use self::cprng::*;
120#[cfg(target_os = "fuchsia")]
121pub use self::debuglog::*;
122#[cfg(target_os = "fuchsia")]
123pub use self::event::*;
124#[cfg(target_os = "fuchsia")]
125pub use self::eventpair::*;
126#[cfg(target_os = "fuchsia")]
127pub use self::exception::*;
128#[cfg(target_os = "fuchsia")]
129pub use self::fifo::*;
130#[cfg(target_os = "fuchsia")]
131pub use self::futex::*;
132#[cfg(target_os = "fuchsia")]
133pub use self::guest::*;
134#[cfg(target_os = "fuchsia")]
135pub use self::handle::*;
136#[cfg(target_os = "fuchsia")]
137pub use self::info::*;
138#[cfg(target_os = "fuchsia")]
139pub use self::interrupt::*;
140#[cfg(target_os = "fuchsia")]
141pub use self::iob::*;
142#[cfg(target_os = "fuchsia")]
143pub use self::iommu::*;
144#[cfg(target_os = "fuchsia")]
145pub use self::job::*;
146#[cfg(target_os = "fuchsia")]
147pub use self::koid::*;
148#[cfg(target_os = "fuchsia")]
149pub use self::msi::*;
150#[cfg(target_os = "fuchsia")]
151pub use self::name::*;
152pub use self::object_type::*;
153#[cfg(target_os = "fuchsia")]
154pub use self::pager::*;
155#[cfg(target_os = "fuchsia")]
156pub use self::pci_device::*;
157#[cfg(target_os = "fuchsia")]
158pub use self::pmt::*;
159#[cfg(target_os = "fuchsia")]
160pub use self::port::*;
161#[cfg(target_os = "fuchsia")]
162pub use self::process::*;
163#[cfg(target_os = "fuchsia")]
164pub use self::profile::*;
165#[cfg(target_os = "fuchsia")]
166pub use self::property::*;
167#[cfg(target_os = "fuchsia")]
168pub use self::resource::*;
169pub use self::rights::*;
170#[cfg(target_os = "fuchsia")]
171pub use self::signals::*;
172#[cfg(target_os = "fuchsia")]
173pub use self::socket::*;
174#[cfg(target_os = "fuchsia")]
175pub use self::stream::*;
176#[cfg(target_os = "fuchsia")]
177pub use self::suspend_token::*;
178#[cfg(target_os = "fuchsia")]
179pub use self::system::*;
180#[cfg(target_os = "fuchsia")]
181pub use self::task::*;
182#[cfg(target_os = "fuchsia")]
183pub use self::thread::*;
184#[cfg(target_os = "fuchsia")]
185pub use self::time::*;
186#[cfg(target_os = "fuchsia")]
187pub use self::vcpu::*;
188#[cfg(target_os = "fuchsia")]
189pub use self::version::*;
190#[cfg(target_os = "fuchsia")]
191pub use self::vmar::*;
192#[cfg(target_os = "fuchsia")]
193pub use self::vmo::*;
194#[cfg(target_os = "fuchsia")]
195pub use self::wait::*;
196pub use zx_status::*;
197pub use zx_status_ext::*;
198
199/// Prelude containing common utility traits.
200/// Designed for use like `use zx::prelude::*;`
201pub mod prelude {
202    #[cfg(target_os = "fuchsia")]
203    pub use crate::{AsHandleRef, Peered};
204}
205
206pub mod sys {
207    pub use zx_sys::*;
208}