xref: /nrf52832-nimble/rt-thread/components/dfs/filesystems/jffs2/porting.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero #ifndef _PORTING_H
2*10465441SEvalZero #define _PORTING_H
3*10465441SEvalZero 
4*10465441SEvalZero #include "jffs2_config.h"
5*10465441SEvalZero /* the following should be same with os_sys_stat.h */
6*10465441SEvalZero #define JFFS2_S_IFMT	 0x000003FF
7*10465441SEvalZero #define JFFS2_S_IFDIR	 (1<<0)
8*10465441SEvalZero #define JFFS2_S_IFREG	 (1<<3)
9*10465441SEvalZero 
10*10465441SEvalZero struct jffs2_fs_info
11*10465441SEvalZero {
12*10465441SEvalZero 	unsigned sector_size; /* a erasing block size*/
13*10465441SEvalZero 	unsigned nr_blocks; /* number of blocks in flash */
14*10465441SEvalZero 	unsigned free_size;
15*10465441SEvalZero };
16*10465441SEvalZero 
17*10465441SEvalZero struct jffs2_stat {
18*10465441SEvalZero     unsigned long   st_mode;     /* File mode */
19*10465441SEvalZero     unsigned int    st_ino;      /* File serial number */
20*10465441SEvalZero     unsigned int    st_dev;      /* ID of device containing file */
21*10465441SEvalZero     unsigned short  st_nlink;    /* Number of hard links */
22*10465441SEvalZero     unsigned short  st_uid;      /* User ID of the file owner */
23*10465441SEvalZero     unsigned short  st_gid;      /* Group ID of the file's group */
24*10465441SEvalZero     long  st_size;     /* File size (regular files only) */
25*10465441SEvalZero     long  st_atime;    /* Last access time */
26*10465441SEvalZero     long  st_mtime;    /* Last data modification time */
27*10465441SEvalZero     long  st_ctime;    /* Last file status change time */
28*10465441SEvalZero };
29*10465441SEvalZero 
30*10465441SEvalZero struct jffs2_dirent
31*10465441SEvalZero {
32*10465441SEvalZero #ifdef CYGPKG_FILEIO_DIRENT_DTYPE
33*10465441SEvalZero 
34*10465441SEvalZero 	unsigned long  d_type; // Only supported with FATFS, RAMFS, ROMFS,
35*10465441SEvalZero 	// and JFFS2.
36*10465441SEvalZero 	// d_type is not part of POSIX so
37*10465441SEvalZero 	// should be used with caution.
38*10465441SEvalZero #endif
39*10465441SEvalZero 	char        d_name[JFFS2_NAME_MAX+1];
40*10465441SEvalZero };
41*10465441SEvalZero 
42*10465441SEvalZero extern cyg_fileops jffs2_fileops;
43*10465441SEvalZero extern cyg_fileops jffs2_dirops;
44*10465441SEvalZero extern struct cyg_fstab_entry jffs2_fste;
45*10465441SEvalZero 
46*10465441SEvalZero time_t jffs2_get_timestamp(void);
47*10465441SEvalZero void jffs2_get_info_from_sb(void * data, struct jffs2_fs_info * info);
48*10465441SEvalZero int jffs2_porting_stat(cyg_mtab_entry * mte, cyg_dir dir, const char *name,
49*10465441SEvalZero 		      void * stat_buf);
50*10465441SEvalZero 
51*10465441SEvalZero #endif
52