jaulib v1.3.6
Jau Support Library (C++, Java, ..)
Loading...
Searching...
No Matches
OS Support

OS Support Functionality. More...

Namespaces

namespace  jau::os::impl
 

Classes

class  jau::os::DynamicLinker
 Low level secure dynamic linker access. More...
 
class  jau::os::DynamicLookup
 Interface callers may use ProcAddressHelper's reset helper method to install function pointers into a ProcAddressTable. More...
 
class  jau::os::FuncAddrResolver
 
class  jau::os::NativeLibrary
 Runtime libary dynamic library (RTLD) access. More...
 
struct  jau::os::RuntimeOSInfo
 
class  jau::os::UserInfo
 User account information of the underlying OS. More...
 

Enumerations

enum class  jau::os::abi_type_t : uint16_t {
  jau::os::abi_type_t::generic = 0x00 , jau::os::abi_type_t::gnu_armel = 0x01 , jau::os::abi_type_t::gnu_armhf = 0x02 , jau::os::abi_type_t::aarch64 = 0x03 ,
  jau::os::abi_type_t::wasm32_gen = 0x20 , jau::os::abi_type_t::wasm32_ems = 0x21 , jau::os::abi_type_t::wasm64_gen = 0x2a , jau::os::abi_type_t::wasm64_ems = 0x2b
}
 
enum class  jau::os::os_type_t : uint32_t {
  jau::os::os_type_t::Unix = 0b00000000000000000000000000000001U , jau::os::os_type_t::Windows = 0b00000000000000000000000000000010U , jau::os::os_type_t::Linux = 0b00000000000000000000000100000001U , jau::os::os_type_t::Android = 0b00000000000000000000001100000001U ,
  jau::os::os_type_t::FreeBSD = 0b00000000000000000000010000000001U , jau::os::os_type_t::Darwin = 0b00000000000000000000100000000001U , jau::os::os_type_t::QnxNTO = 0b00000000000000000001000000000001U , jau::os::os_type_t::GenWasm = 0b00000001000000000000000000000000U ,
  jau::os::os_type_t::Emscripten = 0b00000001000000000000000000000001U , jau::os::os_type_t::native = impl::get_host_os_id()
}
 OS type bits and unique IDs. More...
 

Functions

constexpr_cxx20 std::string jau::os::dir_separator () noexcept
 Returns the OS's path separator as a string, e.g.
 
constexpr char jau::os::dir_separator_char () noexcept
 Returns the OS's path separator character, e.g.
 
abi_type_t jau::os::get_abi_type () noexcept
 
constexpr abi_type_t jau::os::get_abi_type (const jau::cpu::cpu_family_t cpu) noexcept
 
std::string jau::os::get_os_and_arch () noexcept
 Returns this hosts's common name, see get_os_and_arch()
 
std::string jau::os::get_os_and_arch (const os_type_t os, const jau::cpu::cpu_family_t cpu, const abi_type_t abi, const endian_t e) noexcept
 Returns the common name for the given os_type, jau::cpu::cpu_family, abi_type and endian.
 
std::string jau::os::get_platform_info () noexcept
 
std::string jau::os::get_platform_info (std::string &sb) noexcept
 
bool jau::os::get_rt_os_info (RuntimeOSInfo &info) noexcept
 
constexpr bool jau::os::has_pthread () noexcept
 Evaluates true if platform supports posix compatible threading.
 
constexpr bool jau::os::is_android () noexcept
 Evaluates true if platform os_type::native contains os_type::Android.
 
constexpr bool jau::os::is_darwin () noexcept
 Evaluates true if platform os_type::native contains os_type::Darwin.
 
constexpr bool jau::os::is_defined_os_type (const os_type_t v) noexcept
 Evaluates true if the given os_type is defined, i.e.
 
constexpr bool jau::os::is_emscripten () noexcept
 Evaluates true if platform os_type::native contains os_type::Emscripten.
 
constexpr bool jau::os::is_freebsd () noexcept
 Evaluates true if platform os_type::native contains os_type::FreeBSD.
 
constexpr bool jau::os::is_generic_wasm () noexcept
 Evaluates true if platform os_type::native contains os_type::GenWasm.
 
constexpr bool jau::os::is_linux () noexcept
 Evaluates true if platform os_type::native contains os_type::Linux.
 
constexpr bool jau::os::is_qnxnto () noexcept
 Evaluates true if platform os_type::native contains os_type::QnxNTO.
 
