aboutsummaryrefslogtreecommitdiff
path: root/ctru-sys
diff options
context:
space:
mode:
authorFenrir <[email protected]>2016-06-03 16:20:47 -0700
committerFenrir <[email protected]>2016-06-03 16:20:47 -0700
commit2feaf8f636668641eb16e25208e53b718e191f66 (patch)
tree4b950e50860283a4bc69cdd59794863d038e82b2 /ctru-sys
parentOverhauled and simplified API. Now apps no longer hang on exit! (diff)
downloadarchived-ctru-rs-2feaf8f636668641eb16e25208e53b718e191f66.tar.xz
archived-ctru-rs-2feaf8f636668641eb16e25208e53b718e191f66.zip
core::fmt::Write support for the console
Diffstat (limited to 'ctru-sys')
-rw-r--r--ctru-sys/src/console.rs2
-rw-r--r--ctru-sys/src/lib.rs9
-rw-r--r--ctru-sys/src/libc.rs11
-rw-r--r--ctru-sys/src/os.rs7
-rw-r--r--ctru-sys/src/services/apt.rs2
-rw-r--r--ctru-sys/src/services/cam.rs2
-rw-r--r--ctru-sys/src/services/dsp.rs2
-rw-r--r--ctru-sys/src/services/fs.rs29
-rw-r--r--ctru-sys/src/services/gspgpu.rs2
-rw-r--r--ctru-sys/src/services/hb.rs2
-rw-r--r--ctru-sys/src/services/news.rs2
-rw-r--r--ctru-sys/src/services/pm.rs2
-rw-r--r--ctru-sys/src/services/srvpm.rs2
-rw-r--r--ctru-sys/src/services/y2r.rs2
-rw-r--r--ctru-sys/src/srv.rs2
-rw-r--r--ctru-sys/src/svc.rs2
-rw-r--r--ctru-sys/src/thread.rs2
17 files changed, 45 insertions, 37 deletions
diff --git a/ctru-sys/src/console.rs b/ctru-sys/src/console.rs
index fcaa747..0fd4924 100644
--- a/ctru-sys/src/console.rs
+++ b/ctru-sys/src/console.rs
@@ -1,4 +1,4 @@
-use c_void;
+use libc::c_void;
use super::gfx::*;
diff --git a/ctru-sys/src/lib.rs b/ctru-sys/src/lib.rs
index 4b212a5..6676277 100644
--- a/ctru-sys/src/lib.rs
+++ b/ctru-sys/src/lib.rs
@@ -14,6 +14,7 @@ pub mod gfx;
pub mod gpu;
pub mod ipc;
pub mod lock;
+pub mod libc;
pub mod os;
pub mod sdmc;
pub mod srv;
@@ -29,10 +30,4 @@ pub use self::types::*;
pub type Result = i32;
pub type Handle = u32;
-#[repr(u8)]
-pub enum c_void {
- __variant1,
- __variant2,
-}
-
-pub type ThreadFunc = Option<extern "C" fn(arg1: *mut c_void) -> ()>;
+pub type ThreadFunc = Option<extern "C" fn(arg1: *mut libc::c_void) -> ()>;
diff --git a/ctru-sys/src/libc.rs b/ctru-sys/src/libc.rs
new file mode 100644
index 0000000..95e37db
--- /dev/null
+++ b/ctru-sys/src/libc.rs
@@ -0,0 +1,11 @@
+pub const STDOUT_FILENO: i32 = 1;
+
+#[repr(u8)]
+pub enum c_void {
+ __variant1,
+ __variant2,
+}
+
+extern "C" {
+ pub fn write(fd: i32, buf: *const c_void, count: usize) -> isize;
+}
diff --git a/ctru-sys/src/os.rs b/ctru-sys/src/os.rs
index 7dbe3be..ce0df6c 100644
--- a/ctru-sys/src/os.rs
+++ b/ctru-sys/src/os.rs
@@ -1,6 +1,7 @@
//TODO: Fix Bindgen's issues again.
use ::Result;
+use libc::c_void;
use types::*;
#[inline]
@@ -35,9 +36,9 @@ impl ::core::default::Default for Struct_Unnamed2 {
}
pub type OS_VersionBin = Struct_Unnamed2;
extern "C" {
- pub fn osConvertVirtToPhys(vaddr: *const ::c_void) -> u32;
- pub fn osConvertOldLINEARMemToNew(vaddr: *const ::c_void)
- -> *mut ::c_void;
+ pub fn osConvertVirtToPhys(vaddr: *const c_void) -> u32;
+ pub fn osConvertOldLINEARMemToNew(vaddr: *const c_void)
+ -> *mut c_void;
pub fn osStrError(error: u32) -> *const u8;
pub fn osGetMemRegionUsed(region: MemRegion) -> s64;
pub fn osGetTime() -> u64;
diff --git a/ctru-sys/src/services/apt.rs b/ctru-sys/src/services/apt.rs
index a6ee0c0..8c32e91 100644
--- a/ctru-sys/src/services/apt.rs
+++ b/ctru-sys/src/services/apt.rs
@@ -1,5 +1,5 @@
use ::{Result, Handle};
-use ::c_void;
+use ::libc::c_void;
#[repr(C)]
#[derive(Clone, Copy)]
diff --git a/ctru-sys/src/services/cam.rs b/ctru-sys/src/services/cam.rs
index e9ef4f6..811956b 100644
--- a/ctru-sys/src/services/cam.rs
+++ b/ctru-sys/src/services/cam.rs
@@ -1,7 +1,7 @@
// TODO: Determine if anonymous enums are properly represented (they probably aren't)
use ::{Handle, Result};
-use ::c_void;
+use libc::c_void;
use ::types::*;
#[derive(Clone, Copy)]
diff --git a/ctru-sys/src/services/dsp.rs b/ctru-sys/src/services/dsp.rs
index 12edfae..de8241e 100644
--- a/ctru-sys/src/services/dsp.rs
+++ b/ctru-sys/src/services/dsp.rs
@@ -1,5 +1,5 @@
use ::{Handle, Result};
-use ::c_void;
+use ::libc::c_void;
#[repr(C)]
#[derive(Clone, Copy)]
diff --git a/ctru-sys/src/services/fs.rs b/ctru-sys/src/services/fs.rs
index 4cd767c..0608bb9 100644
--- a/ctru-sys/src/services/fs.rs
+++ b/ctru-sys/src/services/fs.rs
@@ -1,6 +1,7 @@
// TODO: Determine if anonymous enums are properly represented (they probably aren't)
use ::{Handle, Result};
+use ::libc::c_void;
#[derive(Clone, Copy)]
#[repr(C)]
@@ -276,7 +277,7 @@ pub type FS_DeviceMoveContext = Struct_Unnamed24;
pub struct Struct_Unnamed25 {
pub _type: FS_PathType,
pub size: u32,
- pub data: *const ::c_void,
+ pub data: *const c_void,
}
impl ::core::clone::Clone for Struct_Unnamed25 {
fn clone(&self) -> Self { *self }
@@ -305,12 +306,12 @@ extern "C" {
pub fn fsExit();
pub fn fsUseSession(session: Handle, sdmc: u8);
pub fn fsEndUseSession();
- pub fn fsMakePath(_type: FS_PathType, path: *const ::c_void)
+ pub fn fsMakePath(_type: FS_PathType, path: *const c_void)
-> FS_Path;
pub fn fsGetSessionHandle() -> *mut Handle;
pub fn FSUSER_Control(action: FS_Action,
- input: *mut ::c_void, inputSize: u32,
- output: *mut ::c_void,
+ input: *mut c_void, inputSize: u32,
+ output: *mut c_void,
outputSize: u32) -> Result;
pub fn FSUSER_Initialize(session: Handle) -> Result;
pub fn FSUSER_OpenFile(out: *mut Handle, archive: FS_Archive,
@@ -339,9 +340,9 @@ extern "C" {
pub fn FSUSER_OpenArchive(archive: *mut FS_Archive) -> Result;
pub fn FSUSER_ControlArchive(archive: FS_Archive,
action: FS_ArchiveAction,
- input: *mut ::c_void,
+ input: *mut c_void,
inputSize: u32,
- output: *mut ::c_void,
+ output: *mut c_void,
outputSize: u32) -> Result;
pub fn FSUSER_CloseArchive(archive: *mut FS_Archive) -> Result;
pub fn FSUSER_GetFreeBytes(freeBytes: *mut u64, archive: FS_Archive)
@@ -495,22 +496,22 @@ extern "C" {
titleUniqueId: u32,
titleVariation: u8) -> Result;
pub fn FSUSER_ControlSecureSave(action: FS_SecureSaveAction,
- input: *mut ::c_void,
+ input: *mut c_void,
inputSize: u32,
- output: *mut ::c_void,
+ output: *mut c_void,
outputSize: u32) -> Result;
pub fn FSUSER_GetMediaType(mediaType: *mut FS_MediaType) -> Result;
pub fn FSFILE_Control(handle: Handle, action: FS_FileAction,
- input: *mut ::c_void, inputSize: u32,
- output: *mut ::c_void,
+ input: *mut c_void, inputSize: u32,
+ output: *mut c_void,
outputSize: u32) -> Result;
pub fn FSFILE_OpenSubFile(handle: Handle, subFile: *mut Handle,
offset: u64, size: u64) -> Result;
pub fn FSFILE_Read(handle: Handle, bytesRead: *mut u32, offset: u64,
- buffer: *mut ::c_void, size: u32)
+ buffer: *mut c_void, size: u32)
-> Result;
pub fn FSFILE_Write(handle: Handle, bytesWritten: *mut u32, offset: u64,
- buffer: *const ::c_void, size: u32,
+ buffer: *const c_void, size: u32,
flags: u32) -> Result;
pub fn FSFILE_GetSize(handle: Handle, size: *mut u64) -> Result;
pub fn FSFILE_SetSize(handle: Handle, size: u64) -> Result;
@@ -524,8 +525,8 @@ extern "C" {
pub fn FSFILE_OpenLinkFile(handle: Handle, linkFile: *mut Handle)
-> Result;
pub fn FSDIR_Control(handle: Handle, action: FS_DirectoryAction,
- input: *mut ::c_void, inputSize: u32,
- output: *mut ::c_void,
+ input: *mut c_void, inputSize: u32,
+ output: *mut c_void,
outputSize: u32) -> Result;
pub fn FSDIR_Read(handle: Handle, entriesRead: *mut u32,
entryCount: u32, entries: *mut FS_DirectoryEntry)
diff --git a/ctru-sys/src/services/gspgpu.rs b/ctru-sys/src/services/gspgpu.rs
index 7265812..ffe4703 100644
--- a/ctru-sys/src/services/gspgpu.rs
+++ b/ctru-sys/src/services/gspgpu.rs
@@ -1,5 +1,5 @@
use ::{Handle, Result};
-use ::c_void;
+use ::libc::c_void;
use ::types::*;
#[inline]
diff --git a/ctru-sys/src/services/hb.rs b/ctru-sys/src/services/hb.rs
index 7bfe5fb..6d6264e 100644
--- a/ctru-sys/src/services/hb.rs
+++ b/ctru-sys/src/services/hb.rs
@@ -1,5 +1,5 @@
use ::Result;
-use ::c_void;
+use ::libc::c_void;
extern "C" {
diff --git a/ctru-sys/src/services/news.rs b/ctru-sys/src/services/news.rs
index fc82784..fb34f41 100644
--- a/ctru-sys/src/services/news.rs
+++ b/ctru-sys/src/services/news.rs
@@ -1,5 +1,5 @@
use ::Result;
-use ::c_void;
+use ::libc::c_void;
extern "C" {
pub fn newsInit() -> Result;
diff --git a/ctru-sys/src/services/pm.rs b/ctru-sys/src/services/pm.rs
index 971fbb3..958dbc4 100644
--- a/ctru-sys/src/services/pm.rs
+++ b/ctru-sys/src/services/pm.rs
@@ -1,5 +1,5 @@
use ::{Handle, Result};
-use ::c_void;
+use ::libc::c_void;
extern "C" {
pub fn pmInit() -> Result;
diff --git a/ctru-sys/src/services/srvpm.rs b/ctru-sys/src/services/srvpm.rs
index 0141898..47ae21f 100644
--- a/ctru-sys/src/services/srvpm.rs
+++ b/ctru-sys/src/services/srvpm.rs
@@ -1,5 +1,5 @@
use ::{Handle, Result};
-use ::c_void;
+use ::libc::c_void;
extern "C" {
pub fn srvPmInit() -> Result;
diff --git a/ctru-sys/src/services/y2r.rs b/ctru-sys/src/services/y2r.rs
index d3393d3..6554ad6 100644
--- a/ctru-sys/src/services/y2r.rs
+++ b/ctru-sys/src/services/y2r.rs
@@ -1,5 +1,5 @@
use ::{Handle, Result};
-use ::c_void;
+use ::libc::c_void;
use ::types::*;
#[derive(Clone, Copy)]
diff --git a/ctru-sys/src/srv.rs b/ctru-sys/src/srv.rs
index e465b8a..050c32f 100644
--- a/ctru-sys/src/srv.rs
+++ b/ctru-sys/src/srv.rs
@@ -1,5 +1,5 @@
use {Result, Handle};
-use c_void;
+use libc::c_void;
extern "C" {
pub fn srvInit() -> Result;
diff --git a/ctru-sys/src/svc.rs b/ctru-sys/src/svc.rs
index 0ad3fc9..12efcca 100644
--- a/ctru-sys/src/svc.rs
+++ b/ctru-sys/src/svc.rs
@@ -1,7 +1,7 @@
//TODO: Implement static functions
use {Handle, Result};
-use c_void;
+use libc::c_void;
use ThreadFunc;
use types::*;
diff --git a/ctru-sys/src/thread.rs b/ctru-sys/src/thread.rs
index 960807b..74a92e0 100644
--- a/ctru-sys/src/thread.rs
+++ b/ctru-sys/src/thread.rs
@@ -1,5 +1,5 @@
use {Handle, Result};
-use c_void;
+use libc::c_void;
use ThreadFunc;
pub enum Struct_Thread_tag { }