Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/apps/codecs.c b/apps/codecs.c
- index 29a6644..93b1b6b 100644
- --- a/apps/codecs.c
- +++ b/apps/codecs.c
- @@ -55,7 +55,11 @@
- #include "logf.h"
- #if (CONFIG_PLATFORM & PLATFORM_HOSTED)
- -
- +#if !defined(ROCKBOX_SIMULATE_STORAGE_LAYER)
- +# define FS_PREFIX(_x_) sim_ ## _x_
- +# else
- +# define FS_PREFIX(_x_) _x_
- +# endif
- #define PREFIX(_x_) sim_ ## _x_
- #if CONFIG_CODEC == SWCODEC
- unsigned char codecbuf[CODEC_SIZE];
- @@ -66,6 +70,7 @@ void sim_codec_close(void *pd);
- #else /* !PLATFORM_HOSTED */
- #define PREFIX
- +#define FS_PREFIX
- #define sim_codec_close(x)
- #endif
- @@ -77,7 +82,7 @@ extern void* plugin_get_audio_buffer(size_t *buffer_size);
- #undef open
- static int open(const char* pathname, int flags, ...)
- {
- -#if (CONFIG_PLATFORM & PLATFORM_HOSTED)
- +#if (CONFIG_PLATFORM & PLATFORM_HOSTED) && !defined(ROCKBOX_SIMULATE_STORAGE_LAYER)
- int fd;
- if (flags & O_CREAT)
- {
- @@ -178,11 +183,11 @@ struct codec_api ci = {
- enc_unget_pcm_data,
- /* file */
- - (open_func)PREFIX(open),
- - PREFIX(close),
- - (read_func)PREFIX(read),
- - PREFIX(lseek),
- - (write_func)PREFIX(write),
- + (open_func)FS_PREFIX(open),
- + FS_PREFIX(close),
- + (read_func)FS_PREFIX(read),
- + FS_PREFIX(lseek),
- + (write_func)FS_PREFIX(write),
- round_value_to_list32,
- #endif /* HAVE_RECORDING */
- diff --git a/apps/main.c b/apps/main.c
- index 67cd6d2..2973bd8 100644
- --- a/apps/main.c
- +++ b/apps/main.c
- @@ -353,7 +353,39 @@ static void init(void)
- sb_skin_init();
- viewportmanager_init();
- +#if defined(ROCKBOX_SIMULATE_STORAGE_LAYER)
- + disk_init_subsystem();
- + int rc = storage_init();
- + if(rc)
- + panicf("storage error: %d", rc);
- + rc = disk_mount_all();
- + if(rc <= 0)
- + {
- + printf("disk_mount error: %d\n", rc);
- + lcd_clear_display();
- + lcd_puts(0, 0, "No partition");
- + lcd_puts(0, 1, "found.");
- + lcd_puts(0, 2, "Continue ?");
- +
- + lcd_update();
- +
- + while(true)
- + {
- + int button = get_action(CONTEXT_YESNOSCREEN, HZ*5);
- + switch (button)
- + {
- + case ACTION_YESNO_ACCEPT: goto Lcontinue;
- + case ACTION_NONE: continue;
- + default: exit(1);
- + }
- + }
- +
- + Lcontinue:
- + printf("continue without partition !\n");
- + }
- +#else /* defined(ROCKBOX_SIMULATE_STORAGE_LAYER) */
- storage_init();
- +#endif
- settings_reset();
- settings_load(SETTINGS_ALL);
- settings_apply(true);
- diff --git a/apps/plugin.c b/apps/plugin.c
- index b3baea7..ae1e9cf 100644
- --- a/apps/plugin.c
- +++ b/apps/plugin.c
- @@ -59,9 +59,15 @@
- #endif
- #if (CONFIG_PLATFORM & PLATFORM_HOSTED)
- +#if !defined(ROCKBOX_SIMULATE_STORAGE_LAYER)
- +# define FS_PREFIX(_x_) sim_ ## _x_
- +# else
- +# define FS_PREFIX(_x_) _x_
- +# endif
- #define PREFIX(_x_) sim_ ## _x_
- #else
- #define PREFIX
- +#define FS_PREFIX
- #endif
- #if defined(HAVE_PLUGIN_CHECK_OPEN_CLOSE) && (MAX_OPEN_FILES>32)
- @@ -306,20 +312,20 @@ static const struct plugin_api rockbox_api = {
- #ifdef HAVE_PLUGIN_CHECK_OPEN_CLOSE
- close_wrapper,
- #else
- - PREFIX(close),
- + FS_PREFIX(close),
- #endif
- - (read_func)PREFIX(read),
- - PREFIX(lseek),
- + (read_func)FS_PREFIX(read),
- + FS_PREFIX(lseek),
- #ifdef HAVE_PLUGIN_CHECK_OPEN_CLOSE
- (creat_func)creat_wrapper,
- #else
- - (creat_func)PREFIX(creat),
- + (creat_func)FS_PREFIX(creat),
- #endif
- - (write_func)PREFIX(write),
- - PREFIX(remove),
- - PREFIX(rename),
- - PREFIX(ftruncate),
- - PREFIX(filesize),
- + (write_func)FS_PREFIX(write),
- + FS_PREFIX(remove),
- + FS_PREFIX(rename),
- + FS_PREFIX(ftruncate),
- + FS_PREFIX(filesize),
- fdprintf,
- read_line,
- settings_parseline,
- @@ -991,7 +997,7 @@ static int open_wrapper(const char* pathname, int flags, ...)
- /* we don't have an 'open' function. it's a define. and we need
- * the real file_open, hence PREFIX() doesn't work here */
- int fd;
- -#if (CONFIG_PLATFORM & PLATFORM_HOSTED)
- +#if (CONFIG_PLATFORM & PLATFORM_HOSTED) && !defined(ROCKBOX_SIMULATE_STORAGE_LAYER)
- if (flags & O_CREAT)
- {
- va_list ap;
- diff --git a/firmware/SOURCES b/firmware/SOURCES
- index d8cfade..5c50637 100644
- --- a/firmware/SOURCES
- +++ b/firmware/SOURCES
- @@ -95,7 +95,8 @@ common/crc32.c
- #ifdef MI4_FORMAT
- common/crc32-mi4.c
- #endif
- -#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
- +#if (CONFIG_PLATFORM & PLATFORM_NATIVE) || \
- + ((CONFIG_PLATFORM & PLATFORM_HOSTED) && defined(ROCKBOX_SIMULATE_STORAGE_LAYER))
- common/dir_uncached.c
- common/file.c
- common/disk.c
- @@ -185,7 +186,8 @@ drivers/touchscreen.c
- /* Storage */
- -#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
- +#if (CONFIG_PLATFORM & PLATFORM_NATIVE) || \
- + ((CONFIG_PLATFORM & PLATFORM_HOSTED) && defined(ROCKBOX_SIMULATE_STORAGE_LAYER))
- #if (CONFIG_STORAGE & STORAGE_MMC)
- drivers/ata_mmc.c
- #endif
- diff --git a/firmware/export/config/sim.h b/firmware/export/config/sim.h
- index 5dcb4f6..f359a7b 100644
- --- a/firmware/export/config/sim.h
- +++ b/firmware/export/config/sim.h
- @@ -30,12 +30,14 @@
- #undef AMS_OF_SIZE
- +#if !defined(ROCKBOX_SIMULATE_STORAGE_LAYER)
- #undef HAVE_MULTIDRIVE
- #undef NUM_DRIVES
- #undef HAVE_HOTSWAP
- #undef HAVE_HOTSWAP_STORAGE_AS_MAIN
- #undef CONFIG_STORAGE
- +#endif /* !defined(ROCKBOX_SIMULATE_STORAGE_LAYER) */
- #undef CONFIG_USBOTG
- diff --git a/firmware/export/sd.h b/firmware/export/sd.h
- index c798f54..f207421 100644
- --- a/firmware/export/sd.h
- +++ b/firmware/export/sd.h
- @@ -36,7 +36,6 @@ void sd_sleepnow(void);
- bool sd_disk_is_active(void);
- int sd_soft_reset(void);
- int sd_init(void);
- -void sd_close(void);
- int sd_read_sectors(IF_MD2(int drive,) unsigned long start, int count, void* buf);
- int sd_write_sectors(IF_MD2(int drive,) unsigned long start, int count, const void* buf);
- void sd_spin(void);
- diff --git a/firmware/export/storage.h b/firmware/export/storage.h
- index e59a5e5..b6e8acf 100644
- --- a/firmware/export/storage.h
- +++ b/firmware/export/storage.h
- @@ -51,7 +51,8 @@ struct storage_info
- char *revision;
- };
- -#if (CONFIG_PLATFORM & PLATFORM_NATIVE) && !defined(CONFIG_STORAGE_MULTI)
- +#if ((CONFIG_PLATFORM & PLATFORM_NATIVE) && !defined(CONFIG_STORAGE_MULTI)) || \
- + ((CONFIG_PLATFORM & PLATFORM_HOSTED) && defined(ROCKBOX_SIMULATE_STORAGE_LAYER) && !defined(CONFIG_STORAGE_MULTI))
- /* storage_spindown, storage_sleep and storage_spin are passed as
- * pointers, which doesn't work with argument-macros.
- */
- diff --git a/firmware/include/dir_uncached.h b/firmware/include/dir_uncached.h
- index f225cf8..38663ca 100644
- --- a/firmware/include/dir_uncached.h
- +++ b/firmware/include/dir_uncached.h
- @@ -32,7 +32,7 @@
- #define ATTR_ARCHIVE 0x20
- #define ATTR_VOLUME 0x40 /* this is a volume, not a real directory */
- -#if (CONFIG_PLATFORM & PLATFORM_HOSTED)
- +#if (CONFIG_PLATFORM & PLATFORM_HOSTED) && !defined(ROCKBOX_SIMULATE_STORAGE_LAYER)
- #define dirent_uncached sim_dirent
- #define DIR_UNCACHED SIM_DIR
- #define opendir_uncached sim_opendir
- @@ -57,7 +57,8 @@ struct dirent_uncached {
- #include "fat.h"
- typedef struct {
- -#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
- +#if (CONFIG_PLATFORM & PLATFORM_NATIVE) || \
- + ((CONFIG_PLATFORM & PLATFORM_HOSTED) && defined(ROCKBOX_SIMULATE_STORAGE_LAYER))
- bool busy;
- long startcluster;
- struct fat_dir fatdir;
- diff --git a/firmware/include/file.h b/firmware/include/file.h
- index a9d1d05..ff7164a 100644
- --- a/firmware/include/file.h
- +++ b/firmware/include/file.h
- @@ -49,7 +49,7 @@
- #define O_TRUNC 0x10
- #endif
- -#if (CONFIG_PLATFORM & PLATFORM_HOSTED) && !defined(PLUGIN) && !defined(CODEC)
- +#if (CONFIG_PLATFORM & PLATFORM_HOSTED) && !defined(PLUGIN) && !defined(CODEC) && !defined(ROCKBOX_SIMULATE_STORAGE_LAYER)
- #define open(x, ...) sim_open(x, __VA_ARGS__)
- #define creat(x,m) sim_creat(x,m)
- #define remove(x) sim_remove(x)
- @@ -78,7 +78,8 @@ extern int fsync(int fd);
- extern ssize_t read(int fd, void *buf, size_t count);
- extern off_t lseek(int fildes, off_t offset, int whence);
- extern int file_creat(const char *pathname);
- -#if (CONFIG_PLATFORM & PLATFORM_NATIVE)
- +#if (CONFIG_PLATFORM & PLATFORM_NATIVE) || \
- + ((CONFIG_PLATFORM & PLATFORM_HOSTED) && defined(ROCKBOX_SIMULATE_STORAGE_LAYER))
- /* posix compatibility function */
- static inline int creat(const char *pathname, mode_t mode)
- {
- diff --git a/uisimulator/common/SOURCES b/uisimulator/common/SOURCES
- index a30b5ab..243c994 100644
- --- a/uisimulator/common/SOURCES
- +++ b/uisimulator/common/SOURCES
- @@ -12,5 +12,9 @@ backlight-sim.c
- /* this is still needed for application since it has some stubs */
- powermgmt-sim.c
- io.c
- +debug.c
- sim_tasks.c
- stubs.c
- +#if defined(ROCKBOX_SIMULATE_STORAGE_LAYER)
- +storage.c
- +#endif
- diff --git a/uisimulator/common/io.c b/uisimulator/common/io.c
- index 260e880..b1e76bc 100644
- --- a/uisimulator/common/io.c
- +++ b/uisimulator/common/io.c
- @@ -147,6 +147,7 @@ void dircache_rename(const char *oldname, const char *newname);
- #define SIMULATOR_DEFAULT_ROOT "simdisk"
- extern const char *sim_root_dir;
- +#if !defined(ROCKBOX_SIMULATE_STORAGE_LAYER)
- static int num_openfiles = 0;
- struct sim_dirent {
- @@ -170,26 +171,6 @@ struct mydir {
- typedef struct mydir MYDIR;
- -#if 1 /* maybe this needs disabling for MSVC... */
- -static unsigned int rockbox2sim(int opt)
- -{
- - int newopt = O_BINARY;
- -
- - if(opt & 1)
- - newopt |= O_WRONLY;
- - if(opt & 2)
- - newopt |= O_RDWR;
- - if(opt & 4)
- - newopt |= O_CREAT;
- - if(opt & 8)
- - newopt |= O_APPEND;
- - if(opt & 0x10)
- - newopt |= O_TRUNC;
- -
- - return newopt;
- -}
- -#endif
- -
- /** Simulator I/O engine routines **/
- #define IO_YIELD_THRESHOLD 512
- @@ -212,6 +193,26 @@ struct sim_io
- static struct sim_io io;
- +#if 1 /* maybe this needs disabling for MSVC... */
- +static unsigned int rockbox2sim(int opt)
- +{
- + int newopt = O_BINARY;
- +
- + if(opt & 1)
- + newopt |= O_WRONLY;
- + if(opt & 2)
- + newopt |= O_RDWR;
- + if(opt & 4)
- + newopt |= O_CREAT;
- + if(opt & 8)
- + newopt |= O_APPEND;
- + if(opt & 0x10)
- + newopt |= O_TRUNC;
- +
- + return newopt;
- +}
- +#endif
- +
- int ata_init(void)
- {
- /* Initialize the rockbox kernel objects on a rockbox thread */
- @@ -256,6 +257,7 @@ static ssize_t io_trigger_and_wait(int cmd)
- return result;
- }
- +#endif /* !defined(ROCKBOX_SIMULATE_STORAGE_LAYER) */
- #if !defined(__PCTOOL__) && !defined(APPLICATION)
- static const char *get_sim_pathname(const char *name)
- @@ -275,6 +277,7 @@ static const char *get_sim_pathname(const char *name)
- #define get_sim_pathname(name) name
- #endif
- +#if !defined(ROCKBOX_SIMULATE_STORAGE_LAYER)
- MYDIR *sim_opendir(const char *name)
- {
- DIR_T *dir;
- @@ -509,6 +512,18 @@ int sim_fsync(int fd)
- #endif
- }
- +/* rockbox off_t may be different from system off_t */
- +int sim_ftruncate(int fd, long length)
- +{
- +#ifdef WIN32
- + return _chsize(fd, length);
- +#else
- + return ftruncate(fd, length);
- +#endif
- +}
- +
- +#endif /* !defined(ROCKBOX_SIMULATE_STORAGE_LAYER) */
- +
- #ifdef WIN32
- /* sim-win32 */
- #define dlopen(_x_, _y_) LoadLibraryW(UTF8_TO_OS(_x_))
- @@ -586,6 +601,8 @@ void sim_codec_close(void *pd)
- void *sim_plugin_load(char *plugin, void **pd)
- {
- +#if !defined(ROCKBOX_SIMULATE_STORAGE_LAYER)
- +
- void *hdr;
- char path[MAX_PATH];
- #ifdef WIN32
- @@ -614,60 +631,15 @@ void *sim_plugin_load(char *plugin, void **pd)
- hdr = dlsym(*pd, "___header");
- return hdr; /* maybe NULL if symbol not present */
- -}
- -
- -void sim_plugin_close(void *pd)
- -{
- - dlclose(pd);
- -}
- -
- -#ifdef WIN32
- -static unsigned old_cp;
- -
- -void debug_exit(void)
- -{
- - /* Reset console output codepage */
- - SetConsoleOutputCP(old_cp);
- -}
- -void debug_init(void)
- -{
- - old_cp = GetConsoleOutputCP();
- - /* Set console output codepage to UTF8. Only works
- - * correctly when the console uses a truetype font. */
- - SetConsoleOutputCP(65001);
- - atexit(debug_exit);
- -}
- -#else
- -void debug_init(void)
- -{
- - /* nothing to be done */
- -}
- -#endif
- +#else /* !defined(ROCKBOX_SIMULATE_STORAGE_LAYER) */
- -void debugf(const char *fmt, ...)
- -{
- - va_list ap;
- - va_start( ap, fmt );
- - vfprintf( stderr, fmt, ap );
- - va_end( ap );
- -}
- + return NULL;
- -void ldebugf(const char* file, int line, const char *fmt, ...)
- -{
- - va_list ap;
- - va_start( ap, fmt );
- - fprintf( stderr, "%s:%d ", file, line );
- - vfprintf( stderr, fmt, ap );
- - va_end( ap );
- +#endif /* !defined(ROCKBOX_SIMULATE_STORAGE_LAYER) */
- }
- -/* rockbox off_t may be different from system off_t */
- -int sim_ftruncate(int fd, long length)
- +void sim_plugin_close(void *pd)
- {
- -#ifdef WIN32
- - return _chsize(fd, length);
- -#else
- - return ftruncate(fd, length);
- -#endif
- + dlclose(pd);
- }
- diff --git a/uisimulator/common/stubs.c b/uisimulator/common/stubs.c
- index 6d7d7de..0063f0d 100644
- --- a/uisimulator/common/stubs.c
- +++ b/uisimulator/common/stubs.c
- @@ -36,7 +36,6 @@
- #include "ata.h" /* for volume definitions */
- extern char having_new_lcd;
- -static bool storage_spinning = false;
- #if CONFIG_CODEC != SWCODEC
- void audio_set_buffer_margin(int seconds)
- @@ -45,6 +44,9 @@ void audio_set_buffer_margin(int seconds)
- }
- #endif
- +#if !defined(ROCKBOX_SIMULATE_STORAGE_LAYER)
- +static bool storage_spinning = false;
- +
- int fat_startsector(void)
- {
- return 63;
- @@ -131,6 +133,8 @@ void storage_spindown(int s)
- storage_spinning = false;
- }
- +#endif /* !defined(ROCKBOX_SIMULATE_STORAGE_LAYER) */
- +
- void rtc_init(void)
- {
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement