diff options
author | Reiko Asakura | 2020-07-23 23:06:45 -0400 |
---|---|---|
committer | Reiko Asakura | 2020-07-23 23:06:45 -0400 |
commit | 56efc99722607de91493f2e1c3a25eb284d69573 (patch) | |
tree | e7d80ae3ce93857163fa4a5568517dd523a62e4d | |
parent | Rename some IO syscalls and wrappers (diff) | |
download | vds-libraries-56efc99722607de91493f2e1c3a25eb284d69573.tar.gz |
Add SceIofilemgr function prototypes
-rw-r--r-- | include/kernel/kernel/iofilemgr.h | 19 | ||||
-rw-r--r-- | include/user/kernel/iofilemgr/syscall.h | 79 |
2 files changed, 98 insertions, 0 deletions
diff --git a/include/kernel/kernel/iofilemgr.h b/include/kernel/kernel/iofilemgr.h index e199e75..9c79314 100644 --- a/include/kernel/kernel/iofilemgr.h +++ b/include/kernel/kernel/iofilemgr.h @@ -113,6 +113,25 @@ SceUID sceIoOpen(const char *filename, int flag, SceIoMode mode); int sceIoClose(SceUID fd); /** + * Perform an ioctl on a device. + * + * @param fd - Opened file descriptor to ioctl to + * @param cmd - The command to send to the device + * @param argp - A data block to send to the device, if NULL sends no data + * @param arglen - Length of indata, if 0 sends no data + * @param bufp - A data block to receive the result of a command, if NULL receives no data + * @param buflen - Length of outdata, if 0 receives no data + * @return 0 on success, < 0 on error + */ +int sceIoIoctl( + SceUID fd, + int cmd, + const void *argp, + SceSize arglen, + void *bufp, + SceSize buflen); + +/** * Reposition read/write file descriptor offset * * @par Example: diff --git a/include/user/kernel/iofilemgr/syscall.h b/include/user/kernel/iofilemgr/syscall.h new file mode 100644 index 0000000..c47623a --- /dev/null +++ b/include/user/kernel/iofilemgr/syscall.h @@ -0,0 +1,79 @@ +#ifndef _DOLCESDK_PSP2_KERNEL_IOFILEMGR_SYSCALL_H_ +#define _DOLCESDK_PSP2_KERNEL_IOFILEMGR_SYSCALL_H_ + +#include <psp2/kernel/types.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/* Struct definitions */ + +typedef struct SceIoUnusedSyscallParam0x8 { + char unused[0x8]; +} SceIoUnusedSyscallParam0x8; + +typedef struct SceIoUnusedSyscallParam0x10 { + char unused[0x10]; +} SceIoUnusedSyscallParam0x10; + +typedef struct SceIoDevctlSyscallParam { + SceSize arglen; + void *bufp; + SceSize buflen; + char unused[0xC]; + // size 0x18 +} SceIoDevctlSyscallParam; + +typedef struct SceIoIoctlSyscallParam { + SceSize arglen; + void *bufp; + SceSize buflen; + char unused[0x4]; + // size 0x10 +} SceIoIoctlSyscallParam; + +typedef struct SceIoLseekSyscallParam { + SceOff offset; + int whence; + char unused[0x4]; + // size 0x10 +} SceIoLseekSyscallParam; + +typedef struct SceIoPreadSyscallParam { + SceOff offset; + char unused[0x8]; + // size 0x10 +} SceIoPreadSyscallParam; + +typedef SceIoPreadSyscallParam SceIoPwriteSyscallParam; + +/* Function declarations */ + +SceUID _sceIoRemove(const char *filename, SceIoUnusedSyscallParam0x8 param); + +int _sceIoMkdir(const char *dirname, SceIoMode mode, SceIoUnusedSyscallParam0x8 param); + +int _sceIoRmdir(const char *dirname, SceIoUnusedSyscallParam0x8 param); + +int _sceIoRename(const char *oldname, const char *newname, SceIoUnusedSyscallParam0x10 param); + +int _sceIoDevctl(const char *devname, int cmd, const void *arg, SceIoDevctlSyscallParam param); + +int _sceIoSync(const char *devname, int flag, SceIoUnusedSyscallParam0x8 param); + +SceUID _sceIoOpen(const char *filename, int flag, SceIoMode mode, SceIoUnusedSyscallParam0x8 param); + +int _sceIoIoctl(SceUID fd, int cmd, const void *argp, SceIoIoctlSyscallParam param); + +SceOff _sceIoLseek(SceUID fd, SceIoLseekSyscallParam param); + +SceSSize _sceIoPread(SceUID fd, void *buf, SceSize nbyte, SceIoPreadSyscallParam param); + +SceSSize _sceIoPwrite(SceUID fd, const void *buf, SceSize nbyte, SceIoPwriteSyscallParam param); + +#ifdef __cplusplus +} +#endif + +#endif /* _DOLCESDK_PSP2_KERNEL_IOFILEMGR_SYSCALL_H_ */ |