iceoryx2_bb_posix/
lib.rs

1// Copyright (c) 2023 Contributors to the Eclipse Foundation
2//
3// See the NOTICE file(s) distributed with this work for additional
4// information regarding copyright ownership.
5//
6// This program and the accompanying materials are made available under the
7// terms of the Apache Software License 2.0 which is available at
8// https://www.apache.org/licenses/LICENSE-2.0, or the MIT license
9// which is available at https://opensource.org/licenses/MIT.
10//
11// SPDX-License-Identifier: Apache-2.0 OR MIT
12
13#![cfg_attr(not(any(feature = "std", test)), no_std)]
14#![warn(clippy::alloc_instead_of_core)]
15#![warn(clippy::std_instead_of_alloc)]
16#![warn(clippy::std_instead_of_core)]
17
18//! Abstraction of POSIX constructs with a safe API
19
20extern crate alloc;
21
22use barrier::BarrierCreationError;
23use clock::ClockError;
24use directory::DirectoryError;
25use file::FileError;
26use file_lock::FileLockError;
27use group::GroupError;
28use iceoryx2_bb_elementary::enum_gen;
29use memory_lock::MemoryLockError;
30use mutex::MutexError;
31use process::ProcessError;
32use read_write_mutex::ReadWriteMutexError;
33use semaphore::SemaphoreError;
34use shared_memory::SharedMemoryCreationError;
35use signal::SignalError;
36use thread::ThreadError;
37use unix_datagram_socket::UnixDatagramError;
38use user::UserError;
39
40pub mod access_mode;
41pub mod adaptive_wait;
42pub mod barrier;
43pub mod clock;
44pub mod config;
45pub mod creation_mode;
46pub mod socket_pair;
47pub mod udp_socket;
48#[macro_use]
49pub mod handle_errno;
50pub mod deadline_queue;
51pub mod directory;
52pub mod file;
53pub mod file_descriptor;
54pub mod file_descriptor_set;
55pub mod file_lock;
56pub mod file_type;
57pub mod group;
58pub mod ipc_capable;
59pub mod memory;
60pub mod memory_lock;
61pub mod memory_mapping;
62pub mod metadata;
63pub mod mutex;
64pub mod ownership;
65pub mod permission;
66pub mod process;
67pub mod process_state;
68pub mod read_write_mutex;
69pub mod scheduler;
70pub mod semaphore;
71pub mod shared_memory;
72pub mod signal;
73pub mod signal_set;
74pub mod socket_ancillary;
75pub mod system_configuration;
76#[doc(hidden)]
77pub mod testing;
78pub mod thread;
79pub mod unique_system_id;
80pub mod unix_datagram_socket;
81pub mod user;
82
83enum_gen! {Error
84  generalization:
85    Barrier <= BarrierCreationError,
86    Clock <= ClockError,
87    Directory <= DirectoryError,
88    File <= FileError,
89    FileLock <= FileLockError,
90    Group <= GroupError,
91    MemoryLock <= MemoryLockError,
92    Mutex <= MutexError,
93    Process <= ProcessError,
94    ReadWriteMutex <= ReadWriteMutexError,
95    Semaphore <= SemaphoreError,
96    SharedMemory <= SharedMemoryCreationError,
97    Signal <= SignalError,
98    Thread <= ThreadError,
99    User <= UserError,
100    UnixDatagramSocket <= UnixDatagramError
101}