From 5d13ecc4a809910a5ae763afea0048c29b3bee97 Mon Sep 17 00:00:00 2001 From: Thomas Martitz Date: Thu, 19 Jan 2012 07:59:28 +0100 Subject: android/ypr0: Merge fs-*.c to generic filesystem-unix.c. Change-Id: I52e2c29346baf0d282243880477cd149311ce3d1 --- firmware/SOURCES | 4 +- firmware/common/rbpaths.c | 14 +-- firmware/target/hosted/android/dir-target.h | 9 +- firmware/target/hosted/android/fs-android.c | 141 ---------------------------- firmware/target/hosted/filesystem-unix.c | 141 ++++++++++++++++++++++++++++ firmware/target/hosted/ypr0/dir-target.h | 9 +- firmware/target/hosted/ypr0/fs-ypr0.c | 141 ---------------------------- 7 files changed, 150 insertions(+), 309 deletions(-) delete mode 100644 firmware/target/hosted/android/fs-android.c create mode 100644 firmware/target/hosted/filesystem-unix.c delete mode 100644 firmware/target/hosted/ypr0/fs-ypr0.c diff --git a/firmware/SOURCES b/firmware/SOURCES index 19b0efd089..b2ddc246ec 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES @@ -78,10 +78,10 @@ drivers/rtc/rtc_as3514.c target/hosted/rtc.c #endif target/hosted/kernel-unix.c +target/hosted/filesystem-unix.c target/hosted/ypr0/button-ypr0.c target/hosted/ypr0/lcd-ypr0.c target/hosted/ypr0/system-ypr0.c -target/hosted/ypr0/fs-ypr0.c target/hosted/ypr0/lc-ypr0.c thread.c #ifdef HAVE_BACKLIGHT @@ -1693,7 +1693,7 @@ target/arm/rk27xx/hm801/power-hm801.c #if (CONFIG_PLATFORM & PLATFORM_ANDROID) target/hosted/kernel-unix.c -target/hosted/android/fs-android.c +target/hosted/filesystem-unix.c target/hosted/android/lcd-android.c target/hosted/android/lc-android.c target/hosted/android/button-android.c diff --git a/firmware/common/rbpaths.c b/firmware/common/rbpaths.c index aacd949430..f5a484273c 100644 --- a/firmware/common/rbpaths.c +++ b/firmware/common/rbpaths.c @@ -40,17 +40,13 @@ #undef rmdir -#if (CONFIG_PLATFORM & PLATFORM_ANDROID) +#if (CONFIG_PLATFORM & PLATFORM_ANDROID) || defined(SAMSUNG_YPR0) #include "dir-target.h" -#define opendir opendir_android -#define mkdir mkdir_android -#define rmdir rmdir_android +#define opendir _opendir +#define mkdir _mkdir +#if (CONFIG_PLATFORM & PLATFORM_ANDROID) static const char rbhome[] = "/sdcard"; -#elif defined(SAMSUNG_YPR0) -#include "dir-target.h" -#define opendir opendir_ypr0 -#define mkdir mkdir_ypr0 -#define rmdir rmdir_ypr0 +#endif #elif (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO|PLATFORM_PANDORA)) #define open sim_open #define remove sim_remove diff --git a/firmware/target/hosted/android/dir-target.h b/firmware/target/hosted/android/dir-target.h index c6c6b4b2b0..6962d943fe 100644 --- a/firmware/target/hosted/android/dir-target.h +++ b/firmware/target/hosted/android/dir-target.h @@ -32,16 +32,9 @@ #define mkdir_uncached _mkdir #define rmdir_uncached rmdir -#define dirent_android dirent -#define DIR_android DIR -#define opendir_android _opendir -#define readdir_android _readdir -#define closedir_android _closedir -#define mkdir_android _mkdir -#define rmdir_android rmdir - extern DIR* _opendir(const char* name); extern int _mkdir(const char* name); +extern int rmdir(const char* name); extern int _closedir(DIR* dir); extern struct dirent *_readdir(DIR* dir); extern void fat_size(unsigned long *size, unsigned long *free); diff --git a/firmware/target/hosted/android/fs-android.c b/firmware/target/hosted/android/fs-android.c deleted file mode 100644 index c6d22a477e..0000000000 --- a/firmware/target/hosted/android/fs-android.c +++ /dev/null @@ -1,141 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2010 by Thomas Martitz - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include -#include /* stat() */ -#include /* snprintf */ -#include /* size_t */ -#include -#include /* localtime() */ -#include "system-target.h" -#include "dir-target.h" -#include "file.h" -#include "dir.h" -#include "rbpaths.h" - - -long filesize(int fd) -{ - struct stat buf; - - if (!fstat(fd, &buf)) - return buf.st_size; - else - return -1; -} - -/* do we really need this in the app? */ -void fat_size(unsigned long* size, unsigned long* free) -{ - *size = *free = 0; -} - -#undef opendir -#undef closedir -#undef mkdir -#undef readdir - -/* need to wrap around DIR* because we need to save the parent's - * directory path in order to determine dirinfo */ -struct __dir { - DIR *dir; - char *path; -}; - -DIR* _opendir(const char *name) -{ - char *buf = malloc(sizeof(struct __dir) + strlen(name)+1); - if (!buf) - return NULL; - - struct __dir *this = (struct __dir*)buf; - - this->path = buf+sizeof(struct __dir); - /* definitely fits due to strlen() */ - strcpy(this->path, name); - - this->dir = opendir(name); - - if (!this->dir) - { - free(buf); - return NULL; - } - return (DIR*)this; -} - -int _mkdir(const char *name) -{ - return mkdir(name, 0777); -} - -int _closedir(DIR *dir) -{ - struct __dir *this = (struct __dir*)dir; - int ret = closedir(this->dir); - free(this); - return ret; -} - -struct dirent* _readdir(DIR* dir) -{ - struct __dir *d = (struct __dir*)dir; - return readdir(d->dir); -} - -struct dirinfo dir_get_info(struct DIR* _parent, struct dirent *dir) -{ - struct __dir *parent = (struct __dir*)_parent; - struct stat s; - struct tm *tm = NULL; - struct dirinfo ret; - char path[MAX_PATH]; - - snprintf(path, sizeof(path), "%s/%s", parent->path, dir->d_name); - memset(&ret, 0, sizeof(ret)); - - if (!stat(path, &s)) - { - if (S_ISDIR(s.st_mode)) - { - ret.attribute = ATTR_DIRECTORY; - } - ret.size = s.st_size; - tm = localtime(&(s.st_mtime)); - } - - if (!lstat(path, &s) && S_ISLNK(s.st_mode)) - { - ret.attribute |= ATTR_LINK; - } - - if (tm) - { - ret.wrtdate = ((tm->tm_year - 80) << 9) | - ((tm->tm_mon + 1) << 5) | - tm->tm_mday; - ret.wrttime = (tm->tm_hour << 11) | - (tm->tm_min << 5) | - (tm->tm_sec >> 1); - } - - return ret; -} diff --git a/firmware/target/hosted/filesystem-unix.c b/firmware/target/hosted/filesystem-unix.c new file mode 100644 index 0000000000..7f49a5f91a --- /dev/null +++ b/firmware/target/hosted/filesystem-unix.c @@ -0,0 +1,141 @@ +/*************************************************************************** + * __________ __ ___. + * Open \______ \ ____ ____ | | _\_ |__ _______ ___ + * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / + * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < + * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ + * \/ \/ \/ \/ \/ + * $Id$ + * + * Copyright (C) 2010 by Thomas Martitz + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY + * KIND, either express or implied. + * + ****************************************************************************/ + +#include +#include /* stat() */ +#include /* snprintf */ +#include /* size_t */ +#include +#include /* localtime() */ +#include "system-target.h" +#include "dir-target.h" +#include "file.h" +#include "dir.h" +#include "rbpaths.h" + + +long filesize(int fd) +{ + struct stat buf; + + if (!fstat(fd, &buf)) + return buf.st_size; + else + return -1; +} + +/* do we really need this in the app? */ +void fat_size(unsigned long* size, unsigned long* free) +{ + *size = *free = 0; +} + +#undef opendir +#undef closedir +#undef mkdir +#undef readdir + +/* need to wrap around DIR* because we need to save the parent's + * directory path in order to determine dirinfo */ +struct __dir { + DIR *dir; + char *path; +}; + +DIR* _opendir(const char *name) +{ + char *buf = malloc(sizeof(struct __dir) + strlen(name)+1); + if (!buf) + return NULL; + + struct __dir *this = (struct __dir*)buf; + + this->path = buf+sizeof(struct __dir); + /* definitely fits due to strlen() */ + strcpy(this->path, name); + + this->dir = opendir(name); + + if (!this->dir) + { + free(buf); + return NULL; + } + return (DIR*)this; +} + +int _mkdir(const char *name) +{ + return mkdir(name, 0777); +} + +int _closedir(DIR *dir) +{ + struct __dir *this = (struct __dir*)dir; + int ret = closedir(this->dir); + free(this); + return ret; +} + +struct dirent* _readdir(DIR* dir) +{ + struct __dir *d = (struct __dir*)dir; + return readdir(d->dir); +} + +struct dirinfo dir_get_info(DIR* _parent, struct dirent *dir) +{ + struct __dir *parent = (struct __dir*)_parent; + struct stat s; + struct tm *tm = NULL; + struct dirinfo ret; + char path[MAX_PATH]; + + snprintf(path, sizeof(path), "%s/%s", parent->path, dir->d_name); + memset(&ret, 0, sizeof(ret)); + + if (!stat(path, &s)) + { + if (S_ISDIR(s.st_mode)) + { + ret.attribute = ATTR_DIRECTORY; + } + ret.size = s.st_size; + tm = localtime(&(s.st_mtime)); + } + + if (!lstat(path, &s) && S_ISLNK(s.st_mode)) + { + ret.attribute |= ATTR_LINK; + } + + if (tm) + { + ret.wrtdate = ((tm->tm_year - 80) << 9) | + ((tm->tm_mon + 1) << 5) | + tm->tm_mday; + ret.wrttime = (tm->tm_hour << 11) | + (tm->tm_min << 5) | + (tm->tm_sec >> 1); + } + + return ret; +} diff --git a/firmware/target/hosted/ypr0/dir-target.h b/firmware/target/hosted/ypr0/dir-target.h index 48859526df..7df9554e92 100644 --- a/firmware/target/hosted/ypr0/dir-target.h +++ b/firmware/target/hosted/ypr0/dir-target.h @@ -35,16 +35,9 @@ extern int rmdir(const char* name); #define mkdir_uncached _mkdir #define rmdir_uncached rmdir -#define dirent_ypr0 dirent -#define DIR_ypr0 DIR -#define opendir_ypr0 _opendir -#define readdir_ypr0 _readdir -#define closedir_ypr0 _closedir -#define mkdir_ypr0 _mkdir -#define rmdir_ypr0 rmdir - extern DIR* _opendir(const char* name); extern int _mkdir(const char* name); +extern int _rmdir(const char* name); extern int _closedir(DIR* dir); extern struct dirent *_readdir(DIR* dir); extern void fat_size(unsigned long *size, unsigned long *free); diff --git a/firmware/target/hosted/ypr0/fs-ypr0.c b/firmware/target/hosted/ypr0/fs-ypr0.c deleted file mode 100644 index 7f49a5f91a..0000000000 --- a/firmware/target/hosted/ypr0/fs-ypr0.c +++ /dev/null @@ -1,141 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2010 by Thomas Martitz - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include -#include /* stat() */ -#include /* snprintf */ -#include /* size_t */ -#include -#include /* localtime() */ -#include "system-target.h" -#include "dir-target.h" -#include "file.h" -#include "dir.h" -#include "rbpaths.h" - - -long filesize(int fd) -{ - struct stat buf; - - if (!fstat(fd, &buf)) - return buf.st_size; - else - return -1; -} - -/* do we really need this in the app? */ -void fat_size(unsigned long* size, unsigned long* free) -{ - *size = *free = 0; -} - -#undef opendir -#undef closedir -#undef mkdir -#undef readdir - -/* need to wrap around DIR* because we need to save the parent's - * directory path in order to determine dirinfo */ -struct __dir { - DIR *dir; - char *path; -}; - -DIR* _opendir(const char *name) -{ - char *buf = malloc(sizeof(struct __dir) + strlen(name)+1); - if (!buf) - return NULL; - - struct __dir *this = (struct __dir*)buf; - - this->path = buf+sizeof(struct __dir); - /* definitely fits due to strlen() */ - strcpy(this->path, name); - - this->dir = opendir(name); - - if (!this->dir) - { - free(buf); - return NULL; - } - return (DIR*)this; -} - -int _mkdir(const char *name) -{ - return mkdir(name, 0777); -} - -int _closedir(DIR *dir) -{ - struct __dir *this = (struct __dir*)dir; - int ret = closedir(this->dir); - free(this); - return ret; -} - -struct dirent* _readdir(DIR* dir) -{ - struct __dir *d = (struct __dir*)dir; - return readdir(d->dir); -} - -struct dirinfo dir_get_info(DIR* _parent, struct dirent *dir) -{ - struct __dir *parent = (struct __dir*)_parent; - struct stat s; - struct tm *tm = NULL; - struct dirinfo ret; - char path[MAX_PATH]; - - snprintf(path, sizeof(path), "%s/%s", parent->path, dir->d_name); - memset(&ret, 0, sizeof(ret)); - - if (!stat(path, &s)) - { - if (S_ISDIR(s.st_mode)) - { - ret.attribute = ATTR_DIRECTORY; - } - ret.size = s.st_size; - tm = localtime(&(s.st_mtime)); - } - - if (!lstat(path, &s) && S_ISLNK(s.st_mode)) - { - ret.attribute |= ATTR_LINK; - } - - if (tm) - { - ret.wrtdate = ((tm->tm_year - 80) << 9) | - ((tm->tm_mon + 1) << 5) | - tm->tm_mday; - ret.wrttime = (tm->tm_hour << 11) | - (tm->tm_min << 5) | - (tm->tm_sec >> 1); - } - - return ret; -} -- cgit v1.2.3