dinvk/
lib.rs

1#![no_std]
2#![doc = include_str!("../README.md")]
3#![allow(non_snake_case, non_camel_case_types)]
4#![allow(
5    clippy::too_many_arguments,
6    clippy::not_unsafe_ptr_arg_deref,
7    clippy::missing_transmute_annotations,
8    clippy::missing_safety_doc,
9    clippy::macro_metavars_in_unsafe
10)]
11
12// Allow usage of `alloc` crate for heap-allocated types.
13extern crate alloc;
14
15// Internal modules
16mod functions;
17mod macros;
18mod module;
19mod syscall;
20mod utils;
21
22/// Structures and types used across the library.
23pub mod data;
24
25/// Runtime hash functions.
26pub mod hash;
27
28/// PE Parsing
29pub mod parse;
30
31/// Hardware breakpoint management utilities (only for x86/x86_64 targets).
32#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
33pub mod breakpoint;
34
35/// Custom panic handler support (requires `dinvk_panic` feature).
36#[cfg(feature = "dinvk_panic")]
37pub mod panic;
38
39/// Heap allocator using Windows native APIs (requires `alloc` feature).
40#[cfg(feature = "alloc")]
41pub mod allocator;
42
43// Re-exports for easier usage
44pub use syscall::*;
45pub use functions::*;
46pub use module::*;
47pub use module::ldr::*;
48pub use utils::*;