yaffs: Add xattrib support
[yaffs2.git] / direct / yaffsfs.h
index fe4eff5304fe84ce9fe2642116f1a1f110897ed0..18cc22ff2e525ef0e6bd8498cbd72a90f8c0db58 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * YAFFS: Yet another Flash File System . A NAND-flash specific file system. 
  *
- * Copyright (C) 2002-2007 Aleph One Ltd.
+ * Copyright (C) 2002-2010 Aleph One Ltd.
  *   for Toby Churchill Ltd and Brightstar Engineering
  *
  * Created by Charles Manning <charles@aleph1.co.uk>
@@ -39,7 +39,7 @@
 #ifdef CONFIG_YAFFSFS_PROVIDE_VALUES
 
 #ifndef O_RDONLY
-#define O_RDONLY       00
+#define O_RDONLY        00
 #endif
 
 #ifndef O_WRONLY
 #define ENOTEMPTY 39
 #endif
 
+#ifndef ENAMETOOLONG
+#define ENAMETOOLONG 36
+#endif
+
 #ifndef ENOMEM
 #define ENOMEM 12
 #endif
@@ -216,7 +220,9 @@ struct yaffs_stat{
 
 int yaffs_open(const YCHAR *path, int oflag, int mode) ;
 int yaffs_close(int fd) ;
-int yaffs_flush(int fd) ;
+int yaffs_fsync(int fd) ;
+int yaffs_fdatasync(int fd) ;
+int yaffs_flush(int fd) ; /* same as yaffs_fsync() */
 
 int yaffs_access(const YCHAR *path, int amode);
 
@@ -240,6 +246,26 @@ int yaffs_stat(const YCHAR *path, struct yaffs_stat *buf) ;
 int yaffs_lstat(const YCHAR *path, struct yaffs_stat *buf) ;
 int yaffs_fstat(int fd, struct yaffs_stat *buf) ;
 
+int yaffs_setxattr(const char *path, const char *name, const void *data, int size, int flags);
+int yaffs_fsetxattr(int fd, const char *name, const void *data, int size, int flags);
+
+int yaffs_getxattr(const char *path, const char *name, void *data, int size);
+int yaffs_fgetxattr(int fd, const char *name, void *data, int size);
+
+int yaffs_removexattr(const char *path, const char *name);
+int yaffs_fremovexattr(int fd, const char *name);
+
+int yaffs_listxattr(const char *path, char *list, int size);
+int yaffs_flistxattr(int fd, char *list, int size);
+
+
+#ifdef CONFIG_YAFFS_WINCE
+
+int yaffs_set_wince_times(int fd, const unsigned *wctime, const unsigned *watime, const unsigned *wmtime);
+int yaffs_get_wince_times(int fd, unsigned *wctime, unsigned *watime, unsigned *wmtime);
+
+#endif
+
 int yaffs_chmod(const YCHAR *path, mode_t mode); 
 int yaffs_fchmod(int fd, mode_t mode); 
 
@@ -252,7 +278,11 @@ void yaffs_rewinddir(yaffs_DIR *dirp) ;
 int yaffs_closedir(yaffs_DIR *dirp) ;
 
 int yaffs_mount(const YCHAR *path) ;
+int yaffs_mount2(const YCHAR *path, int readOnly);
 int yaffs_unmount(const YCHAR *path) ;
+int yaffs_unmount2(const YCHAR *path, int force);
+int yaffs_remount(const YCHAR *path, int force, int readOnly);
+
 
 int yaffs_sync(const YCHAR *path) ;
 
@@ -265,7 +295,10 @@ int yaffs_mknod(const YCHAR *pathname, mode_t mode, dev_t dev);
 loff_t yaffs_freespace(const YCHAR *path);
 loff_t yaffs_totalspace(const YCHAR *path);
 
-void yaffs_initialise(yaffsfs_DeviceConfiguration *configList);
+int yaffs_inodecount(const YCHAR *path);
+
+
+
 
 int yaffs_StartUp(void);