1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
// This file is part of dpdk. It is subject to the license terms in the COPYRIGHT file found in the top-level directory of this distribution and at https://raw.githubusercontent.com/lemonrock/dpdk/master/COPYRIGHT. No part of dpdk, including this file, may be copied, modified, propagated, or distributed except according to the terms contained in the COPYRIGHT file.
// Copyright © 2016-2017 The developers of dpdk. See the COPYRIGHT file in the top-level directory of this distribution and at https://raw.githubusercontent.com/lemonrock/dpdk/master/COPYRIGHT.


#![allow(non_upper_case_globals)]
#![deny(missing_docs)]
#![feature(int_to_from_bytes)]


//! #dpdk-unix
//!
//! This crate proves additional mid-level functionality for Unix-like Operating Systems which wraps functionality found in low-level FFI bindings for libc.
//!
//! It also provides a very small modicum of Windows support to get the current program name.


#[cfg(any(target_os = "android", target_os = "linux"))] #[macro_use] extern crate bitflags;
#[macro_use] extern crate const_cstr_fork;
extern crate errno;
extern crate libc;
extern crate libc_extra;
#[cfg(unix)] #[macro_use] extern crate maplit;
#[macro_use] extern crate quick_error;
#[macro_use] extern crate serde_derive;
extern crate rust_extra;
#[cfg(unix)] extern crate syscall_alt;


use self::memory_information::*;
#[cfg(any(target_os = "android", target_os = "linux"))] use self::android_linux::*;
#[cfg(any(target_os = "android", target_os = "linux"))] use self::android_linux::mounts::*;
#[cfg(any(target_os = "android", target_os = "linux"))] use self::android_linux::linux_kernel_modules::*;
use ::const_cstr_fork::ConstCStr;
use ::libc::*;
use ::std::collections::BTreeSet;
use ::std::collections::HashMap;
#[cfg(any(target_os = "android", target_os = "linux"))] use ::std::collections::HashSet;
use ::std::env::set_var;
use ::std::env::var_os;
use ::std::error::Error;
use ::std::ffi::CStr;
use ::std::ffi::CString;
use ::std::ffi::NulError;
use ::std::ffi::OsStr;
use ::std::fmt::Display;
use ::std::fs::File;
use ::std::fs::metadata;
use ::std::fs::OpenOptions;
use ::std::fs::Permissions;
use ::std::fs::read_to_string;
use ::std::fs::remove_file;
use ::std::fs::set_permissions;
use ::std::io;
use ::std::io::BufRead;
use ::std::io::BufReader;
use ::std::io::ErrorKind;
use ::std::io::Write;
use ::std::num::ParseIntError;
#[cfg(unix)] use ::std::os::unix::io::AsRawFd;
#[cfg(unix)] use ::std::os::unix::ffi::OsStrExt;
#[cfg(unix)] use ::std::os::unix::fs::PermissionsExt;
#[cfg(unix)] use ::std::process;
#[cfg(any(target_os = "android", target_os = "linux"))] use ::libc_extra::android_linux::stdio::cookie_io_functions_t;
#[cfg(any(target_os = "android", target_os = "linux"))] use ::libc_extra::android_linux::stdio::cookie_write_function_t;
#[cfg(any(target_os = "android", target_os = "linux"))] use ::libc_extra::android_linux::stdio::fopencookie;
#[cfg(target_os = "linux")] use ::libc_extra::linux::errno::program_invocation_short_name;
#[cfg(any(target_os = "android", target_os = "linux"))] use ::libc_extra::unix::stdio::stderr;
#[cfg(any(target_os = "android", target_os = "linux"))] use ::libc_extra::unix::stdio::stdout;
#[cfg(unix)] use ::libc_extra::unix::unistd::setegid;
use ::std::path::Path;
use ::std::path::PathBuf;
use ::std::ptr::NonNull;
#[cfg(target_os = "linux")] use ::std::ptr::null_mut;
use ::std::str::FromStr;


#[cfg(any(target_os = "android", target_os = "linux"))]
/// Functionality to provide mid-level wrappers on Linux and Android.
pub mod android_linux;


/// Memory Information.
pub mod memory_information;


/// Support for signals.
#[cfg(unix)] pub mod signals;


pub(crate) mod strings;

include!("assert_effective_user_id_is_root.rs");
include!("Daemonize.rs");
include!("DaemonizeCleanUpOnExit.rs");
include!("get_program_name.rs");
include!("HugePageSize.rs");
include!("HyperThread.rs");
include!("InterruptRequest.rs");
include!("ListParseError.rs");
include!("OsStrExtMore.rs");
#[cfg(unix)] include!("page_size.rs");
include!("PathExt.rs");
include!("ProcPath.rs");
include!("set_current_thread_name.rs");
include!("SetCurrentThreadNameError.rs");
include!("SysPath.rs");
include!("VirtualMemoryStatisticName.rs");