| //! `solid_fs.h` |
| use crate::os::raw::{c_char, c_int, c_uchar}; |
| pub use libc::{ |
| blksize_t, dev_t, ino_t, off_t, stat, time_t, O_APPEND, O_CREAT, O_EXCL, O_RDONLY, O_RDWR, |
| O_TRUNC, O_WRONLY, SEEK_CUR, SEEK_END, SEEK_SET, S_IEXEC, S_IFBLK, S_IFCHR, S_IFDIR, S_IFIFO, |
| S_IFMT, S_IFREG, S_IREAD, S_IWRITE, |
| }; |
| |
| pub const O_ACCMODE: c_int = 0x3; |
| |
| pub const SOLID_MAX_PATH: usize = 256; |
| |
| #[repr(C)] |
| #[derive(Copy, Clone)] |
| pub struct dirent { |
| pub d_ino: ino_t, |
| pub d_type: c_uchar, |
| pub d_name: [c_char; 256usize], |
| } |
| |
| pub const DT_UNKNOWN: c_uchar = 0; |
| pub const DT_FIFO: c_uchar = 1; |
| pub const DT_CHR: c_uchar = 2; |
| pub const DT_DIR: c_uchar = 4; |
| pub const DT_BLK: c_uchar = 6; |
| pub const DT_REG: c_uchar = 8; |
| pub const DT_LNK: c_uchar = 10; |
| pub const DT_SOCK: c_uchar = 12; |
| pub const DT_WHT: c_uchar = 14; |
| |
| pub type S_DIR = c_int; |
| |
| extern "C" { |
| pub fn SOLID_FS_Open(fd: *mut c_int, path: *const c_char, mode: c_int) -> c_int; |
| pub fn SOLID_FS_Close(fd: c_int) -> c_int; |
| pub fn SOLID_FS_Read(fd: c_int, buf: *mut u8, size: usize, result: *mut usize) -> c_int; |
| pub fn SOLID_FS_Write(fd: c_int, buf: *const u8, size: usize, result: *mut usize) -> c_int; |
| pub fn SOLID_FS_Lseek(fd: c_int, offset: off_t, whence: c_int) -> c_int; |
| pub fn SOLID_FS_Sync(fd: c_int) -> c_int; |
| pub fn SOLID_FS_Ftell(fd: c_int, result: *mut off_t) -> c_int; |
| pub fn SOLID_FS_Feof(fd: c_int, result: *mut c_int) -> c_int; |
| pub fn SOLID_FS_Fsize(fd: c_int, result: *mut usize) -> c_int; |
| pub fn SOLID_FS_Truncate(path: *const c_char, size: off_t) -> c_int; |
| pub fn SOLID_FS_OpenDir(path: *const c_char, pDir: *mut S_DIR) -> c_int; |
| pub fn SOLID_FS_CloseDir(dir: S_DIR) -> c_int; |
| pub fn SOLID_FS_ReadDir(dir: S_DIR, dirp: *mut dirent) -> c_int; |
| pub fn SOLID_FS_Stat(path: *const c_char, buf: *mut stat) -> c_int; |
| pub fn SOLID_FS_Unlink(path: *const c_char) -> c_int; |
| pub fn SOLID_FS_Rename(oldpath: *const c_char, newpath: *const c_char) -> c_int; |
| pub fn SOLID_FS_Chmod(path: *const c_char, mode: c_int) -> c_int; |
| pub fn SOLID_FS_Utime(path: *const c_char, time: time_t) -> c_int; |
| pub fn SOLID_FS_Mkdir(path: *const c_char) -> c_int; |
| } |