1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
use types::SceDateTime;
use types::SceMode;
use types::SceOff;
use types::SceUID;
#[repr(i32)]
pub enum SceIoAccessMode {
SCE_S_IXUSR = 0x0001,
SCE_S_IWUSR = 0x0002,
SCE_S_IRUSR = 0x0004,
SCE_S_IRWXU = 0x0007,
SCE_S_IXGRP = 0x0008,
SCE_S_IWGRP = 0x0010,
SCE_S_IRGRP = 0x0020,
SCE_S_IRWXG = 0x0038,
SCE_S_IXOTH = 0x0040,
SCE_S_IWOTH = 0x0080,
SCE_S_IROTH = 0x0100,
SCE_S_IRWXO = 0x01C0,
SCE_S_ISVTX = 0x0200,
SCE_S_ISGID = 0x0400,
SCE_S_ISUID = 0x0800,
SCE_S_IFDIR = 0x1000,
SCE_S_IFREG = 0x2000,
SCE_S_IFLNK = 0x4000,
SCE_S_IFMT = 0xF000,
}
#[repr(i32)]
pub enum SceIoFileMode {
SCE_SO_IXOTH = 0x0001,
SCE_SO_IWOTH = 0x0002,
SCE_SO_IROTH = 0x0004,
SCE_SO_IFLNK = 0x0008,
SCE_SO_IFDIR = 0x0010,
SCE_SO_IFREG = 0x0020,
SCE_SO_IFMT = 0x0038,
}
#[repr(C)]
pub struct SceIoStat {
pub st_mode: SceMode,
pub st_attr: u32,
pub st_size: SceOff,
pub st_ctime: SceDateTime,
pub st_atime: SceDateTime,
pub st_mtime: SceDateTime,
pub st_private: [u32; 6],
}
#[cfg_attr(
not(feature = "dox"),
link(kind = "static", name = "SceLibKernel_stub")
)]
extern "C" {
pub fn sceIoMkdir(dir: *const u8, mode: SceMode) -> i32;
pub fn sceIoRmdir(path: *const u8) -> i32;
pub fn sceIoGetstatbyFd(fd: SceUID, stat: *mut SceIoStat) -> i32;
pub fn sceIoChstat(file: *const u8, stat: *mut SceIoStat, bits: i32) -> i32;
pub fn sceIoChstatByFd(fd: SceUID, buf: *const SceIoStat, cbit: u32) -> i32;
}