summaryrefslogtreecommitdiff
path: root/include/common/kernel/iofilemgr/stat.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/common/kernel/iofilemgr/stat.h')
-rw-r--r--include/common/kernel/iofilemgr/stat.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/include/common/kernel/iofilemgr/stat.h b/include/common/kernel/iofilemgr/stat.h
new file mode 100644
index 0000000..4afea74
--- /dev/null
+++ b/include/common/kernel/iofilemgr/stat.h
@@ -0,0 +1,48 @@
+#ifndef _DOLCESDK_PSP2COMMON_KERNEL_IOFILEMGR_STAT_H_
+#define _DOLCESDK_PSP2COMMON_KERNEL_IOFILEMGR_STAT_H_
+
+#include <psp2common/kernel/types.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Filetypes and Protection bits */
+#define SCE_STM_FMT (0xf << 12)
+#define SCE_STM_FREG (0x2 << 12) /* regular file */
+#define SCE_STM_FDIR (0x1 << 12) /* directory */
+#define SCE_STM_ISREG(m) (((m) & SCE_STM_FMT) == SCE_STM_FREG)
+#define SCE_STM_ISDIR(m) (((m) & SCE_STM_FMT) == SCE_STM_FDIR)
+
+/* for SceMode */
+#define SCE_STM_RWU 00600
+#define SCE_STM_RU 00400
+#define SCE_STM_RWO 00006
+#define SCE_STM_RO 00004
+
+/* for chstat cbit */
+#define SCE_CST_MODE 0x0001
+#define SCE_CST_ATTR 0x0000 /* not supported */
+#define SCE_CST_SIZE 0x0004
+#define SCE_CST_CT 0x0008
+#define SCE_CST_AT 0x0010
+#define SCE_CST_MT 0x0020
+
+/**
+ * See sceIoChstat(), sceIoGetstat(), sceIoChstatByFd(), sceIoGetstatByFd()
+ */
+typedef struct SceIoStat {
+ SceIoMode st_mode; //!< File access mode
+ unsigned int st_attr; //!< Device-specific attribute
+ SceOff st_size; //!< File size
+ SceDateTime st_ctime; //!< File creation time
+ SceDateTime st_atime; //!< File last accessed time
+ SceDateTime st_mtime; //!< File last modified time
+ unsigned int st_private[6]; //!< Reserved
+} SceIoStat;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DOLCESDK_PSP2COMMON_KERNEL_IOFILEMGR_STAT_H_ */