summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReiko Asakura2020-07-23 23:06:45 -0400
committerReiko Asakura2020-07-23 23:06:45 -0400
commit56efc99722607de91493f2e1c3a25eb284d69573 (patch)
treee7d80ae3ce93857163fa4a5568517dd523a62e4d
parentRename some IO syscalls and wrappers (diff)
downloadvds-libraries-56efc99722607de91493f2e1c3a25eb284d69573.tar.gz
Add SceIofilemgr function prototypes
-rw-r--r--include/kernel/kernel/iofilemgr.h19
-rw-r--r--include/user/kernel/iofilemgr/syscall.h79
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_ */