mirror of
https://github.com/Rockbox/rockbox.git
synced 2026-10-09 23:53:28 -04:00
Most of the churn here occurs because 'filesize' is one of the redefined filesystem functions, but some of the structs used by the native FS code also include a 'filesize' member variable which gets renamed by the macro in some but not all source files. It's easier to rename 'filesize()' to 'ffilesize()' rather than try to clean up the macro mess or renaming the struct members. There is weirdness with root_realpath() which now breaks on native builds because it was assumed to be unprefixed there. dir_get_info() was unprefixed everywhere but this just seems inconsistent; make it follow the FS_PREFIX() convention too. Change-Id: Ic3700c6234ea45f32679c1a8429d70fdb8f4088a
112 lines
3.5 KiB
C
112 lines
3.5 KiB
C
/***************************************************************************
|
|
* __________ __ ___.
|
|
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
|
|
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
|
|
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
|
|
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
|
|
* \/ \/ \/ \/ \/
|
|
*
|
|
* Copyright (C) 2002 by Björn Stenberg
|
|
*
|
|
* 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.
|
|
*
|
|
****************************************************************************/
|
|
#ifndef _FILESYSTEM_NATIVE_H_
|
|
#define _FILESYSTEM_NATIVE_H_
|
|
|
|
#if defined(PLUGIN) || defined(CODEC)
|
|
#define FILEFUNCTIONS_DECLARED
|
|
#define FILEFUNCTIONS_DEFINED
|
|
#define DIRFUNCTIONS_DECLARED
|
|
#define DIRFUNCTIONS_DEFINED
|
|
#endif /* PLUGIN || CODEC */
|
|
|
|
#define FS_PREFIX(_x_) rbfs_ ## _x_
|
|
#endif /* _FILESYSTEM_NATIVE_H_ */
|
|
|
|
#ifdef _FILE_H_
|
|
#ifndef _FILESYSTEM_NATIVE__FILE_H_
|
|
#define _FILESYSTEM_NATIVE__FILE_H_
|
|
|
|
#ifdef RB_FILESYSTEM_OS
|
|
#define FILEFUNCTIONS_DEFINED
|
|
#endif
|
|
|
|
#ifndef FILEFUNCTIONS_DECLARED
|
|
#define __OPEN_MODE_ARG
|
|
#define __CREAT_MODE_ARG
|
|
|
|
#include <time.h>
|
|
|
|
int rbfs_open(const char *name, int oflag);
|
|
int rbfs_creat(const char *name);
|
|
int rbfs_close(int fildes);
|
|
int rbfs_ftruncate(int fildes, off_t length);
|
|
int rbfs_fsync(int fildes);
|
|
off_t rbfs_lseek(int fildes, off_t offset, int whence);
|
|
ssize_t rbfs_read(int fildes, void *buf, size_t nbyte);
|
|
ssize_t rbfs_write(int fildes, const void *buf, size_t nbyte);
|
|
int rbfs_remove(const char *path);
|
|
int rbfs_rename(const char *old, const char *new);
|
|
int rbfs_modtime(const char *path, time_t modtime);
|
|
off_t rbfs_ffilesize(int fildes);
|
|
int rbfs_fsamefile(int fildes1, int fildes2);
|
|
int rbfs_relate(const char *path1, const char *path2);
|
|
bool rbfs_file_exists(const char *path);
|
|
#endif /* !FILEFUNCTIONS_DECLARED */
|
|
|
|
#if !defined(RB_FILESYSTEM_OS) && !defined (FILEFUNCTIONS_DEFINED)
|
|
#define rbfs_open(path, oflag, ...) rbfs_open(path, oflag)
|
|
#define rbfs_creat(path, mode) rbfs_creat(path)
|
|
#endif /* FILEFUNCTIONS_DEFINED */
|
|
|
|
#endif /* _FILESYSTEM_NATIVE__FILE_H_ */
|
|
#endif /* _FILE_H_ */
|
|
|
|
#ifdef _DIR_H_
|
|
#ifndef _FILESYSTEM_NATIVE__DIR_H_
|
|
#define _FILESYSTEM_NATIVE__DIR_H_
|
|
|
|
#define DIRENT dirent
|
|
struct dirent;
|
|
|
|
struct dirinfo_native
|
|
{
|
|
unsigned int attr;
|
|
off_t size;
|
|
uint16_t wrtdate;
|
|
uint16_t wrttime;
|
|
};
|
|
|
|
typedef struct {} DIR;
|
|
|
|
#ifndef DIRFUNCTIONS_DECLARED
|
|
#define __MKDIR_MODE_ARG
|
|
|
|
#ifdef RB_FILESYSTEM_OS
|
|
#define DIRFUNCTIONS_DEFINED
|
|
#endif
|
|
|
|
DIR * rbfs_opendir(const char *dirname);
|
|
struct dirent * rbfs_readdir(DIR *dirp);
|
|
int rbfs_readdir_r(DIR *dirp, struct dirent *entry,
|
|
struct dirent **result);
|
|
void rbfs_rewinddir(DIR *dirp);
|
|
int rbfs_closedir(DIR *dirp);
|
|
int rbfs_mkdir(const char *path);
|
|
int rbfs_rmdir(const char *path);
|
|
int rbfs_samedir(DIR *dirp1, DIR *dirp2);
|
|
bool rbfs_dir_exists(const char *dirname);
|
|
|
|
struct dirinfo rbfs_dir_get_info(DIR *dirp, struct DIRENT *entry);
|
|
const char * rbfs_root_realpath(void);
|
|
#endif /* !DIRFUNCTIONS_DECLARED */
|
|
|
|
#endif /* _FILESYSTEM_NATIVE__DIR_H_ */
|
|
#endif /* _DIR_H_ */
|