FreeCalypso > hg > fc-magnetite
view src/cs/drivers/drv_app/ffs/board/tffs.h @ 624:012028896cfb
FFS dev.c, Leonardo target: Fujitsu MB84VF5F5F4J2 #if 0'ed out
The FFS code we got from TI/Openmoko had a stanza for "Fujitsu MB84VF5F5F4J2
stacked device", using a fake device ID code that would need to be patched
manually into cfgffs.c (suppressing and overriding autodetection) and using
an FFS base address in the nCS2 bank, indicating that this FFS config was
probably meant for the MCP version of Leonardo which allows for 16 MiB flash
with a second bank on nCS2.
We previously had this FFS config stanza conditionalized under
CONFIG_TARGET_LEONARDO because the base address contained therein is invalid
for other targets, but now that we actually have a Leonardo build target in
FC Magnetite, I realize that the better approach is to #if 0 out this stanza
altogether: it is already non-functional because it uses a fake device ID
code, thus it is does not add support for more Leonardo board variants,
instead it is just noise.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 22 Dec 2019 21:24:29 +0000 |
parents | 945cf7f506b2 |
children |
line wrap: on
line source
/****************************************************************************** * Flash File System (ffs) * Idea, design and coding by Mads Meisner-Jensen, mmj@ti.com * * ffs test scaffold/framework * * $Id: tffs.h 1.7.1.15 Fri, 19 Dec 2003 12:00:13 +0100 tsj $ * ******************************************************************************/ #include "ffs/ffs.h" /****************************************************************************** * Compile Defines ******************************************************************************/ // Maximum number of parameters for a test case #define FFS_TESTCASE_PARAMS_MAX 2 // Maximum length of a test case name #define FFS_TESTCASE_NAME_MAX 11 /****************************************************************************** * Types used in test framework ******************************************************************************/ struct ffs_state_s { int inodes_used; // taken from bstat entry for inodes block int inodes_lost; // taken from bstat entry for inodes block int objects_free; // taken from bstat entry for inodes block int objects_total; // accumulated number of valid objects int bytes_used; // accumulated over all blocks int bytes_lost; // accumulated over all blocks int bytes_free; // accumulated over all blocks int blocks_free; // accumulated over all blocks }; struct ffs_params_s { // Actual parameters int filename_max; int pathdepth_max; int inodes_max; int bytes_max; int numblocks; int atomsize; int blocks_free_min; // Pseudo parameters int block_size; // size of each block int bytes_avail; // size of available data space int data_blocks; // number of blocks available for data storage }; struct this_test_s { char name[FFS_TESTCASE_NAME_MAX]; // name of currently executing test case int numcalls; // total number of ffs function calls so far }; /****************************************************************************** * Types used in test cases ******************************************************************************/ typedef int (*pf_t)(int, int); enum TEST_CASE_FLAGS { IT = 0x01, // test case is runnable in target PC = 0x02, // test case is runnable on PC RND = 0x04 // test case is randomly runnable }; struct testcase_s { char *name; int flags; pf_t function; char *comment; }; struct test_file_s { const char *name; char *data; int size; }; extern char *ffs_strerror(effs_t error); /****************************************************************************** * Globals ******************************************************************************/ extern struct ffs_params_s param; extern struct dir_s dir; extern struct stat_s stat; extern struct xstat_s xstat; extern int error; extern int smallbuf_size; extern char *smallbuf; extern int bigbuf_size; extern char *bigbuf; /****************************************************************************** * Functions ******************************************************************************/ void test_listall(void); int test_run(char *testname); void test_init(int keepgoing); void test_exit(void); void test_begin(char *name, int *params); void test_end(struct this_test_s *test, int n); void test_error(struct this_test_s *test, int n); int test_expect(int error, int xerror); int test_expect_ok(int n); int test_expect_equal(int n, int xn); int test_expect_not_equal(int n, int xn); int test_expect_greater_than(int n, int xn); int test_expect_data(const void *data1, const void *data2, int size); int test_expect_file(const char *name, const void *data, int size); int test_expect_state(struct ffs_state_s *old, struct ffs_state_s *new); int test_expect_objects(struct ffs_state_s *old, struct ffs_state_s *new); int test_ffs_params_get(void); int test_ffs_state_get(struct ffs_state_s *s); void test_state_print(struct ffs_state_s *state); void test_state_objects_print(struct ffs_state_s *old, struct ffs_state_s *new); void test_state_bytes_print(struct ffs_state_s *old, struct ffs_state_s *new); void test_ffs_state_copy(struct ffs_state_s *dst, struct ffs_state_s *src); void test_statistics_print(void); #define expect(error, xerror) if (test_expect(error, xerror)) return 1; #define expect_ok(error) if (test_expect_ok(error)) return 1; #define expect_eq(n, xnum) if (test_expect_equal(n, xnum)) return 1; #define expect_ne(n, xnum) if (test_expect_not_equal(n, xnum)) return 1; #define expect_gt(n, xnum) if (test_expect_greater_than(n, xnum)) return 1; #if 0 // This does NOT work when <addr, size> is macro-expanded! #define expect_file(name, addr, size) \ if (test_expect_file(name, addr, size)) return 1; #endif /****************************************************************************** * Test (blocking) versions of FFS API functions ******************************************************************************/ effs_t tffs_fcreate(const char *name, void *addr, int size); effs_t tffs_fupdate(const char *name, void *addr, int size); effs_t tffs_fwrite(const char *name, void *addr, int size); effs_t tffs_file_write(const char *name, void *addr, int size, uint16 option); int tffs_fread(const char *name, void *addr, int size); int tffs_file_read(const char *name, void *addr, int size); effs_t tffs_mkdir(const char *name); int tffs_opendir(const char *name, struct dir_s *dir); int tffs_readdir (struct dir_s *dir, char *name, int8 size); effs_t tffs_symlink(const char *name, const char *actualpath); int tffs_readlink(const char *name, char *addr, int size); int tffs_rename(const char *oldname, const char *newname); effs_t tffs_stat(const char *name, struct stat_s *stat); effs_t tffs_xstat(const char *name, struct xstat_s *stat); effs_t tffs_fstat(fd_t fdi, struct stat_s *stat); effs_t tffs_xfstat(fd_t fdi, struct xstat_s *stat); effs_t tffs_linkstat(const char *name, struct stat_s *stat); effs_t tffs_lstat(const char *name, struct stat_s *stat); effs_t tffs_xlstat(const char *name, struct xstat_s *stat); effs_t tffs_remove(const char *name); effs_t tffs_fcontrol(const char *pathname, int8 action, uint16 param); effs_t tffs_query(int8 query, void *p); effs_t tffs_preformat(uint16 magic); effs_t tffs_format(const char *name, uint16 magic); effs_t tffs_initialize(void); effs_t tffs_exit(void); fd_t tffs_open(const char *pathname, ffs_options_t options); effs_t tffs_close(fd_t fdi); int tffs_write(fd_t fdi, void *addr, int size); int tffs_read(fd_t fdi, void *addr, int size); int tffs_seek(fd_t fdi, int offset, int whence); effs_t tffs_truncate(const char *path, offset_t length); effs_t tffs_ftruncate(fd_t fdi, offset_t length); effs_t tffs_fdatasync(fd_t fdi); /****************************************************************************** * Platform/OS dependent functions ******************************************************************************/ // Defined in task.c #if (WITH_TFFS == 1) extern void tffs_delay(int delay); extern int tffs_wait(const char *name); extern struct ffs_cnfpath_s *tffs_cnfpath_get(void); extern UINT32 tffs_timer_begin(void); extern UINT32 tffs_timer_end(UINT32 time_begin); #else #define tffs_delay(delay) #endif