Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Meziu committed Feb 5, 2022
2 parents 24ec4f2 + cb15f99 commit ab728c7
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
1 change: 1 addition & 0 deletions ctru-rs/src/services/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ pub mod apt;
pub mod fs;
pub mod gspgpu;
pub mod hid;
pub mod ps;
pub mod soc;
pub mod sslc;

Expand Down
29 changes: 29 additions & 0 deletions ctru-rs/src/services/ps.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
//! Process Services (PS) module. This is used for miscellaneous utility tasks, but
//! is particularly important because it is used to generate random data, which
//! is required for common things like [`HashMap`](std::collections::HashMap).
//! See also <https://www.3dbrew.org/wiki/Process_Services>
/// PS handle. This must not be dropped in order for random generation
/// to work (in most cases, the lifetime of an application).
#[non_exhaustive]
pub struct Ps;

impl Ps {
/// Initialize the PS module.
pub fn init() -> crate::Result<Self> {
let r = unsafe { ctru_sys::psInit() };
if r < 0 {
Err(r.into())
} else {
Ok(Self)
}
}
}

impl Drop for Ps {
fn drop(&mut self) {
unsafe {
ctru_sys::psExit();
}
}
}

0 comments on commit ab728c7

Please sign in to comment.