constexpr bool jau::os::is_unix () noexcept
 Evaluates true if platform os_type::native contains os_type::Unix.
 
constexpr bool jau::os::is_windows () noexcept
 Evaluates true if platform os_type::native contains os_type::Windows.
 
 jau::os::JAU_MAKE_BITFIELD_ENUM_STRING (os_type_t, Unix, Windows, Linux, Android, FreeBSD, Darwin, QnxNTO, GenWasm, Emscripten)
 
 jau::os::JAU_MAKE_ENUM_STRING (abi_type_t, generic, gnu_armel, gnu_armhf, aarch64, wasm32_gen, wasm32_ems, wasm64_gen, wasm64_ems)
 
constexpr_cxx20 std::string jau::os::path_separator () noexcept
 Returns the OS's path separator as a string, e.g.
 
constexpr char jau::os::path_separator_char () noexcept
 Returns the OS's path separator character, e.g.
 

Detailed Description

OS Support Functionality.

Available predefined macros denoting the Operating Systems

Further infos:

Enumeration Type Documentation

◆ os_type_t

enum class jau::os::os_type_t : uint32_t
strong

OS type bits and unique IDs.

Enumerator
Unix 

Unix bit, contained by: linux, android, freebsd, darwin.

Windows 

Windows bit.

Linux 

Linux bit, contained by: android; includes: unix.

Android 

Android bit, includes: linux and unix.

FreeBSD 

FreeBSD bit, includes: unix.

Darwin 

Darwin (Apple OSX and iOS) bit, includes: unix.

QnxNTO 

QNX NTO (>= 6) bit, includes: unix.

GenWasm 

Generic WebAssembly bit.

Emscripten 

WebAssembly with Unix/Posix suport bit (emscripten)

native 

Identifier for native OS type, one of the above.

Definition at line 114 of file os_support.hpp.

◆ abi_type_t

enum class jau::os::abi_type_t : uint16_t
strong
Enumerator
generic 
gnu_armel 

ARM GNU-EABI ARMEL -mfloat-abi=softfp.

gnu_armhf 

ARM GNU-EABI ARMHF -mfloat-abi=hard.

aarch64 

ARM EABI AARCH64 (64bit)

wasm32_gen 

WASM Generic (32bit)

wasm32_ems 

WASM Emscripten (32bit)

wasm64_gen 

WASM Generic (64bit)

wasm64_ems 

WASM Emscripten (64bit)

Definition at line 227 of file os_support.hpp.

Function Documentation

◆ JAU_MAKE_BITFIELD_ENUM_STRING()

jau::os::JAU_MAKE_BITFIELD_ENUM_STRING ( os_type_t ,
Unix ,
Windows ,
Linux ,
Android ,
FreeBSD ,
Darwin ,
QnxNTO ,
GenWasm ,
Emscripten  )

◆ is_defined_os_type()

bool jau::os::is_defined_os_type ( const os_type_t v)
constexprnoexcept

Evaluates true if the given os_type is defined, i.e.

Unix, Windows, Linux, Android, ...

Definition at line 142 of file os_support.hpp.

Here is the caller graph for this function:

◆ is_unix()

bool jau::os::is_unix ( )
constexprnoexcept

Evaluates true if platform os_type::native contains os_type::Unix.

Definition at line 171 of file os_support.hpp.

◆ is_windows()

bool jau::os::is_windows ( )
constexprnoexcept

Evaluates true if platform os_type::native contains os_type::Windows.

Definition at line 174 of file os_support.hpp.

Here is the caller graph for this function:

◆ is_linux()

bool jau::os::is_linux ( )
constexprnoexcept

Evaluates true if platform os_type::native contains os_type::Linux.

Definition at line 177 of file os_support.hpp.

◆ is_android()

bool jau::os::is_android ( )
constexprnoexcept

Evaluates true if platform os_type::native contains os_type::Android.

Definition at line 180 of file os_support.hpp.

◆ is_freebsd()

bool jau::os::is_freebsd ( )
constexprnoexcept

Evaluates true if platform os_type::native contains os_type::FreeBSD.

Definition at line 183 of file os_support.hpp.

◆ is_darwin()

bool jau::os::is_darwin ( )
constexprnoexcept

Evaluates true if platform os_type::native contains os_type::Darwin.

Definition at line 186 of file os_support.hpp.

Here is the caller graph for this function:

◆ is_qnxnto()

bool jau::os::is_qnxnto ( )
constexprnoexcept

