17 #ifndef __JFFS2_OS_RTEMS_H__ 18 #define __JFFS2_OS_RTEMS_H__ 20 #include <asm/atomic.h> 22 #include <linux/compiler.h> 23 #include <linux/list.h> 24 #include <linux/pagemap.h> 25 #include <linux/stat.h> 26 #include <linux/types.h> 34 #include <rtems/jffs2.h> 35 #include <rtems/thread.h> 37 #define CONFIG_JFFS2_RTIME 39 #define CONFIG_JFFS2_ZLIB 44 static inline unsigned int full_name_hash(
const void *salt,
const unsigned char * name,
size_t len) {
49 hash = (hash << 4) | (hash >> 28);
56 #define jffs2_can_mark_obsolete(c) (1) 58 #define JFFS2_INODE_INFO(i) (&(i)->jffs2_i) 59 #define OFNI_EDONI_2SFFJ(f) ((struct _inode *) ( ((char *)f) - ((char *)(&((struct _inode *)NULL)->jffs2_i)) ) ) 61 #define ITIME(sec) (sec) 62 #define I_SEC(tv) (tv) 64 #define JFFS2_F_I_SIZE(f) (OFNI_EDONI_2SFFJ(f)->i_size) 65 #define JFFS2_F_I_MODE(f) (OFNI_EDONI_2SFFJ(f)->i_mode) 66 #define JFFS2_F_I_UID(f) (OFNI_EDONI_2SFFJ(f)->i_uid) 67 #define JFFS2_F_I_GID(f) (OFNI_EDONI_2SFFJ(f)->i_gid) 68 #define JFFS2_F_I_CTIME(f) (OFNI_EDONI_2SFFJ(f)->i_ctime) 69 #define JFFS2_F_I_MTIME(f) (OFNI_EDONI_2SFFJ(f)->i_mtime) 70 #define JFFS2_F_I_ATIME(f) (OFNI_EDONI_2SFFJ(f)->i_atime) 72 #define get_seconds() time(NULL) 86 unsigned short i_rdev;
95 struct _inode * i_cache_prev;
96 struct _inode * i_cache_next;
99 #define JFFS2_SB_INFO(sb) (&(sb)->jffs2_sb) 100 #define OFNI_BS_2SFFJ(c) ((struct super_block *) ( ((char *)c) - ((char *)(&((struct super_block *)NULL)->jffs2_sb)) ) ) 108 unsigned char s_gc_buffer[PAGE_CACHE_SIZE];
109 rtems_recursive_mutex s_mutex;
110 char s_name_buf[JFFS2_MAX_NAME_LEN];
113 #define sleep_on_spinunlock(wq, sl) spin_unlock(sl) 116 static inline bool jffs2_is_readonly(
struct jffs2_sb_info *c)
120 return sb->s_is_readonly;
123 static inline void jffs2_garbage_collect_trigger(
struct jffs2_sb_info *c)
136 void jffs2_iput(
struct _inode * i);
140 unsigned long offset,
unsigned long *priv);
141 void jffs2_gc_release_page(
struct jffs2_sb_info *c,
unsigned char *pg,
unsigned long *priv);
144 #define os_to_jffs2_mode(x) jffs2_from_os_mode(x) 145 static inline uint32_t jffs2_from_os_mode(uint32_t osmode)
147 return osmode & (S_IFMT | S_IRWXU | S_IRWXG | S_IRWXO);
150 static inline uint32_t jffs2_to_os_mode (uint32_t jmode)
152 return jmode & (S_IFMT | S_IRWXU | S_IRWXG | S_IRWXO);
157 int jffs2_flash_read(
struct jffs2_sb_info *c, cyg_uint32 read_buffer_offset,
158 const size_t size,
size_t * return_size,
unsigned char * write_buffer);
159 int jffs2_flash_write(
struct jffs2_sb_info *c, cyg_uint32 write_buffer_offset,
160 const size_t size,
size_t * return_size,
unsigned char * read_buffer);
161 int jffs2_flash_direct_writev(
struct jffs2_sb_info *c,
const struct iovec *vecs,
162 unsigned long count, loff_t to,
size_t *retlen);
166 struct _inode *jffs2_lookup(
struct _inode *dir_i,
const unsigned char *name,
size_t namelen);
167 int jffs2_create(
struct _inode *dir_i,
const char *d_name,
size_t d_namelen,
int mode);
168 int jffs2_mknod(
struct _inode *dir_i,
const unsigned char *d_name,
size_t d_namelen,
int mode,
const unsigned char *data,
size_t datalen);
169 int jffs2_link (
struct _inode *old_d_inode,
struct _inode *dir_i,
const unsigned char *d_name,
size_t d_namelen);
170 int jffs2_unlink(
struct _inode *dir_i,
struct _inode *d_inode,
const unsigned char *d_name,
size_t d_namelen);
171 int jffs2_rmdir (
struct _inode *dir_i,
struct _inode *d_inode,
const unsigned char *d_name,
size_t d_namelen);
172 int jffs2_rename (
struct _inode *old_dir_i,
struct _inode *d_inode,
const unsigned char *old_d_name,
size_t old_d_namelen,
173 struct _inode *new_dir_i,
const unsigned char *new_d_name,
size_t new_d_namelen);
176 static inline void jffs2_erase_pending_trigger(
struct jffs2_sb_info *c)
179 #ifndef CONFIG_JFFS2_FS_WRITEBUFFER 180 #define SECTOR_ADDR(x) ( ((unsigned long)(x) & ~(c->sector_size-1)) ) 181 #define jffs2_can_mark_obsolete(c) (1) 182 #define jffs2_is_writebuffered(c) (0) 183 #define jffs2_cleanmarker_oob(c) (0) 184 #define jffs2_write_nand_cleanmarker(c,jeb) (-EIO) 186 #define jffs2_flush_wbuf_pad(c) (c=c) 187 #define jffs2_flush_wbuf_gc(c, i) ({ (void)(c), (void) i, 0; }) 188 #define jffs2_nand_read_failcnt(c,jeb) do { ; } while(0) 189 #define jffs2_write_nand_badblock(c,jeb,p) (0) 190 #define jffs2_flash_setup(c) (0) 191 #define jffs2_nand_flash_cleanup(c) do {} while(0) 192 #define jffs2_wbuf_dirty(c) (0) 193 #define jffs2_flash_writev(a,b,c,d,e,f) jffs2_flash_direct_writev(a,b,c,d,e) 194 #define jffs2_wbuf_timeout NULL 195 #define jffs2_wbuf_process NULL 196 #define jffs2_nor_ecc(c) (0) 202 #define BUG_ON(x) do { if (unlikely(x)) BUG(); } while(0) Definition: nodelist.h:277
Definition: os-rtems.h:102
rtems_jffs2_trigger_garbage_collection trigger_garbage_collection
Trigger garbage collection operation.
Definition: jffs2.h:300
Definition: nodelist.h:251
Definition: os-rtems.h:74
Definition: jffs2_fs_sb.h:48
Definition: jffs2_fs_i.h:20
JFFS2 compressor control.
Definition: jffs2.h:367
unsigned size
Definition: tte.h:74
JFFS2 flash device control.
Definition: jffs2.h:249
#define NULL
Requests a GPIO pin group configuration.
Definition: bestcomm_api.h:77