diff options
| author | Ronald Kinard <[email protected]> | 2015-09-17 23:10:58 -0500 |
|---|---|---|
| committer | Ronald Kinard <[email protected]> | 2015-09-17 23:10:58 -0500 |
| commit | d0bfb6a437c68fb9b0bb54e6bb8b66261ccf2a60 (patch) | |
| tree | 0978168ec74a8a2cfa50e2b780b93f0f3aaad5d6 | |
| parent | Implement "Srv" struct. (diff) | |
| download | ctru-rs-d0bfb6a437c68fb9b0bb54e6bb8b66261ccf2a60.tar.xz ctru-rs-d0bfb6a437c68fb9b0bb54e6bb8b66261ccf2a60.zip | |
Add Sdmc struct.
This won't be useful until we have libstd, but worth making since
it's trivial.
| -rw-r--r-- | src/lib.rs | 3 | ||||
| -rw-r--r-- | src/sdmc.rs | 28 |
2 files changed, 31 insertions, 0 deletions
@@ -11,10 +11,13 @@ pub type Handle = u32; pub mod srv; pub mod gfx; +pub mod sdmc; + pub mod services; pub use srv::Srv; pub use gfx::Gfx; +pub use sdmc::Sdmc; #[lang = "stack_exhausted"] extern fn stack_exhausted() {} #[lang = "eh_personality"] extern fn eh_personality() {} diff --git a/src/sdmc.rs b/src/sdmc.rs new file mode 100644 index 0000000..e023010 --- /dev/null +++ b/src/sdmc.rs @@ -0,0 +1,28 @@ +use core::marker::PhantomData; + +use ::raw::sdmc::*; + +pub struct Sdmc { + pd: PhantomData<i32> +} + +impl Sdmc { + pub fn new() -> Result<Self, i32> { + unsafe { + let r = sdmcInit(); + if r < 0 { + Err(r) + } else { + Ok(Sdmc { pd: PhantomData }) + } + } + } +} + +impl Drop for Sdmc { + fn drop(&mut self) { + unsafe { + sdmcExit() + }; + } +} |