+typedef struct s_pffs_fd {
+ u32 daddr; // data start address
+ u8 data_sec; // current data sector
+ u32 dptr; // data pointer
+ u32 iaddr; // index address
+ u16 len; // file size
+ char file[PFFS_MAX_FILENAME_SIZE+PFFS_MAX_FILENAME_SIZE]; // the file
+ u8 fn_size; // file name size
+ u8 mode; // mode, eg: write, read
+ t_pffs *pffs; // the pffs main struct
+} t_pffs_fd;
+
+/* function prototypes (only the ones applications should use!) */
+int pffs_flash_register(t_pffs *pffs,u32 base_addr,u32 *sec_addr,
+ u8 sec_num_data_min,u8 sec_num_data_max,
+ u8 sec_num_index0,u8 sec_num_index1,
+ int (*fw)(u32 addr,u16 *buf,int len),
+ int (*fr)(u32 addr,u16 *buf,int len),
+ int (*fe)(u32 addr));
+int pffs_init(t_pffs *pffs);
+int pffs_open(t_pffs *pffs,t_pffs_fd *fd,char *file,u8 mode);
+int pffs_write(t_pffs_fd *fd,u8 *buf,int len);
+int pffs_read(t_pffs_fd *fd,u8 *buf,int len);
+int pffs_lseek(t_pffs_fd *fd,u8 offset,int len);
+int pffs_close(t_pffs_fd *fd);
+int pffs_unlink(t_pffs_fd *fd,char *file);