mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-29 00:36:22 -04:00
3ds: 3ds port sources. First set of two
This commit adds changes to the original rockbox sources. Note: the port files, functions, folders, etc., will be referred to as 'ctru' to avoid using the Nintendo name elsewhere. Change-Id: I0e2d3d4d2a75bd45ea67dc3452eb8d5487cf1f5a
This commit is contained in:
parent
511a38763b
commit
a4de1195cd
25 changed files with 227 additions and 23 deletions
|
|
@ -305,4 +305,6 @@ keymaps/keymap-echor1.c
|
||||||
keymaps/keymap-surfansf28.c
|
keymaps/keymap-surfansf28.c
|
||||||
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
#elif CONFIG_KEYPAD == RG_NANO_PAD
|
||||||
keymaps/keymap-rgnano.c
|
keymaps/keymap-rgnano.c
|
||||||
|
#elif CONFIG_KEYPAD == CTRU_PAD
|
||||||
|
keymaps/keymap-ctru.c
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -565,7 +565,11 @@ void resume_directory(const char *dir)
|
||||||
|
|
||||||
/* Returns the current working directory and also writes cwd to buf if
|
/* Returns the current working directory and also writes cwd to buf if
|
||||||
non-NULL. In case of error, returns NULL. */
|
non-NULL. In case of error, returns NULL. */
|
||||||
|
#ifdef CTRU
|
||||||
|
char *__wrap_getcwd(char *buf, getcwd_size_t size)
|
||||||
|
#else
|
||||||
char *getcwd(char *buf, getcwd_size_t size)
|
char *getcwd(char *buf, getcwd_size_t size)
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
if (!buf)
|
if (!buf)
|
||||||
return tc.currdir;
|
return tc.currdir;
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,12 @@ void tree_unlock_cache(struct tree_context *t);
|
||||||
#else
|
#else
|
||||||
#define getcwd_size_t size_t
|
#define getcwd_size_t size_t
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef CTRU
|
||||||
|
/* devkitarm already defines getcwd */
|
||||||
|
char *__wrap_getcwd(char *buf, getcwd_size_t size);
|
||||||
|
#else
|
||||||
char *getcwd(char *buf, getcwd_size_t size);
|
char *getcwd(char *buf, getcwd_size_t size);
|
||||||
|
#endif
|
||||||
void reload_directory(void);
|
void reload_directory(void);
|
||||||
bool check_rockboxdir(void);
|
bool check_rockboxdir(void);
|
||||||
struct tree_context* tree_get_context(void);
|
struct tree_context* tree_get_context(void);
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ target/hosted/rtc.c
|
||||||
|
|
||||||
#if (CONFIG_PLATFORM & PLATFORM_ANDROID) == 0 && \
|
#if (CONFIG_PLATFORM & PLATFORM_ANDROID) == 0 && \
|
||||||
!defined(DX50) && !defined(DX90) && \
|
!defined(DX50) && !defined(DX90) && \
|
||||||
(defined(DEBUG) || defined(SIMULATOR)) /* sim should define DEBUG instead */
|
(defined(DEBUG) || defined(SIMULATOR) || defined(CTRU)) /* sim should define DEBUG instead */
|
||||||
target/hosted/debug-hosted.c
|
target/hosted/debug-hosted.c
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -94,12 +94,14 @@ target/hosted/sdl/app/button-application.c
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
target/hosted/filesystem-win32.c
|
target/hosted/filesystem-win32.c
|
||||||
#else /* !WIN32 */
|
#else /* !WIN32 */
|
||||||
|
#ifndef CTRU
|
||||||
target/hosted/filesystem-unix.c
|
target/hosted/filesystem-unix.c
|
||||||
|
#endif /* CTRU */
|
||||||
#endif /* WIN32 */
|
#endif /* WIN32 */
|
||||||
#endif /* APPLICATION */
|
#endif /* APPLICATION */
|
||||||
#endif /* HAVE_SDL */
|
#endif /* HAVE_SDL */
|
||||||
|
|
||||||
#ifdef APPLICATION
|
#if defined(APPLICATION) && !defined(CTRU)
|
||||||
target/hosted/filesystem-app.c
|
target/hosted/filesystem-app.c
|
||||||
#endif /* APPLICATION */
|
#endif /* APPLICATION */
|
||||||
|
|
||||||
|
|
@ -581,6 +583,8 @@ target/hosted/maemo/pcm-gstreamer.c
|
||||||
target/hosted/sdl/pcm-sdl.c
|
target/hosted/sdl/pcm-sdl.c
|
||||||
#endif /* (CONFIG_PLATFORM & PLATFORM_MAEMO) */
|
#endif /* (CONFIG_PLATFORM & PLATFORM_MAEMO) */
|
||||||
|
|
||||||
|
#elif defined(CTRU)
|
||||||
|
drivers/audio/ctru.c
|
||||||
#endif
|
#endif
|
||||||
#endif /* (CONFIG_PLATFORM & PLATFORM_NATIVE) */
|
#endif /* (CONFIG_PLATFORM & PLATFORM_NATIVE) */
|
||||||
|
|
||||||
|
|
@ -2071,6 +2075,28 @@ target/hosted/ibasso/dx90/button-dx90.c
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if (CONFIG_PLATFORM & PLATFORM_CTRU)
|
||||||
|
asm/arm/lcd-as-memframe.S
|
||||||
|
target/hosted/ctru/backlight-ctru.c
|
||||||
|
target/hosted/ctru/button-ctru.c
|
||||||
|
target/hosted/ctru/kernel-ctru.c
|
||||||
|
target/hosted/ctru/thread-ctru.c
|
||||||
|
target/hosted/ctru/lcd-bitmap.c
|
||||||
|
target/hosted/ctru/luminance-ctru.c
|
||||||
|
target/hosted/ctru/system-ctru.c
|
||||||
|
target/hosted/ctru/filesystem-ctru.c
|
||||||
|
target/hosted/ctru/lc-ctru.c
|
||||||
|
target/hosted/ctru/lc-program-resolver.c
|
||||||
|
target/hosted/ctru/powermgmt-ctru.c
|
||||||
|
target/hosted/ctru/timer-ctru.c
|
||||||
|
target/hosted/ctru/pcm-ctru.c
|
||||||
|
target/hosted/ctru/lib/sys_file.c
|
||||||
|
target/hosted/ctru/lib/sys_dir.c
|
||||||
|
target/hosted/ctru/lib/sys_thread.c
|
||||||
|
target/hosted/ctru/lib/sys_timer.c
|
||||||
|
target/hosted/ctru/lib/bfile/bfile.c
|
||||||
|
#endif
|
||||||
|
|
||||||
#else /* defined(SIMULATOR) */
|
#else /* defined(SIMULATOR) */
|
||||||
|
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
|
@ -2119,9 +2145,9 @@ kernel/queue.c
|
||||||
#ifdef HAVE_SEMAPHORE_OBJECTS
|
#ifdef HAVE_SEMAPHORE_OBJECTS
|
||||||
kernel/semaphore.c
|
kernel/semaphore.c
|
||||||
#endif
|
#endif
|
||||||
#if defined(HAVE_SDL_THREADS)
|
#ifdef HAVE_SDL_THREADS
|
||||||
target/hosted/sdl/thread-sdl.c
|
target/hosted/sdl/thread-sdl.c
|
||||||
#else
|
#elif !defined(CTRU)
|
||||||
kernel/thread.c
|
kernel/thread.c
|
||||||
#endif
|
#endif
|
||||||
kernel/thread-common.c
|
kernel/thread-common.c
|
||||||
|
|
|
||||||
|
|
@ -224,7 +224,7 @@ struct sound_settings_info
|
||||||
#elif defined(HAVE_ES9218)
|
#elif defined(HAVE_ES9218)
|
||||||
#include "es9218.h"
|
#include "es9218.h"
|
||||||
#elif ((CONFIG_PLATFORM & (PLATFORM_ANDROID | PLATFORM_MAEMO \
|
#elif ((CONFIG_PLATFORM & (PLATFORM_ANDROID | PLATFORM_MAEMO \
|
||||||
| PLATFORM_PANDORA | PLATFORM_SDL )) | defined(RG_NANO))
|
| PLATFORM_PANDORA | PLATFORM_SDL | PLATFORM_CTRU)) | defined(RG_NANO))
|
||||||
#include "hosted_codec.h"
|
#include "hosted_codec.h"
|
||||||
#elif defined(DX50)
|
#elif defined(DX50)
|
||||||
#include "codec-dx50.h"
|
#include "codec-dx50.h"
|
||||||
|
|
|
||||||
|
|
@ -85,6 +85,7 @@
|
||||||
#define RK27XX 2700
|
#define RK27XX 2700
|
||||||
#define X1000 1000
|
#define X1000 1000
|
||||||
#define STM32H743 32743
|
#define STM32H743 32743
|
||||||
|
#define N10480H 10480
|
||||||
|
|
||||||
/* platforms
|
/* platforms
|
||||||
* bit fields to allow PLATFORM_HOSTED to be OR'ed e.g. with a
|
* bit fields to allow PLATFORM_HOSTED to be OR'ed e.g. with a
|
||||||
|
|
@ -98,6 +99,7 @@
|
||||||
#define PLATFORM_MAEMO5 (1<<5)
|
#define PLATFORM_MAEMO5 (1<<5)
|
||||||
#define PLATFORM_MAEMO (PLATFORM_MAEMO4|PLATFORM_MAEMO5)
|
#define PLATFORM_MAEMO (PLATFORM_MAEMO4|PLATFORM_MAEMO5)
|
||||||
#define PLATFORM_PANDORA (1<<6)
|
#define PLATFORM_PANDORA (1<<6)
|
||||||
|
#define PLATFORM_CTRU (1<<7)
|
||||||
|
|
||||||
/* CONFIG_KEYPAD */
|
/* CONFIG_KEYPAD */
|
||||||
#define IRIVER_H100_PAD 4
|
#define IRIVER_H100_PAD 4
|
||||||
|
|
@ -167,6 +169,7 @@
|
||||||
#define ECHO_R1_PAD 75
|
#define ECHO_R1_PAD 75
|
||||||
#define SURFANS_F28_PAD 76
|
#define SURFANS_F28_PAD 76
|
||||||
#define RG_NANO_PAD 77
|
#define RG_NANO_PAD 77
|
||||||
|
#define CTRU_PAD 78
|
||||||
|
|
||||||
/* CONFIG_REMOTE_KEYPAD */
|
/* CONFIG_REMOTE_KEYPAD */
|
||||||
#define H100_REMOTE 1
|
#define H100_REMOTE 1
|
||||||
|
|
@ -623,6 +626,8 @@ Lyre prototype 1 */
|
||||||
#include "config/surfansf28.h"
|
#include "config/surfansf28.h"
|
||||||
#elif defined(RG_NANO)
|
#elif defined(RG_NANO)
|
||||||
#include "config/rgnano.h"
|
#include "config/rgnano.h"
|
||||||
|
#elif defined(CTRU)
|
||||||
|
#include "config/ctru.h"
|
||||||
#else
|
#else
|
||||||
#error "unknown hardware platform!"
|
#error "unknown hardware platform!"
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -650,7 +655,7 @@ Lyre prototype 1 */
|
||||||
# define CONFIG_BUFLIB_BACKEND BUFLIB_BACKEND_MEMPOOL
|
# define CONFIG_BUFLIB_BACKEND BUFLIB_BACKEND_MEMPOOL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef APPLICATION
|
#if defined(APPLICATION)
|
||||||
#ifndef CONFIG_CPU
|
#ifndef CONFIG_CPU
|
||||||
#define CONFIG_CPU 0
|
#define CONFIG_CPU 0
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -1033,7 +1038,8 @@ Lyre prototype 1 */
|
||||||
|
|
||||||
#if defined(ASSEMBLER_THREADS) \
|
#if defined(ASSEMBLER_THREADS) \
|
||||||
|| defined(HAVE_WIN32_FIBER_THREADS) \
|
|| defined(HAVE_WIN32_FIBER_THREADS) \
|
||||||
|| defined(HAVE_SIGALTSTACK_THREADS)
|
|| defined(HAVE_SIGALTSTACK_THREADS) \
|
||||||
|
|| defined(CTRU)
|
||||||
#define HAVE_PRIORITY_SCHEDULING
|
#define HAVE_PRIORITY_SCHEDULING
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -1104,7 +1110,7 @@ Lyre prototype 1 */
|
||||||
* Older versions of GCC emit assembly in divided syntax with no option
|
* Older versions of GCC emit assembly in divided syntax with no option
|
||||||
* to enable unified syntax.
|
* to enable unified syntax.
|
||||||
*/
|
*/
|
||||||
#if (__GNUC__ < 8) && defined(CPU_ARM_CLASSIC)
|
#if (__GNUC__ < 8) && defined(CPU_ARM_CLASSIC) || defined(CTRU)
|
||||||
#define BEGIN_ARM_ASM_SYNTAX_UNIFIED ".syntax unified\n"
|
#define BEGIN_ARM_ASM_SYNTAX_UNIFIED ".syntax unified\n"
|
||||||
#define END_ARM_ASM_SYNTAX_UNIFIED ".syntax divided\n"
|
#define END_ARM_ASM_SYNTAX_UNIFIED ".syntax divided\n"
|
||||||
#else
|
#else
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,10 @@ extern void ldebugf(const char* file, int line, const char *fmt, ...)
|
||||||
|| (defined(APPLICATION) && defined(DEBUG))
|
|| (defined(APPLICATION) && defined(DEBUG))
|
||||||
#define DEBUGF debugf
|
#define DEBUGF debugf
|
||||||
#define LDEBUGF(...) ldebugf(__FILE__, __LINE__, __VA_ARGS__)
|
#define LDEBUGF(...) ldebugf(__FILE__, __LINE__, __VA_ARGS__)
|
||||||
|
#elif (CONFIG_PLATFORM & PLATFORM_CTRU)
|
||||||
|
/* let's use second display for debug output */
|
||||||
|
#define DEBUGF debugf
|
||||||
|
#define LDEBUGF(...) ldebugf(__FILE__, __LINE__, __VA_ARGS__)
|
||||||
#elif defined(DEBUG) /* DEBUG on native targets */
|
#elif defined(DEBUG) /* DEBUG on native targets */
|
||||||
|
|
||||||
#ifdef HAVE_GDB_API
|
#ifdef HAVE_GDB_API
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,9 @@
|
||||||
#ifndef HOSTED_CODEC_H
|
#ifndef HOSTED_CODEC_H
|
||||||
#define HOSTED_CODEC_H
|
#define HOSTED_CODEC_H
|
||||||
|
|
||||||
#if defined(HAVE_SDL_AUDIO) \
|
#if (defined(HAVE_SDL_AUDIO) \
|
||||||
&& !(CONFIG_PLATFORM & PLATFORM_MAEMO5)
|
&& !(CONFIG_PLATFORM & PLATFORM_MAEMO5)) \
|
||||||
|
|| (CONFIG_PLATFORM & PLATFORM_CTRU)
|
||||||
AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -80, 0, 0)
|
AUDIOHW_SETTING(VOLUME, "dB", 0, 1, -80, 0, 0)
|
||||||
#else
|
#else
|
||||||
#define AUDIOHW_CAPS (MONO_VOL_CAP)
|
#define AUDIOHW_CAPS (MONO_VOL_CAP)
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@
|
||||||
/* NOTE: target-specific hosted HOME_DIR resides in filesystem-app.c */
|
/* NOTE: target-specific hosted HOME_DIR resides in filesystem-app.c */
|
||||||
#if !defined(APPLICATION) || defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \
|
#if !defined(APPLICATION) || defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \
|
||||||
defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || \
|
defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || \
|
||||||
defined(HIBY_LINUX) || defined(FIIO_M3K_LINUX)
|
defined(HIBY_LINUX) || defined(FIIO_M3K_LINUX) || defined(CTRU)
|
||||||
|
|
||||||
#define HOME_DIR "/"
|
#define HOME_DIR "/"
|
||||||
|
|
||||||
|
|
@ -87,7 +87,7 @@
|
||||||
|
|
||||||
#if defined(APPLICATION) && \
|
#if defined(APPLICATION) && \
|
||||||
!(defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \
|
!(defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1) || \
|
||||||
defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX) || defined(FIIO_M3K_LINUX))
|
defined(DX50) || defined(DX90) || defined(SONY_NWZ_LINUX) || defined(HIBY_LINUX) || defined(FIIO_M3K_LINUX) || defined(CTRU))
|
||||||
|
|
||||||
#define PLUGIN_DATA_DIR ROCKBOX_DIR "/rocks.data"
|
#define PLUGIN_DATA_DIR ROCKBOX_DIR "/rocks.data"
|
||||||
#define PLUGIN_GAMES_DATA_DIR PLUGIN_DATA_DIR
|
#define PLUGIN_GAMES_DATA_DIR PLUGIN_DATA_DIR
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,8 @@
|
||||||
"comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
|
"comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
|
||||||
files aren't affected). */
|
files aren't affected). */
|
||||||
|
|
||||||
#ifndef _ANSIDECL_H_
|
#ifndef __ANSIDECL_H__
|
||||||
#define _ANSIDECL_H_
|
#define __ANSIDECL_H__
|
||||||
|
|
||||||
/* First try to figure out whether we really are in an ANSI C environment. */
|
/* First try to figure out whether we really are in an ANSI C environment. */
|
||||||
/* FIXME: This probably needs some work. Perhaps sys/config.h can be
|
/* FIXME: This probably needs some work. Perhaps sys/config.h can be
|
||||||
|
|
@ -64,4 +64,4 @@
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* _ANSIDECL_H_ */
|
#endif /* __ANSIDECL_H__ */
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,9 @@
|
||||||
#include "fs_attr.h"
|
#include "fs_attr.h"
|
||||||
#include "fs_defines.h"
|
#include "fs_defines.h"
|
||||||
|
|
||||||
#if defined (APPLICATION) || defined(CHECKWPS)
|
#if defined(CTRU) && !defined(SIMULATOR)
|
||||||
|
#include "filesystem-ctru.h"
|
||||||
|
#elif defined (APPLICATION) || defined(CHECKWPS)
|
||||||
#include "filesystem-app.h"
|
#include "filesystem-app.h"
|
||||||
#elif defined(SIMULATOR) || defined(DBTOOL)
|
#elif defined(SIMULATOR) || defined(DBTOOL)
|
||||||
#include "../../uisimulator/common/filesystem-sim.h"
|
#include "../../uisimulator/common/filesystem-sim.h"
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,9 @@ enum relate_result
|
||||||
RELATE_PREFIX, /* the path2 contains path1 as a prefix */
|
RELATE_PREFIX, /* the path2 contains path1 as a prefix */
|
||||||
};
|
};
|
||||||
|
|
||||||
#if defined(APPLICATION) || defined(CHECKWPS)
|
#if defined(CTRU) && !defined(SIMULATOR)
|
||||||
|
#include "filesystem-ctru.h"
|
||||||
|
#elif defined(APPLICATION) || defined(CHECKWPS)
|
||||||
#include "filesystem-app.h"
|
#include "filesystem-app.h"
|
||||||
#elif defined(SIMULATOR) || defined(DBTOOL)
|
#elif defined(SIMULATOR) || defined(DBTOOL)
|
||||||
#include "../../uisimulator/common/filesystem-sim.h"
|
#include "../../uisimulator/common/filesystem-sim.h"
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __MINGW32__
|
#ifndef __MINGW32__
|
||||||
#ifdef __APPLE__
|
#if defined(__APPLE__) || defined(CTRU)
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#else
|
#else
|
||||||
#include <endian.h>
|
#include <endian.h>
|
||||||
|
|
|
||||||
|
|
@ -89,7 +89,7 @@ struct thread_entry;
|
||||||
*
|
*
|
||||||
* simulator (possibly) doesn't simulate stack usage anyway but well ... */
|
* simulator (possibly) doesn't simulate stack usage anyway but well ... */
|
||||||
|
|
||||||
#if defined(HAVE_SDL_THREADS) || defined(__PCTOOL__)
|
#if defined(HAVE_SDL_THREADS) || defined(__PCTOOL__) || defined(CTRU)
|
||||||
#define DEFAULT_STACK_SIZE 0x100 /* tiny, ignored anyway */
|
#define DEFAULT_STACK_SIZE 0x100 /* tiny, ignored anyway */
|
||||||
#else
|
#else
|
||||||
#include "asm/thread.h"
|
#include "asm/thread.h"
|
||||||
|
|
|
||||||
|
|
@ -75,11 +75,15 @@ void mutex_lock(struct mutex *m)
|
||||||
/* Release ownership of a mutex object - only owning thread must call this */
|
/* Release ownership of a mutex object - only owning thread must call this */
|
||||||
void mutex_unlock(struct mutex *m)
|
void mutex_unlock(struct mutex *m)
|
||||||
{
|
{
|
||||||
|
#ifndef CTRU
|
||||||
|
/* FIXME: synchronization primitives does not behave
|
||||||
|
correctly between different cores */
|
||||||
/* unlocker not being the owner is an unlocking violation */
|
/* unlocker not being the owner is an unlocking violation */
|
||||||
KERNEL_ASSERT(m->blocker.thread == __running_self_entry(),
|
KERNEL_ASSERT(m->blocker.thread == __running_self_entry(),
|
||||||
"mutex_unlock->wrong thread (%s != %s)\n",
|
"mutex_unlock->wrong thread (%s != %s)\n",
|
||||||
m->blocker.thread->name,
|
m->blocker.thread->name,
|
||||||
__running_self_entry()->name);
|
__running_self_entry()->name);
|
||||||
|
#endif
|
||||||
|
|
||||||
if(m->recursion > 0)
|
if(m->recursion > 0)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -304,7 +304,7 @@ int thread_get_debug_info(unsigned int thread_id,
|
||||||
#ifdef HAVE_SCHEDULER_BOOSTCTRL
|
#ifdef HAVE_SCHEDULER_BOOSTCTRL
|
||||||
cpu_boost = thread->cpu_boost;
|
cpu_boost = thread->cpu_boost;
|
||||||
#endif
|
#endif
|
||||||
#ifndef HAVE_SDL_THREADS
|
#if !defined(HAVE_SDL_THREADS) && !defined(CTRU)
|
||||||
infop->stack_usage = stack_usage(thread->stack, thread->stack_size);
|
infop->stack_usage = stack_usage(thread->stack, thread->stack_size);
|
||||||
|
|
||||||
size_t stack_used_current =
|
size_t stack_used_current =
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@
|
||||||
*
|
*
|
||||||
* simulator (possibly) doesn't simulate stack usage anyway but well ... */
|
* simulator (possibly) doesn't simulate stack usage anyway but well ... */
|
||||||
|
|
||||||
#if defined(HAVE_SDL_THREADS) || defined(__PCTOOL__)
|
#if defined(HAVE_SDL_THREADS) || defined(__PCTOOL__) || defined(CTRU)
|
||||||
struct regs
|
struct regs
|
||||||
{
|
{
|
||||||
void *t; /* OS thread */
|
void *t; /* OS thread */
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,11 @@ const char * handle_special_dirs(const char *dir, unsigned flags,
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
#include "filesystem-win32.h"
|
#include "filesystem-win32.h"
|
||||||
#else /* !WIN32 */
|
#else /* !WIN32 */
|
||||||
|
#if defined(CTRU) && !defined(SIMULATOR)
|
||||||
|
#include "filesystem-ctru.h"
|
||||||
|
#else
|
||||||
#include "filesystem-unix.h"
|
#include "filesystem-unix.h"
|
||||||
|
#endif
|
||||||
#endif /* WIN32 */
|
#endif /* WIN32 */
|
||||||
#include "filesystem-hosted.h"
|
#include "filesystem-hosted.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#if !defined(WIN32)
|
#if !defined(WIN32)
|
||||||
#include <sys/ioctl.h>
|
#include <sys/ioctl.h>
|
||||||
#if !defined(__APPLE__)
|
#if !defined(__APPLE__) && !defined(CTRU)
|
||||||
#include <linux/rtc.h>
|
#include <linux/rtc.h>
|
||||||
#endif
|
#endif
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
|
@ -49,7 +49,7 @@ int rtc_read_datetime(struct tm *tm)
|
||||||
|
|
||||||
int rtc_write_datetime(const struct tm *tm)
|
int rtc_write_datetime(const struct tm *tm)
|
||||||
{
|
{
|
||||||
#if !defined(WIN32) && !defined(__APPLE__)
|
#if !defined(WIN32) && !defined(__APPLE__) && !defined(CTRU)
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
struct tm *tm_time;
|
struct tm *tm_time;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,12 @@ extern unsigned char plugin_end_addr[];
|
||||||
* avoid warning with certain compilers */
|
* avoid warning with certain compilers */
|
||||||
int _start(void) {return 0;}
|
int _start(void) {return 0;}
|
||||||
|
|
||||||
|
#ifdef CTRU
|
||||||
|
/* dummy undefined symbols */
|
||||||
|
void __aeabi_unwind_cpp_pr0(void) {}
|
||||||
|
struct _reent * _EXFUN(__getreent, (void)) {}
|
||||||
|
#endif
|
||||||
|
|
||||||
enum codec_status codec_start(enum codec_entry_call_reason reason)
|
enum codec_status codec_start(enum codec_entry_call_reason reason)
|
||||||
{
|
{
|
||||||
#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
|
||||||
|
|
|
||||||
|
|
@ -137,6 +137,10 @@ ifeq ($(ARCH),arch_arm)
|
||||||
$(SGCLIB) : CODECFLAGS += -O1
|
$(SGCLIB) : CODECFLAGS += -O1
|
||||||
$(VGMLIB) : CODECFLAGS += -O1
|
$(VGMLIB) : CODECFLAGS += -O1
|
||||||
$(WAVPACKLIB) : CODECFLAGS += -O3
|
$(WAVPACKLIB) : CODECFLAGS += -O3
|
||||||
|
ifneq (,$(findstring ctru, $(MODELNAME)))
|
||||||
|
# segfault with -O1
|
||||||
|
$(SPCLIB) : CODECFLAGS += -O2
|
||||||
|
endif
|
||||||
else ifeq ($(ARCH),arch_m68k)
|
else ifeq ($(ARCH),arch_m68k)
|
||||||
$(CODECLIB) : CODECFLAGS += -O2
|
$(CODECLIB) : CODECFLAGS += -O2
|
||||||
$(A52LIB) : CODECFLAGS += -O2
|
$(A52LIB) : CODECFLAGS += -O2
|
||||||
|
|
|
||||||
|
|
@ -424,6 +424,11 @@ sub buildzip {
|
||||||
glob_mkdir("$temp_dir/libertas");
|
glob_mkdir("$temp_dir/libertas");
|
||||||
glob_copy("$ROOT/firmware/drivers/libertas/firmware/*", "$temp_dir/libertas/");
|
glob_copy("$ROOT/firmware/drivers/libertas/firmware/*", "$temp_dir/libertas/");
|
||||||
}
|
}
|
||||||
|
# add hbmenu shortcut's icon and 3dsx executable
|
||||||
|
if ($modelname =~ /ctru/) {
|
||||||
|
glob_copy("icon.icn", "$temp_dir/");
|
||||||
|
glob_copy("rockbox.3dsx", "$temp_dir/");
|
||||||
|
}
|
||||||
|
|
||||||
glob_mkdir("$temp_dir/langs");
|
glob_mkdir("$temp_dir/langs");
|
||||||
glob_mkdir("$temp_dir/rocks");
|
glob_mkdir("$temp_dir/rocks");
|
||||||
|
|
@ -740,6 +745,18 @@ sub runone {
|
||||||
move(".rockbox", $rbdir);
|
move(".rockbox", $rbdir);
|
||||||
print "mv .rockbox $rbdir\n" if $verbose;
|
print "mv .rockbox $rbdir\n" if $verbose;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# add hbmenu shortcut and cia file to zip file
|
||||||
|
if ($modelname =~ /ctru/) {
|
||||||
|
move("rockbox.cia", "3ds");
|
||||||
|
copy("$ROOT/packaging/ctru/rockbox.xml", "3ds");
|
||||||
|
|
||||||
|
system("$ziptool -u $output 3ds/rockbox.xml $target >/dev/null");
|
||||||
|
print "$ziptool $output $ROOT/packaging/ctru/rockbox.xml $target >/dev/null\n" if $verbose;
|
||||||
|
system("$ziptool -u $output 3ds/rockbox.cia $target >/dev/null");
|
||||||
|
print "$ziptool $output rockbox.cia $target >/dev/null\n" if $verbose;
|
||||||
|
}
|
||||||
|
|
||||||
system("$ziptool $output $rbdir $target >/dev/null");
|
system("$ziptool $output $rbdir $target >/dev/null");
|
||||||
print "$ziptool $output $rbdir $target >/dev/null\n" if $verbose;
|
print "$ziptool $output $rbdir $target >/dev/null\n" if $verbose;
|
||||||
rmtree("$rbdir");
|
rmtree("$rbdir");
|
||||||
|
|
|
||||||
112
tools/configure
vendored
112
tools/configure
vendored
|
|
@ -1009,6 +1009,90 @@ rgnanocc () {
|
||||||
rbdir="/FunKey/.rockbox"
|
rbdir="/FunKey/.rockbox"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
devkitarmcc () {
|
||||||
|
if [ -z "$DEVKITPRO" ]; then
|
||||||
|
echo "ERROR: You need a devkitPro toolchain and libraries installed"
|
||||||
|
echo "and have the DEVKITPRO environment variable point to the root"
|
||||||
|
echo "of the devkitPro installation."
|
||||||
|
echo "More info at https://devkitpro.org/wiki/Getting_Started"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$DEVKITARM" ]; then
|
||||||
|
echo "ERROR: You need devkitARM toolchain installed and have the DEVKITARM"
|
||||||
|
echo "environment variable point to the root directory of the sdk."
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check for additional dependencies
|
||||||
|
if [ ! -e "$DEVKITPRO/portlibs/3ds/lib/libCTRL.a" ]; then
|
||||||
|
echo "ERROR: You need to install libCTRL utility library."
|
||||||
|
echo "https://github.com/kynex7510/CTRL"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -e "$DEVKITPRO/portlibs/3ds/lib/libdl.a" ]; then
|
||||||
|
echo "ERROR: You need to install libdl implementation for 3ds (CTRDL)"
|
||||||
|
echo "https://github.com/kynex7510/CTRDL"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -n "`findtool makerom`" ]; then
|
||||||
|
echo "ERROR: makerom not found, please install and run configure again."
|
||||||
|
echo "https://github.com/3DSGuy/Project_CTR"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -n "`findtool bannertool`" ]; then
|
||||||
|
echo "ERROR: bannertool not found, please install and run configure again."
|
||||||
|
echo "https://github.com/carstene1ns/3ds-bannertool"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
arch="arm"
|
||||||
|
arch_version="6"
|
||||||
|
arch_profile="classic"
|
||||||
|
|
||||||
|
CC=$DEVKITARM/bin/arm-none-eabi-gcc
|
||||||
|
CPP=$DEVKITARM/bin/arm-none-eabi-cpp
|
||||||
|
LD=$DEVKITARM/bin/arm-none-eabi-ld
|
||||||
|
AR=$DEVKITARM/bin/arm-none-eabi-gcc-ar
|
||||||
|
AS=$DEVKITARM/bin/arm-none-eabi-as
|
||||||
|
OC=$DEVKITARM/bin/arm-none-eabi-objcopy
|
||||||
|
WINDRES=windres
|
||||||
|
DLLTOOL=dlltool
|
||||||
|
DLLWRAP=dllwrap
|
||||||
|
RANLIB=$DEVKITARM/bin/arm-none-eabi-gcc-ranlib
|
||||||
|
|
||||||
|
if [ "yes" = "$use_debug" ]; then
|
||||||
|
GCCOPTS=`echo $GCCOPTS | sed -e s/\ -Os/\ -Og/`
|
||||||
|
fi
|
||||||
|
|
||||||
|
GCCOPTS="$GCCOPTS -fno-builtin -g -Wno-unused-result"
|
||||||
|
GCCOPTS="$GCCOPTS -I$DEVKITPRO/libctru/include -I$DEVKITPRO/portlibs/3ds/include"
|
||||||
|
GCCOPTS="$GCCOPTS -mword-relocations -ffunction-sections -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft"
|
||||||
|
GCCOPTS="$GCCOPTS -D_GNU_SOURCE=1 -D_REENTRANT -masm-syntax-unified"
|
||||||
|
|
||||||
|
SHARED_LDFLAGS="-shared"
|
||||||
|
SHARED_CFLAGS="-fPIC -fvisibility=hidden"
|
||||||
|
|
||||||
|
LDOPTS="-specs=3dsx.specs -L$DEVKITPRO/libctru/lib -L$DEVKITPRO/portlibs/3ds/lib -ldl -lCTRL -lctru -lm"
|
||||||
|
GLOBAL_LDOPTS="$GLOBAL_LDOPTS -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft"
|
||||||
|
|
||||||
|
# let's allow building shared libraries even if unresolved symbols are found,
|
||||||
|
# CTRDL (libdl) implementation will use a custom resolver for resolve symbols at runtime.
|
||||||
|
# TODO: use ResGen command to automatically detect unresolved symbols.
|
||||||
|
GLOBAL_LDOPTS=`echo $GLOBAL_LDOPTS | sed -e s/\-Wl,-z,defs//`
|
||||||
|
|
||||||
|
# devkitarm already defines getcwd
|
||||||
|
GLOBAL_LDOPTS="$GLOBAL_LDOPTS -Wl,-wrap,getcwd"
|
||||||
|
|
||||||
|
ARG_PREFIX="romfs"
|
||||||
|
|
||||||
|
extradefines="-D__3DS__"
|
||||||
|
rbdir="/3ds/.rockbox"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
do_bootloader() {
|
do_bootloader() {
|
||||||
appsdir='$(ROOTDIR)/bootloader'
|
appsdir='$(ROOTDIR)/bootloader'
|
||||||
|
|
@ -1779,6 +1863,9 @@ cat <<EOF
|
||||||
(hw4 bl only)
|
(hw4 bl only)
|
||||||
==Echo project== ==Surfans==
|
==Echo project== ==Surfans==
|
||||||
270) Echo R1 (WIP) 280) F28 (WIP)
|
270) Echo R1 (WIP) 280) F28 (WIP)
|
||||||
|
|
||||||
|
==Nintendo==
|
||||||
|
290) Nintendo 3DS (WIP)
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
buildfor=`input`;
|
buildfor=`input`;
|
||||||
|
|
@ -4471,6 +4558,28 @@ fi
|
||||||
sysfontbl="16-Terminus"
|
sysfontbl="16-Terminus"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
290|ctru)
|
||||||
|
target_id=122
|
||||||
|
application="yes"
|
||||||
|
modelname="ctru"
|
||||||
|
app_type="ctru-app"
|
||||||
|
target="CTRU"
|
||||||
|
memory=16
|
||||||
|
uname=`uname`
|
||||||
|
devkitarmcc
|
||||||
|
tool="cp "
|
||||||
|
boottool="cp "
|
||||||
|
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
|
||||||
|
bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
|
||||||
|
output="rockbox"
|
||||||
|
bootoutput="rockbox"
|
||||||
|
appextra="recorder:gui"
|
||||||
|
plugins="no"
|
||||||
|
t_cpu="hosted"
|
||||||
|
t_manufacturer="ctru"
|
||||||
|
t_model="app"
|
||||||
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
echo "Please select a supported target platform!"
|
echo "Please select a supported target platform!"
|
||||||
exit 7
|
exit 7
|
||||||
|
|
@ -5024,6 +5133,9 @@ if test -n "$t_cpu"; then
|
||||||
TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted"
|
TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted"
|
||||||
elif [ "$t_manufacturer" = "ibasso" ]; then
|
elif [ "$t_manufacturer" = "ibasso" ]; then
|
||||||
TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/ibasso/tinyalsa/include"
|
TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/ibasso/tinyalsa/include"
|
||||||
|
elif [ "$application" = "yes" ] && [ "$t_manufacturer" = "ctru" ]; then
|
||||||
|
TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/ctru/lib"
|
||||||
|
TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/hosted/ctru/lib/bfile"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
|
TARGET_INC="$TARGET_INC -I\$(FIRMDIR)/target/$t_cpu/$t_manufacturer"
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,8 @@ ifndef APP_TYPE
|
||||||
objcopy = $(OC) $(if $(filter yes, $(USE_ELF)), -S -x, -O binary) $(1) $(2) # objcopy native
|
objcopy = $(OC) $(if $(filter yes, $(USE_ELF)), -S -x, -O binary) $(1) $(2) # objcopy native
|
||||||
else ifneq (,$(findstring sdl-sim,$(APP_TYPE)))
|
else ifneq (,$(findstring sdl-sim,$(APP_TYPE)))
|
||||||
objcopy = cp $(1) $(1).tmp;mv -f $(1).tmp $(2) # objcopy simulator
|
objcopy = cp $(1) $(1).tmp;mv -f $(1).tmp $(2) # objcopy simulator
|
||||||
|
else ifneq (,$(findstring ctru,$(MODELNAME))) # 3dsxtool requires symbols
|
||||||
|
objcopy = cp $(1) $(1).tmp;mv -f $(1).tmp $(2)
|
||||||
else
|
else
|
||||||
ifdef DEBUG
|
ifdef DEBUG
|
||||||
objcopy = cp $(1) $(1).tmp;mv -f $(1).tmp $(2) # objcopy hosted (DEBUG)
|
objcopy = cp $(1) $(1).tmp;mv -f $(1).tmp $(2) # objcopy hosted (DEBUG)
|
||||||
|
|
|
||||||
|
|
@ -171,6 +171,9 @@ else # core
|
||||||
ifneq (,$(findstring rgnano, $(MODELNAME)))
|
ifneq (,$(findstring rgnano, $(MODELNAME)))
|
||||||
include $(ROOTDIR)/packaging/rgnano/rgnano.make
|
include $(ROOTDIR)/packaging/rgnano/rgnano.make
|
||||||
endif
|
endif
|
||||||
|
ifneq (,$(findstring ctru, $(APP_TYPE)))
|
||||||
|
include $(ROOTDIR)/packaging/ctru/ctru.make
|
||||||
|
endif
|
||||||
|
|
||||||
endif # bootloader
|
endif # bootloader
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue