mirror of
https://github.com/Rockbox/rockbox.git
synced 2025-10-26 23:36:37 -04:00
storage: Add STORAGE_HOSTFS
CONFIG_STORAGE & STORAGE_HOSTFS allows to use parts of the storage_* API to be compiled for application targets without compiling storage.c or performing actually raw storage access. This is primarily to enable application targets to implement HAVE_MULTIVOMULE/HAVE_HOTSWAP (in a later commit). SIMULATOR uses the same mechanism without explicitely defining STORAGE_HOSTFS (how to add a bit to an existing preprocessor token?). Change-Id: Ib3f8ee0d5231e2ed21ff00842d51e32bc4fc7292
This commit is contained in:
parent
706e6b7a75
commit
77f19f75eb
17 changed files with 122 additions and 10 deletions
|
|
@ -75,7 +75,7 @@
|
||||||
#include "tuner.h"
|
#include "tuner.h"
|
||||||
#include "radio.h"
|
#include "radio.h"
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif /* CONFIG_PLATFORM & PLATFORM_NATIVE */
|
||||||
#include "power.h"
|
#include "power.h"
|
||||||
|
|
||||||
#if (defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1)) && defined(CONFIG_TUNER)
|
#if (defined(SAMSUNG_YPR0) || defined(SAMSUNG_YPR1)) && defined(CONFIG_TUNER)
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@
|
||||||
#define STORAGE_SD 0x04
|
#define STORAGE_SD 0x04
|
||||||
#define STORAGE_NAND 0x08
|
#define STORAGE_NAND 0x08
|
||||||
#define STORAGE_RAMDISK 0x10
|
#define STORAGE_RAMDISK 0x10
|
||||||
|
#define STORAGE_HOSTFS 0x20 /* meant for APPLICATION targets (implicit for SIMULATOR) */
|
||||||
|
|
||||||
/* CONFIG_TUNER (note these are combineable bit-flags) */
|
/* CONFIG_TUNER (note these are combineable bit-flags) */
|
||||||
#define S1A0903X01 0x01 /* Samsung */
|
#define S1A0903X01 0x01 /* Samsung */
|
||||||
|
|
@ -574,7 +575,6 @@ Lyre prototype 1 */
|
||||||
|
|
||||||
#ifdef APPLICATION
|
#ifdef APPLICATION
|
||||||
#define CONFIG_CPU 0
|
#define CONFIG_CPU 0
|
||||||
#define CONFIG_STORAGE 0
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* keep this include after the target configs */
|
/* keep this include after the target configs */
|
||||||
|
|
|
||||||
|
|
@ -103,3 +103,7 @@
|
||||||
#define HAVE_HOTKEY
|
#define HAVE_HOTKEY
|
||||||
|
|
||||||
#define BOOTDIR "/.rockbox"
|
#define BOOTDIR "/.rockbox"
|
||||||
|
|
||||||
|
/* No special storage */
|
||||||
|
#define CONFIG_STORAGE STORAGE_HOSTFS
|
||||||
|
#define HAVE_STORAGE_FLUSH
|
||||||
|
|
|
||||||
|
|
@ -94,3 +94,7 @@
|
||||||
#define HAVE_HOTKEY
|
#define HAVE_HOTKEY
|
||||||
|
|
||||||
#define BOOTDIR "/.rockbox"
|
#define BOOTDIR "/.rockbox"
|
||||||
|
|
||||||
|
/* No special storage */
|
||||||
|
#define CONFIG_STORAGE STORAGE_HOSTFS
|
||||||
|
#define HAVE_STORAGE_FLUSH
|
||||||
|
|
|
||||||
|
|
@ -92,3 +92,7 @@
|
||||||
#define HAVE_HOTKEY
|
#define HAVE_HOTKEY
|
||||||
|
|
||||||
#define BOOTDIR "/.rockbox"
|
#define BOOTDIR "/.rockbox"
|
||||||
|
|
||||||
|
/* No special storage */
|
||||||
|
#define CONFIG_STORAGE STORAGE_HOSTFS
|
||||||
|
#define HAVE_STORAGE_FLUSH
|
||||||
|
|
|
||||||
|
|
@ -94,3 +94,7 @@
|
||||||
#define HAVE_HOTKEY
|
#define HAVE_HOTKEY
|
||||||
|
|
||||||
#define BOOTDIR "/.rockbox"
|
#define BOOTDIR "/.rockbox"
|
||||||
|
|
||||||
|
/* No special storage */
|
||||||
|
#define CONFIG_STORAGE STORAGE_HOSTFS
|
||||||
|
#define HAVE_STORAGE_FLUSH
|
||||||
|
|
|
||||||
|
|
@ -160,3 +160,7 @@
|
||||||
|
|
||||||
/* This folder resides in the ReadOnly CRAMFS. It is binded to /mnt/media0/.rockbox */
|
/* This folder resides in the ReadOnly CRAMFS. It is binded to /mnt/media0/.rockbox */
|
||||||
#define BOOTDIR "/.rockbox"
|
#define BOOTDIR "/.rockbox"
|
||||||
|
|
||||||
|
/* No special storage */
|
||||||
|
#define CONFIG_STORAGE STORAGE_HOSTFS
|
||||||
|
#define HAVE_STORAGE_FLUSH
|
||||||
|
|
|
||||||
|
|
@ -150,3 +150,7 @@
|
||||||
|
|
||||||
/* This mount point resides in the rootfs, binded to /mnt/media0/.rockbox */
|
/* This mount point resides in the rootfs, binded to /mnt/media0/.rockbox */
|
||||||
#define BOOTDIR "/.rockbox"
|
#define BOOTDIR "/.rockbox"
|
||||||
|
|
||||||
|
/* No special storage */
|
||||||
|
#define CONFIG_STORAGE STORAGE_HOSTFS
|
||||||
|
#define HAVE_STORAGE_FLUSH
|
||||||
|
|
|
||||||
|
|
@ -94,3 +94,7 @@
|
||||||
#define HAVE_HOTKEY
|
#define HAVE_HOTKEY
|
||||||
|
|
||||||
#define BOOTDIR "/.rockbox"
|
#define BOOTDIR "/.rockbox"
|
||||||
|
|
||||||
|
/* No special storage */
|
||||||
|
#define CONFIG_STORAGE STORAGE_HOSTFS
|
||||||
|
#define HAVE_STORAGE_FLUSH
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
#undef HAVE_HOTSWAP_STORAGE_AS_MAIN
|
#undef HAVE_HOTSWAP_STORAGE_AS_MAIN
|
||||||
#undef HAVE_STORAGE_FLUSH
|
#undef HAVE_STORAGE_FLUSH
|
||||||
|
|
||||||
#undef CONFIG_STORAGE
|
#undef CONFIG_NAND
|
||||||
|
|
||||||
#if defined(CONFIG_CHARGING) && CONFIG_CHARGING > CHARGING_MONITOR
|
#if defined(CONFIG_CHARGING) && CONFIG_CHARGING > CHARGING_MONITOR
|
||||||
#undef CONFIG_CHARGING
|
#undef CONFIG_CHARGING
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,10 @@
|
||||||
#include "config.h" /* for HAVE_MULTIDRIVE or not */
|
#include "config.h" /* for HAVE_MULTIDRIVE or not */
|
||||||
#include "mv.h"
|
#include "mv.h"
|
||||||
|
|
||||||
|
#if (CONFIG_STORAGE & STORAGE_HOSTFS) || defined(SIMULATOR)
|
||||||
|
#define HAVE_HOSTFS
|
||||||
|
#endif
|
||||||
|
|
||||||
#if (CONFIG_STORAGE & STORAGE_SD)
|
#if (CONFIG_STORAGE & STORAGE_SD)
|
||||||
#include "sd.h"
|
#include "sd.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -51,19 +55,20 @@ struct storage_info
|
||||||
char *revision;
|
char *revision;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if (CONFIG_STORAGE == 0)
|
#ifdef HAVE_HOSTFS
|
||||||
|
#include "hostfs.h"
|
||||||
/* stubs for the plugin api */
|
/* stubs for the plugin api */
|
||||||
static inline void stub_storage_sleep(void) {}
|
static inline void stub_storage_sleep(void) {}
|
||||||
static inline void stub_storage_spin(void) {}
|
static inline void stub_storage_spin(void) {}
|
||||||
static inline void stub_storage_spindown(int timeout) { (void)timeout; }
|
static inline void stub_storage_spindown(int timeout) { (void)timeout; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(CONFIG_STORAGE) && !defined(CONFIG_STORAGE_MULTI)
|
#if !defined(CONFIG_STORAGE_MULTI) || defined(HAVE_HOSTFS)
|
||||||
/* storage_spindown, storage_sleep and storage_spin are passed as
|
/* storage_spindown, storage_sleep and storage_spin are passed as
|
||||||
* pointers, which doesn't work with argument-macros.
|
* pointers, which doesn't work with argument-macros.
|
||||||
*/
|
*/
|
||||||
#define storage_num_drives() NUM_DRIVES
|
#define storage_num_drives() NUM_DRIVES
|
||||||
#if (CONFIG_STORAGE == 0) /* application */
|
#if defined(HAVE_HOSTFS)
|
||||||
#define STORAGE_FUNCTION(NAME) (stub_## NAME)
|
#define STORAGE_FUNCTION(NAME) (stub_## NAME)
|
||||||
#define storage_spindown stub_storage_spindown
|
#define storage_spindown stub_storage_spindown
|
||||||
#define storage_sleep stub_storage_sleep
|
#define storage_sleep stub_storage_sleep
|
||||||
|
|
@ -73,8 +78,21 @@ static inline void stub_storage_spindown(int timeout) { (void)timeout; }
|
||||||
#define storage_sleepnow()
|
#define storage_sleepnow()
|
||||||
#define storage_disk_is_active() 0
|
#define storage_disk_is_active() 0
|
||||||
#define storage_soft_reset()
|
#define storage_soft_reset()
|
||||||
#define storage_init()
|
#define storage_init() hostfs_init()
|
||||||
#define storage_close()
|
#ifdef HAVE_STORAGE_FLUSH
|
||||||
|
#define storage_flush() hostfs_flush()
|
||||||
|
#endif
|
||||||
|
#define storage_last_disk_activity() (-1)
|
||||||
|
#define storage_spinup_time() 0
|
||||||
|
#define storage_get_identify() (NULL) /* not actually called anywher */
|
||||||
|
|
||||||
|
#ifdef STORAGE_GET_INFO
|
||||||
|
#error storage_get_info not implemented
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_HOTSWAP
|
||||||
|
#define storage_removable(drive) hostfs_removable(IF_MD(drive))
|
||||||
|
#define storage_present(drive) hostfs_present(IF_MD(drive))
|
||||||
|
#endif
|
||||||
#elif (CONFIG_STORAGE & STORAGE_ATA)
|
#elif (CONFIG_STORAGE & STORAGE_ATA)
|
||||||
#define STORAGE_FUNCTION(NAME) (ata_## NAME)
|
#define STORAGE_FUNCTION(NAME) (ata_## NAME)
|
||||||
#define storage_spindown ata_spindown
|
#define storage_spindown ata_spindown
|
||||||
|
|
@ -205,9 +223,9 @@ static inline void stub_storage_spindown(int timeout) { (void)timeout; }
|
||||||
#else
|
#else
|
||||||
//#error No storage driver!
|
//#error No storage driver!
|
||||||
#endif
|
#endif
|
||||||
#else /* NOT CONFIG_STORAGE_MULTI and PLATFORM_NATIVE*/
|
#else /* CONFIG_STORAGE_MULTI || !HAVE_HOSTFS */
|
||||||
|
|
||||||
/* Simulator and multi-driver use normal functions */
|
/* Multi-driver use normal functions */
|
||||||
|
|
||||||
void storage_enable(bool on);
|
void storage_enable(bool on);
|
||||||
void storage_sleep(void);
|
void storage_sleep(void);
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
#include <jni.h>
|
#include <jni.h>
|
||||||
#include <pthread.h>
|
#include <pthread.h>
|
||||||
|
#include <unistd.h>
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
#include "power.h"
|
#include "power.h"
|
||||||
|
|
@ -66,6 +67,17 @@ void system_init(void)
|
||||||
telephony_init_device();
|
telephony_init_device();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void hostfs_init(void)
|
||||||
|
{
|
||||||
|
/* stub */
|
||||||
|
}
|
||||||
|
|
||||||
|
int hostfs_flush(void)
|
||||||
|
{
|
||||||
|
sync();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
JNIEXPORT jint JNICALL
|
JNIEXPORT jint JNICALL
|
||||||
JNI_OnLoad(JavaVM *vm, void* reserved)
|
JNI_OnLoad(JavaVM *vm, void* reserved)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,11 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
#include <unistd.h>
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
#include "panic.h"
|
#include "panic.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
#include "hostfs.h"
|
||||||
|
|
||||||
#include "ascodec.h"
|
#include "ascodec.h"
|
||||||
#include "gpio-ypr.h"
|
#include "gpio-ypr.h"
|
||||||
|
|
@ -59,6 +61,18 @@ void system_exception_wait(void)
|
||||||
system_reboot();
|
system_reboot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void hostfs_init(void)
|
||||||
|
{
|
||||||
|
/* stub */
|
||||||
|
}
|
||||||
|
|
||||||
|
int hostfs_flush(void)
|
||||||
|
{
|
||||||
|
sync();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
|
#ifdef HAVE_ADJUSTABLE_CPU_FREQ
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "file.h"
|
#include "file.h"
|
||||||
|
|
|
||||||
|
|
@ -21,9 +21,11 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
#include <unistd.h>
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
#include "panic.h"
|
#include "panic.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
#include "hostfs.h"
|
||||||
|
|
||||||
#include "gpio-ypr.h"
|
#include "gpio-ypr.h"
|
||||||
#include "pmu-ypr1.h"
|
#include "pmu-ypr1.h"
|
||||||
|
|
@ -65,3 +67,15 @@ void system_exception_wait(void)
|
||||||
{
|
{
|
||||||
system_reboot();
|
system_reboot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void hostfs_init()
|
||||||
|
{
|
||||||
|
/* stub */
|
||||||
|
}
|
||||||
|
|
||||||
|
int hostfs_flush(void)
|
||||||
|
{
|
||||||
|
sync();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@
|
||||||
#include "buttonmap.h"
|
#include "buttonmap.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "powermgmt.h"
|
#include "powermgmt.h"
|
||||||
|
#include "storage.h"
|
||||||
|
|
||||||
#ifdef HAVE_TOUCHSCREEN
|
#ifdef HAVE_TOUCHSCREEN
|
||||||
#include "touchscreen.h"
|
#include "touchscreen.h"
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,9 @@
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
|
#ifdef __unix__
|
||||||
|
#include <unistd.h>
|
||||||
|
#endif
|
||||||
#include "system.h"
|
#include "system.h"
|
||||||
#include "kernel.h"
|
#include "kernel.h"
|
||||||
#include "thread-sdl.h"
|
#include "thread-sdl.h"
|
||||||
|
|
@ -286,6 +289,21 @@ void system_exception_wait(void)
|
||||||
system_reboot();
|
system_reboot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void hostfs_init(void)
|
||||||
|
{
|
||||||
|
/* stub */
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_STORAGE_FLUSH
|
||||||
|
int hostfs_flush(void)
|
||||||
|
{
|
||||||
|
#ifdef __unix__
|
||||||
|
sync();
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif /* HAVE_STORAGE_FLUSH */
|
||||||
|
|
||||||
void sys_handle_argv(int argc, char *argv[])
|
void sys_handle_argv(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
if (argc >= 1)
|
if (argc >= 1)
|
||||||
|
|
|
||||||
|
|
@ -395,3 +395,10 @@ void touchpad_enable_device(bool en)
|
||||||
(void)en;
|
(void)en;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if (CONFIG_STORAGE & STORAGE_MMC)
|
||||||
|
bool mmc_touched(void)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue