mirror of
https://github.com/wiiu-env/WiiUPluginSystem.git
synced 2024-12-25 01:21:57 +01:00
[Loader] Added mkdir support to the plugins
This commit is contained in:
parent
fd5acd8932
commit
b9b8bceebf
@ -85,6 +85,7 @@ ASFLAGS := -mregnames
|
|||||||
# -Map: generate a map file
|
# -Map: generate a map file
|
||||||
|
|
||||||
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
||||||
|
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir,-wrap,mkdir \
|
||||||
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
||||||
|
|
||||||
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
||||||
|
@ -48,6 +48,7 @@ void CallHookEx(wups_loader_hook_type_t hook_type, s32 plugin_index_needed) {
|
|||||||
args.opendir_repl = (const void*)&opendir;
|
args.opendir_repl = (const void*)&opendir;
|
||||||
args.closedir_repl = (const void*)&closedir;
|
args.closedir_repl = (const void*)&closedir;
|
||||||
args.readdir_repl = (const void*)&readdir;
|
args.readdir_repl = (const void*)&readdir;
|
||||||
|
args.mkdir_repl = (const void*)&mkdir;
|
||||||
|
|
||||||
((void (*)(wups_loader_init_fs_args_t))((unsigned int*)func_ptr) )(args);
|
((void (*)(wups_loader_init_fs_args_t))((unsigned int*)func_ptr) )(args);
|
||||||
} else if(hook_type == WUPS_LOADER_HOOK_INIT_OVERLAY) {
|
} else if(hook_type == WUPS_LOADER_HOOK_INIT_OVERLAY) {
|
||||||
|
@ -85,6 +85,7 @@ ASFLAGS := -mregnames
|
|||||||
# -Map: generate a map file
|
# -Map: generate a map file
|
||||||
|
|
||||||
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
||||||
|
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir,-wrap,mkdir \
|
||||||
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
||||||
|
|
||||||
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
||||||
|
@ -87,7 +87,7 @@ ASFLAGS := -mregnames
|
|||||||
# -Map: generate a map file
|
# -Map: generate a map file
|
||||||
|
|
||||||
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
||||||
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir \
|
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir,-wrap,mkdir \
|
||||||
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
||||||
|
|
||||||
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
||||||
|
@ -85,7 +85,7 @@ ASFLAGS := -mregnames
|
|||||||
# -Map: generate a map file
|
# -Map: generate a map file
|
||||||
|
|
||||||
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
||||||
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir \
|
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir,-wrap,mkdir \
|
||||||
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
||||||
|
|
||||||
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
||||||
|
@ -85,6 +85,7 @@ ASFLAGS := -mregnames
|
|||||||
# -Map: generate a map file
|
# -Map: generate a map file
|
||||||
|
|
||||||
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
||||||
|
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir,-wrap,mkdir \
|
||||||
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
||||||
|
|
||||||
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
||||||
|
@ -87,7 +87,7 @@ ASFLAGS := -mregnames
|
|||||||
# -Map: generate a map file
|
# -Map: generate a map file
|
||||||
|
|
||||||
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
||||||
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir \
|
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir,-wrap,mkdir \
|
||||||
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
||||||
|
|
||||||
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
||||||
|
@ -85,7 +85,7 @@ ASFLAGS := -mregnames
|
|||||||
# -Map: generate a map file
|
# -Map: generate a map file
|
||||||
|
|
||||||
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
||||||
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir \
|
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir,-wrap,mkdir \
|
||||||
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
||||||
|
|
||||||
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
||||||
|
@ -88,7 +88,7 @@ ASFLAGS := -mregnames
|
|||||||
# -Map: generate a map file
|
# -Map: generate a map file
|
||||||
|
|
||||||
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
||||||
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir \
|
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir,-wrap,mkdir \
|
||||||
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,-wrap,opendir,--gc-sections
|
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,-wrap,opendir,--gc-sections
|
||||||
|
|
||||||
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
||||||
|
@ -87,7 +87,7 @@ ASFLAGS := -mregnames
|
|||||||
# -Map: generate a map file
|
# -Map: generate a map file
|
||||||
|
|
||||||
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
LDFLAG_COMMON += -u wups_load -u wups_meta -u wups_hooks -T $(WUPSDIR)/wups.ld \
|
||||||
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir \
|
-Wl,-wrap,open,-wrap,close,-wrap,write,-wrap,read,-wrap,lseek,-wrap,stat,-wrap,fstat,-wrap,opendir,-wrap,closedir,-wrap,readdir,-wrap,mkdir \
|
||||||
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
-Wl,-Map,$(notdir $@).map,-wrap,malloc,-wrap,free,-wrap,memalign,-wrap,calloc,-wrap,realloc,-wrap,malloc_usable_size,-wrap,_malloc_r,-wrap,_free_r,-wrap,_realloc_r,-wrap,_calloc_r,-wrap,_memalign_r,-wrap,_malloc_usable_size_r,--gc-sections
|
||||||
|
|
||||||
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
LDFLAGS_MOD += $(LDFLAG_COMMON),--relocatable
|
||||||
|
@ -17,6 +17,7 @@ static void * new_fstat_ptr __attribute__((section(".data"))) = NULL;
|
|||||||
static void * new_opendir_ptr __attribute__((section(".data"))) = NULL;
|
static void * new_opendir_ptr __attribute__((section(".data"))) = NULL;
|
||||||
static void * new_closedir_ptr __attribute__((section(".data"))) = NULL;
|
static void * new_closedir_ptr __attribute__((section(".data"))) = NULL;
|
||||||
static void * new_readdir_ptr __attribute__((section(".data"))) = NULL;
|
static void * new_readdir_ptr __attribute__((section(".data"))) = NULL;
|
||||||
|
static void * new_mkdir_ptr __attribute__((section(".data"))) = NULL;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -32,6 +33,7 @@ static void * new_readdir_ptr __attribute__((section(".data"))) = NULL;
|
|||||||
new_opendir_ptr = (void*) args.opendir_repl;
|
new_opendir_ptr = (void*) args.opendir_repl;
|
||||||
new_closedir_ptr = (void*) args.closedir_repl;
|
new_closedir_ptr = (void*) args.closedir_repl;
|
||||||
new_readdir_ptr = (void*) args.readdir_repl;
|
new_readdir_ptr = (void*) args.readdir_repl;
|
||||||
|
new_mkdir_ptr = (void*) args.mkdir_repl;
|
||||||
}
|
}
|
||||||
|
|
||||||
int __real_open(const char *pathname, int flags);
|
int __real_open(const char *pathname, int flags);
|
||||||
@ -84,6 +86,11 @@ static void * new_readdir_ptr __attribute__((section(".data"))) = NULL;
|
|||||||
if(new_readdir_ptr == NULL) return __real_readdir(dirp);
|
if(new_readdir_ptr == NULL) return __real_readdir(dirp);
|
||||||
return ( (struct dirent * (*)(DIR *))((unsigned int*)new_readdir_ptr) )(dirp);
|
return ( (struct dirent * (*)(DIR *))((unsigned int*)new_readdir_ptr) )(dirp);
|
||||||
}
|
}
|
||||||
|
int __real_mkdir(const char *path, mode_t mode);
|
||||||
|
int __wrap_mkdir(const char *path, mode_t mode){
|
||||||
|
if(new_mkdir_ptr == NULL) return __real_mkdir(path, mode);
|
||||||
|
return ( (int (*)(const char *, mode_t))((unsigned int*) new_mkdir_ptr) )(path, mode);
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
@ -73,6 +73,7 @@ typedef struct wups_loader_init_fs_args_t {
|
|||||||
const void * opendir_repl;
|
const void * opendir_repl;
|
||||||
const void * closedir_repl;
|
const void * closedir_repl;
|
||||||
const void * readdir_repl;
|
const void * readdir_repl;
|
||||||
|
const void * mkdir_repl;
|
||||||
} wups_loader_init_fs_args_t;
|
} wups_loader_init_fs_args_t;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user