Evaluates true if platform os_type::native contains os_type::QnxNTO.

Definition at line 189 of file os_support.hpp.

◆ is_generic_wasm()

bool jau::os::is_generic_wasm ( )
constexprnoexcept

Evaluates true if platform os_type::native contains os_type::GenWasm.

Definition at line 192 of file os_support.hpp.

Here is the caller graph for this function:

◆ is_emscripten()

bool jau::os::is_emscripten ( )
constexprnoexcept

Evaluates true if platform os_type::native contains os_type::Emscripten.

Definition at line 195 of file os_support.hpp.

◆ has_pthread()

bool jau::os::has_pthread ( )
constexprnoexcept

Evaluates true if platform supports posix compatible threading.

Definition at line 198 of file os_support.hpp.

Here is the caller graph for this function:

◆ get_rt_os_info()

bool jau::os::get_rt_os_info ( RuntimeOSInfo & info)
noexcept

Definition at line 46 of file os_support.cpp.

Here is the caller graph for this function:

◆ get_abi_type() [1/2]

abi_type_t jau::os::get_abi_type ( const jau::cpu::cpu_family_t cpu)
constexprnoexcept

Definition at line 244 of file os_support.hpp.

◆ get_abi_type() [2/2]

abi_type_t jau::os::get_abi_type ( )
inlinenoexcept

Definition at line 264 of file os_support.hpp.

Here is the caller graph for this function:

◆ JAU_MAKE_ENUM_STRING()

jau::os::JAU_MAKE_ENUM_STRING ( abi_type_t ,
generic ,
gnu_armel ,
gnu_armhf ,
aarch64 ,
wasm32_gen ,
wasm32_ems ,
wasm64_gen ,
wasm64_ems  )

◆ get_os_and_arch() [1/2]

std::string jau::os::get_os_and_arch ( const os_type_t os,
const jau::cpu::cpu_family_t cpu,
const abi_type_t abi,
const endian_t e )
noexcept

Returns the common name for the given os_type, jau::cpu::cpu_family, abi_type and endian.

An excerpt of supported os.and.arch strings:

  • android-armv6
  • android-aarch64
  • android-x86
  • linux-armv6
  • linux-armv6hf
  • linux-i586
  • linux-ppc
  • linux-mips
  • linux-mipsel
  • linux-superh
  • linux-sparc
  • linux-aarch64
  • linux-amd64
  • linux-ppc64
  • linux-ppc64le
  • linux-mips64
  • linux-ia64
  • linux-sparcv9
  • linux-risc2.0
  • freebsd-i586
  • freebsd-amd64
  • darwin-universal
  • windows-amd64
  • windows-i586
Returns
The os.and.arch value.

Definition at line 64 of file os_support.cpp.

Here is the caller graph for this function:

◆ get_os_and_arch() [2/2]

std::string jau::os::get_os_and_arch ( )
inlinenoexcept

Returns this hosts's common name, see get_os_and_arch()

Definition at line 305 of file os_support.hpp.

Here is the caller graph for this function:

◆ path_separator_char()

char jau::os::path_separator_char ( )
constexprnoexcept

Returns the OS's path separator character, e.g.

; for Windows and : for Unix (rest of the world)

Definition at line 310 of file os_support.hpp.

Here is the caller graph for this function:

◆ path_separator()

constexpr_cxx20 std::string jau::os::path_separator ( )
noexcept

Returns the OS's path separator as a string, e.g.

; for Windows and : for Unix (rest of the world)

Definition at line 318 of file os_support.hpp.

Here is the caller graph for this function:

◆ dir_separator_char()

char jau::os::dir_separator_char ( )
constexprnoexcept

Returns the OS's path separator character, e.g.

\\ for Windows and / for Unix (rest of the world)

Definition at line 323 of file os_support.hpp.

Here is the caller graph for this function:

◆ dir_separator()

constexpr_cxx20 std::string jau::os::dir_separator ( )
noexcept

Returns the OS's path separator as a string, e.g.

\\ for Windows and / for Unix (rest of the world)

Definition at line 332 of file os_support.hpp.

◆ get_platform_info() [1/2]

std::string jau::os::get_platform_info ( std::string & sb)
noexcept

Definition at line 166 of file os_support.cpp.

◆ get_platform_info() [2/2]

std::string jau::os::get_platform_info ( )
inlinenoexcept

Definition at line 337 of file os_support.hpp.

Here is the caller graph for this function: