diff --git a/Makefile.orbis b/Makefile.orbis index fe08503b04..e70005cbcc 100644 --- a/Makefile.orbis +++ b/Makefile.orbis @@ -16,8 +16,7 @@ PC_DEVELOPMENT_UDP_PORT = 18194 AUTH_INFO = 000000000000000000000000001C004000FF000000000080000000000000000000000000000000000000008000400040000000000000008000000000000000080040FFFF000000F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -OBJ += memory/ps4/user_mem.o \ - deps/xxHash/xxhash.c \ +OBJ += deps/xxHash/xxhash.c \ # input/drivers/ps4_input.o \ # input/drivers_joypad/ps4_joypad.o \ # audio/drivers/psp_audio.o \ @@ -116,8 +115,8 @@ STRIP := $(PREFIX)strip NM := $(PREFIX)nm LD := clang -LIBDIRS += -L. -Lcores -Lmemory/ps4 -Lbuild -L$(ORBISDEV)/usr/lib -INCDIRS += -I. -Idefines -Imemory/ps4 -Ideps -Ideps/7zip -Ideps/libz -Ilibretro-common/include -Ideps/stb \ +LIBDIRS += -L. -Lcores -Lbuild -L$(ORBISDEV)/usr/lib +INCDIRS += -I. -Idefines -Ideps -Ideps/7zip -Ideps/libz -Ilibretro-common/include -Ideps/stb \ -Ilibretro-common/include/compat/zlib -Ideps/rcheevos/include -I$(ORBISDEV)/usr/include -I$(ORBISDEV)/usr/include/c++/v1 -I$(ORBISDEV)/usr/include/orbis ARCHFLAGS += --target=x86_64-scei-ps4 -DORBIS -D__PS4__ -D_BSD_SOURCE @@ -152,9 +151,9 @@ ifeq ($(WHOLE_ARCHIVE_LINK), 1) endif -PS4_LIBS += -lkernel_stub -lSceLibcInternal_stub -lSceSysmodule_stub -lSceSystemService_stub -lSceNet_stub -lSceUserService_stub \ - -lScePigletv2VSH_stub -lSceVideoOut_stub -lSceGnmDriver_stub -lorbisGl2 -lorbis -lScePad_stub -lSceAudioOut_stub \ - -lSceIme_stub -lSceNetCtl_stub +PS4_LIBS += -luser_mem_sys -lkernel_stub -lSceLibcInternal_stub -lSceSysmodule_stub -lSceSystemService_stub -lSceNet_stub \ + -lSceUserService_stub -lScePigletv2VSH_stub -lSceVideoOut_stub -lSceGnmDriver_stub -lorbisGl2 -lorbis -lScePad_stub \ + -lSceAudioOut_stub -lSceIme_stub -lSceNetCtl_stub ifeq ($(HAVE_STATIC_DUMMY),1) LIBS := $(PS4_LIBS) diff --git a/memory/ps4/user_mem.c b/memory/ps4/user_mem.c deleted file mode 100644 index 9e7927bbce..0000000000 --- a/memory/ps4/user_mem.c +++ /dev/null @@ -1,223 +0,0 @@ -#include -#include -#include -#include -#include -#include "user_mem.h" - -#include -#include - -static OrbisMspace s_mspace = 0; -static OrbisMallocManagedSize s_mmsize; -static void *s_mem_start = 0; -static size_t s_mem_size = MEM_SIZE; - -int malloc_init(void) -{ - int res; - - if (s_mspace) - return 0; - - res = sceKernelReserveVirtualRange(&s_mem_start, MEM_SIZE, 0, MEM_ALIGN); - if (res < 0) - return 1; - - res = sceKernelMapNamedSystemFlexibleMemory(&s_mem_start, MEM_SIZE, SCE_KERNEL_PROT_CPU_RW, SCE_KERNEL_MAP_FIXED, "User Mem"); - if (res < 0) - return 1; - - s_mspace = sceLibcMspaceCreate("User Mspace", s_mem_start, s_mem_size, 0); - if (!s_mspace) - return 1; - - s_mmsize.sz = sizeof(s_mmsize); - s_mmsize.ver = 1; - res = sceLibcMspaceMallocStatsFast(s_mspace, &s_mmsize); - return 0; -} - -int malloc_finalize(void) -{ - int res; - - if (s_mspace) - { - res = sceLibcMspaceDestroy(s_mspace); - if (res != 0) - return 1; - } - - res = sceKernelReleaseFlexibleMemory(s_mem_start, s_mem_size); - if (res < 0) - return 1; - - res = sceKernelMunmap(s_mem_start, s_mem_size); - if (res < 0) - return 1; - - return 0; -} - -void *malloc(size_t size) -{ - if (!s_mspace) - malloc_init(); - - return sceLibcMspaceMalloc(s_mspace, size); -} - -void free(void *ptr) -{ - - if (!ptr || !s_mspace) - return; - - sceLibcMspaceFree(s_mspace, ptr); -} - -void *calloc(size_t nelem, size_t size) -{ - if (!s_mspace) - malloc_init(); - - return sceLibcMspaceCalloc(s_mspace, nelem, size); -} - -void *realloc(void *ptr, size_t size) -{ - if (!s_mspace) - malloc_init(); - - return sceLibcMspaceRealloc(s_mspace, ptr, size); -} - -void *memalign(size_t boundary, size_t size) -{ - if (!s_mspace) - malloc_init(); - - return sceLibcMspaceMemalign(s_mspace, boundary, size); -} - -int posix_memalign(void **ptr, size_t boundary, size_t size) -{ - if (!s_mspace) - malloc_init(); - - return sceLibcMspacePosixMemalign(s_mspace, ptr, boundary, size); -} - -void *reallocalign(void *ptr, size_t size, size_t boundary) -{ - if (!s_mspace) - malloc_init(); - - return sceLibcMspaceReallocalign(s_mspace, ptr, boundary, size); -} - -int malloc_stats(OrbisMallocManagedSize *mmsize) -{ - if (!s_mspace) - malloc_init(); - - return sceLibcMspaceMallocStats(s_mspace, mmsize); -} - -int malloc_stats_fast(OrbisMallocManagedSize *mmsize) -{ - if (!s_mspace) - malloc_init(); - - return sceLibcMspaceMallocStatsFast(s_mspace, mmsize); -} - -size_t malloc_usable_size(void *ptr) -{ - if (!ptr) - return 0; - - return sceLibcMspaceMallocUsableSize(ptr); -} - -int vasprintf(char **bufp, const char *format, va_list ap) -{ - va_list ap1; - int bytes; - char *p; - - va_copy(ap1, ap); - - bytes = vsnprintf(NULL, 0, format, ap1) + 1; - va_end(ap1); - - *bufp = p = malloc(bytes); - if (!p) - return -1; - - return vsnprintf(p, bytes, format, ap); -} - -int asprintf(char **bufp, const char *format, ...) -{ - va_list ap, ap1; - int rv; - int bytes; - char *p; - - va_start(ap, format); - va_copy(ap1, ap); - - bytes = vsnprintf(NULL, 0, format, ap1) + 1; - va_end(ap1); - - *bufp = p = malloc(bytes); - if (!p) - return -1; - - rv = vsnprintf(p, bytes, format, ap); - va_end(ap); - - return rv; -} - -char *strdup(const char *s) -{ - size_t len = strlen(s) + 1; - void *new_s = malloc(sizeof(char) * len); - - if (!new_s) - return NULL; - - return (char *)memcpy(new_s, s, len); -} - -char *strndup(const char *s, size_t n) -{ - if (!s) - return NULL; - - char *result; - size_t len = strnlen(s, n); - - result = (char *)malloc(sizeof(char) * (len + 1)); - if (!result) - return 0; - - result[len] = '\0'; - return (char *)memcpy(result, s, len); -} - -void get_user_mem_size(size_t *max_mem, size_t *cur_mem) -{ - int res; - size_t size; - - s_mmsize.sz = sizeof(s_mmsize); - s_mmsize.ver = 1; - res = sceLibcMspaceMallocStatsFast(s_mspace, &s_mmsize); - *max_mem += s_mmsize.curSysSz; - *cur_mem += s_mmsize.curSysSz - s_mmsize.curUseSz; -} - diff --git a/memory/ps4/user_mem.h b/memory/ps4/user_mem.h deleted file mode 100644 index 9e284f27a7..0000000000 --- a/memory/ps4/user_mem.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef _USER_MEM_H -#define _USER_MEM_H - -#define MEM_SIZE (0xA0000000) /* 2600 MiB */ -#define MEM_ALIGN (16UL * 1024) - -#if defined(__cplusplus) -extern "C" { -#endif -int malloc_init(void); -int malloc_finalize(void); -char *strdup(const char *s); -char *strndup(const char *s, size_t n); -int asprintf(char **bufp, const char *format, ...); -int vasprintf(char **bufp, const char *format, va_list ap); -void get_user_mem_size(size_t *max_mem, size_t *cur_mem); -#if defined(__cplusplus) -} -#endif - -#if defined(__cplusplus) -void *user_new(std::size_t size) throw(std::bad_alloc); -void *user_new(std::size_t size, const std::nothrow_t& x) throw(); -void *user_new_array(std::size_t size) throw(std::bad_alloc); -void *user_new_array(std::size_t size, const std::nothrow_t& x) throw(); -void user_delete(void *ptr) throw(); -void user_delete(void *ptr, const std::nothrow_t& x) throw(); -void user_delete_array(void *ptr) throw(); -void user_delete_array(void *ptr, const std::nothrow_t& x) throw(); -#if (__cplusplus >= 201402L) // C++14 -void user_delete(void *ptr, std::size_t size) throw(); -void user_delete(void *ptr, std::size_t size, const std::nothrow_t& x) throw(); -void user_delete_array(void *ptr, std::size_t size) throw(); -void user_delete_array(void *ptr, std::size_t size, const std::nothrow_t& x) throw(); -#endif // __cplusplus >= 201402L -#endif // __cplusplus -#endif // _USER_MEM_H diff --git a/memory/ps4/user_new.cpp b/memory/ps4/user_new.cpp deleted file mode 100644 index 834fa7dc26..0000000000 --- a/memory/ps4/user_new.cpp +++ /dev/null @@ -1,175 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "user_mem.h" - -void *user_new(std::size_t size) throw(std::bad_alloc) -{ - void *ptr; - - if (size == 0) - size = 1; - - while ((ptr = (void *)malloc(size)) == NULL) - { - std::new_handler handler = std::get_new_handler(); - - if (!handler) - throw std::bad_alloc(); - else - (*handler)(); - } - return ptr; -} - -void *user_new(std::size_t size, const std::nothrow_t& x) throw() -{ - void *ptr; - (void)x; - - if (size == 0) - size = 1; - - while ((ptr = (void *)malloc(size)) == NULL) - { - std::new_handler handler = std::get_new_handler(); - - if (!handler) - return NULL; - - try - { - (*handler)(); - } - catch (std::bad_alloc) - { - return NULL; - } - } - return ptr; -} - -void *user_new_array(std::size_t size) throw(std::bad_alloc) -{ - return user_new(size); -} - -void *user_new_array(std::size_t size, const std::nothrow_t& x) throw() -{ - return user_new(size, x); -} - -void user_delete(void *ptr) throw() -{ - if (ptr != NULL) - free(ptr); -} - -void user_delete(void *ptr, const std::nothrow_t& x) throw() -{ - (void)x; - if (ptr != NULL) - free(ptr); -} - -void user_delete_array(void *ptr) throw() -{ - user_delete(ptr); -} - -void user_delete_array(void *ptr, const std::nothrow_t& x) throw() -{ - user_delete(ptr, x); -} - -void *operator new(std::size_t size) throw(std::bad_alloc) -{ - return user_new(size); -} - -void *operator new(std::size_t size, const std::nothrow_t& x) throw() -{ - return user_new(size, x); -} - -void *operator new[](std::size_t size) throw(std::bad_alloc) -{ - return user_new_array(size); -} - -void *operator new[](std::size_t size, const std::nothrow_t& x) throw() -{ - return user_new_array(size, x); -} - -void operator delete(void *ptr) throw() -{ - user_delete(ptr); -} - -void operator delete(void *ptr, const std::nothrow_t& x) throw() -{ - user_delete(ptr, x); -} - -void operator delete[](void *ptr) throw() -{ - user_delete_array(ptr); -} - -void operator delete[](void *ptr, const std::nothrow_t& x) throw() -{ - user_delete_array(ptr, x); -} - -#if (__cplusplus >= 201402L) // C++14 -void user_delete(void *ptr, std::size_t size) throw() -{ - (void)size; - if (ptr != NULL) - free(ptr); -} - -void user_delete(void *ptr, std::size_t size, const std::nothrow_t& x) throw() -{ - (void)x; - if (ptr != NULL) - free(ptr); -} - -void user_delete_array(void *ptr, std::size_t size) throw() -{ - user_delete(ptr, size); -} - -void user_delete_array(void *ptr, std::size_t size, const std::nothrow_t& x) throw() -{ - user_delete(ptr, size, x); -} - -void operator delete(void *ptr, std::size_t size) throw() -{ - user_delete(ptr, size); -} - -void operator delete(void *ptr, std::size_t size, const std::nothrow_t& x) throw() -{ - user_delete(ptr, size, x); -} - -void operator delete[](void *ptr, std::size_t size) throw() -{ - user_delete_array(ptr, size); -} - -void operator delete[](void *ptr, std::size_t size, const std::nothrow_t& x) throw() -{ - user_delete_array(ptr, size, x); -} -#endif // C++14