Skip to content

Commit

Permalink
Add c typedefs for the Sony PSP
Browse files Browse the repository at this point in the history
  • Loading branch information
overdrivenpotato committed May 7, 2020
1 parent bb734e3 commit 5dfe013
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/lib.rs
Expand Up @@ -115,6 +115,12 @@ cfg_if! {

mod switch;
pub use switch::*;
} else if #[cfg(target_os = "psp")] {
mod fixed_width_ints;
pub use fixed_width_ints::*;

mod psp;
pub use psp::*;
} else if #[cfg(target_os = "vxworks")] {
mod fixed_width_ints;
pub use fixed_width_ints::*;
Expand Down
47 changes: 47 additions & 0 deletions src/psp.rs
@@ -0,0 +1,47 @@
//! PSP C type definitions

pub type c_schar = i8;
pub type c_uchar = u8;
pub type c_short = i16;
pub type c_ushort = u16;
pub type c_int = i32;
pub type c_uint = u32;
pub type c_float = f32;
pub type c_double = f64;
pub type c_longlong = i64;
pub type c_ulonglong = u64;
pub type intmax_t = i64;
pub type uintmax_t = u64;

pub type size_t = usize;
pub type ptrdiff_t = isize;
pub type intptr_t = isize;
pub type uintptr_t = usize;
pub type ssize_t = isize;

pub type c_char = u8;
pub type c_long = i64;
pub type c_ulong = u64;

pub const INT_MIN: c_int = -2147483648;
pub const INT_MAX: c_int = 2147483647;

cfg_if! {
if #[cfg(libc_core_cvoid)] {
pub use ::ffi::c_void;
} else {
// Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help
// enable more optimization opportunities around it recognizing things
// like malloc/free.
#[repr(u8)]
#[allow(missing_copy_implementations)]
#[allow(missing_debug_implementations)]
pub enum c_void {
// Two dummy variants so the #[repr] attribute can be used.
#[doc(hidden)]
__variant1,
#[doc(hidden)]
__variant2,
}
}
}

0 comments on commit 5dfe013

Please sign in to comment.