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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
#ifndef _DOLCESDK_PSP2_KERNEL_IOFILEMGR_STAT_H_
#define _DOLCESDK_PSP2_KERNEL_IOFILEMGR_STAT_H_
#include <psp2/kernel/types.h>
#include <psp2/kernel/iofilemgr/async.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
/* 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;
/**
* Change the status of a file.
*
* @param name - The path to the file.
* @param buf - A pointer to a ::SceIoStat structure.
* @param cbit - Bitmask defining which bits to change.
*
* @return < 0 on error.
*/
int sceIoChstat(const char *name, const SceIoStat *buf, unsigned int cbit);
/**
* Get the status of a file.
*
* @param name - The path to the file.
* @param buf - A pointer to a ::SceIoStat structure.
*
* @return < 0 on error.
*/
int sceIoGetstat(const char *name, SceIoStat *buf);
/**
* Get the status of a file descriptor.
*
* @param fd - The file descriptor.
* @param buf - A pointer to a ::SceIoStat structure.
*
* @return < 0 on error.
*/
int sceIoGetstatByFd(SceUID fd, SceIoStat *buf);
/**
* Change the status of a file descriptor.
*
* @param fd - The file descriptor.
* @param buf - A pointer to an io_stat_t structure.
* @param cbit - Bitmask defining which bits to change.
*
* @return < 0 on error.
*/
int sceIoChstatByFd(SceUID fd, const SceIoStat *buf, unsigned int cbit);
/**
* Make a directory file (asynchronous)
*
* @param dir - The path to the directory
* @param mode - Access mode (One or more ::SceIoAccessMode).
* @param asyncParam - parameters related to async operation.
*
* @return A non-negative integer is a valid op handle, anything else an error
*/
SceUID sceIoMkdirAsync(const char *dir, SceMode mode, SceIoAsyncParam* asyncParam);
/**
* Remove a directory file (asynchronous)
*
* @param path - Removes a directory file pointed by the string path
* @param asyncParam - parameters related to async operation.
*
* @return A non-negative integer is a valid op handle, anything else an error
*/
SceUID sceIoRmdirAsync(const char *path, SceIoAsyncParam* asyncParam);
/**
* Get the status of a file (asynchronous)
*
* @param file - The path to the file.
* @param stat - A pointer to a ::SceIoStat structure.
* @param asyncParam - parameters related to async operation.
*
* @return A non-negative integer is a valid op handle, anything else an error
*/
SceUID sceIoGetstatAsync(const char *file, SceIoStat *stat, SceIoAsyncParam* asyncParam);
/**
* Change the status of a file (asynchronous)
*
* @param file - The path to the file.
* @param stat - A pointer to a ::SceIoStat structure.
* @param bits - Bitmask defining which bits to change.
* @param asyncParam - parameters related to async operation.
*
* @return A non-negative integer is a valid op handle, anything else an error
*/
SceUID sceIoChstatAsync(const char *file, SceIoStat *stat, int bits, SceIoAsyncParam* asyncParam);
#ifdef __cplusplus
}
#endif
#endif /* _DOLCESDK_PSP2_KERNEL_IOFILEMGR_STAT_H_ */
|