mirror of
https://github.com/wiiu-env/MochaPayload.git
synced 2024-11-19 06:29:17 +01:00
Add IOCTL_FSA_FLUSHVOLUME
This commit is contained in:
parent
8a8afd4135
commit
bd3d993a7f
@ -57,6 +57,20 @@ int FSA_Unmount(int fd, char *path, u32 flags) {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int FSA_FlushVolume(int fd, char* volume_path)
|
||||||
|
{
|
||||||
|
u8* iobuf = allocIobuf();
|
||||||
|
u32* inbuf = (u32*)iobuf;
|
||||||
|
u32* outbuf = (u32*)&iobuf[0x520];
|
||||||
|
|
||||||
|
strncpy((char*)&inbuf[0x01], volume_path, 0x27F);
|
||||||
|
|
||||||
|
int ret = svcIoctl(fd, 0x1B, inbuf, 0x520, outbuf, 0x293);
|
||||||
|
|
||||||
|
freeIobuf(iobuf);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
int FSA_MakeDir(int fd, char *path, u32 flags) {
|
int FSA_MakeDir(int fd, char *path, u32 flags) {
|
||||||
u8 *iobuf = allocIobuf();
|
u8 *iobuf = allocIobuf();
|
||||||
u32 *inbuf = (u32 *) iobuf;
|
u32 *inbuf = (u32 *) iobuf;
|
||||||
|
@ -31,6 +31,8 @@ int FSA_Mount(int fd, char *device_path, char *volume_path, u32 flags, char *arg
|
|||||||
|
|
||||||
int FSA_Unmount(int fd, char *path, u32 flags);
|
int FSA_Unmount(int fd, char *path, u32 flags);
|
||||||
|
|
||||||
|
int FSA_FlushVolume(int fd, char* volume_path);
|
||||||
|
|
||||||
int FSA_GetDeviceInfo(int fd, char *device_path, int type, u32 *out_data);
|
int FSA_GetDeviceInfo(int fd, char *device_path, int type, u32 *out_data);
|
||||||
|
|
||||||
int FSA_MakeDir(int fd, char *path, u32 flags);
|
int FSA_MakeDir(int fd, char *path, u32 flags);
|
||||||
|
@ -73,6 +73,7 @@
|
|||||||
#define IOCTL_FSA_RAW_WRITE 0x56
|
#define IOCTL_FSA_RAW_WRITE 0x56
|
||||||
#define IOCTL_FSA_RAW_CLOSE 0x57
|
#define IOCTL_FSA_RAW_CLOSE 0x57
|
||||||
#define IOCTL_FSA_CHANGEMODE 0x58
|
#define IOCTL_FSA_CHANGEMODE 0x58
|
||||||
|
#define IOCTL_FSA_FLUSHVOLUME 0x59
|
||||||
|
|
||||||
static int ipcNodeKilled;
|
static int ipcNodeKilled;
|
||||||
static u8 threadStack[0x1000] __attribute__((aligned(0x20)));
|
static u8 threadStack[0x1000] __attribute__((aligned(0x20)));
|
||||||
@ -361,6 +362,14 @@ static int ipc_ioctl(ipcmessage *message) {
|
|||||||
message->ioctl.buffer_io[0] = FSA_ChangeMode(fd, path, mode);
|
message->ioctl.buffer_io[0] = FSA_ChangeMode(fd, path, mode);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case IOCTL_FSA_FLUSHVOLUME:
|
||||||
|
{
|
||||||
|
int fd = message->ioctl.buffer_in[0];
|
||||||
|
char *path = ((char *)message->ioctl.buffer_in) + message->ioctl.buffer_in[1];
|
||||||
|
|
||||||
|
message->ioctl.buffer_io[0] = FSA_FlushVolume(fd, path);
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
res = IOS_ERROR_INVALID_ARG;
|
res = IOS_ERROR_INVALID_ARG;
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user