X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=lwext4%2Fext4.h;h=abf6a3583f7003cdb2e9702d108df4a6f8f4c74f;hb=d15d9a8f91b8cf071c8d635d4643789104a3dcd8;hp=65f2774077a6b6ae1440ff143ec9a072794a55ed;hpb=d68a48bfeb7f77b46c64aa9dab1f93448c3ad601;p=lwext4.git diff --git a/lwext4/ext4.h b/lwext4/ext4.h index 65f2774..abf6a35 100644 --- a/lwext4/ext4.h +++ b/lwext4/ext4.h @@ -47,46 +47,53 @@ /********************************FILE OPEN FLAGS*****************************/ -#ifndef O_RDONLY -#define O_RDONLY 00 -#endif +#if CONFIG_HAVE_OWN_OFLAGS -#ifndef O_WRONLY -#define O_WRONLY 01 -#endif + #ifndef O_RDONLY + #define O_RDONLY 00 + #endif -#ifndef O_RDWR -#define O_RDWR 02 -#endif + #ifndef O_WRONLY + #define O_WRONLY 01 + #endif -#ifndef O_CREAT -#define O_CREAT 0100 -#endif + #ifndef O_RDWR + #define O_RDWR 02 + #endif -#ifndef O_EXCL -#define O_EXCL 0200 -#endif + #ifndef O_CREAT + #define O_CREAT 0100 + #endif -#ifndef O_TRUNC -#define O_TRUNC 01000 -#endif + #ifndef O_EXCL + #define O_EXCL 0200 + #endif -#ifndef O_APPEND -#define O_APPEND 02000 -#endif + #ifndef O_TRUNC + #define O_TRUNC 01000 + #endif + + #ifndef O_APPEND + #define O_APPEND 02000 + #endif /********************************FILE SEEK FLAGS*****************************/ -#ifndef SEEK_SET -#define SEEK_SET 0 -#endif + #ifndef SEEK_SET + #define SEEK_SET 0 + #endif -#ifndef SEEK_CUR -#define SEEK_CUR 1 -#endif + #ifndef SEEK_CUR + #define SEEK_CUR 1 + #endif + + #ifndef SEEK_END + #define SEEK_END 2 + #endif -#ifndef SEEK_END -#define SEEK_END 2 +#else + #include + #include #endif /********************************OS LOCK INFERFACE***************************/ @@ -123,15 +130,6 @@ typedef struct ext4_file { } ext4_file; /*****************************DIRECTORY DESCRIPTOR***************************/ -/**@brief Directory entry types. Copy from ext4_types.h*/ -enum { EXT4_DIRENTRY_UNKNOWN = 0, - EXT4_DIRENTRY_REG_FILE, - EXT4_DIRENTRY_DIR, - EXT4_DIRENTRY_CHRDEV, - EXT4_DIRENTRY_BLKDEV, - EXT4_DIRENTRY_FIFO, - EXT4_DIRENTRY_SOCK, - EXT4_DIRENTRY_SYMLINK }; /**@brief Directory entry descriptor. Copy from ext4_types.h*/ typedef struct { @@ -297,7 +295,7 @@ int ext4_fopen(ext4_file *f, const char *path, const char *flags); * /my_partition/my_file * @param flags open file flags * @return standard error code*/ -int ext4_fopen2(ext4_file *f, const char *path, int flags, bool file_expect); +int ext4_fopen2(ext4_file *f, const char *path, int flags); /**@brief File close function. * @param f file handle @@ -365,6 +363,14 @@ int ext4_fsymlink(const char *target, const char *path); int ext4_readlink(const char *path, char *buf, size_t bufsize, size_t *rcnt); +int ext4_setxattr(const char *path, const char *name, size_t name_len, + const void *data, size_t data_size, bool replace); +int ext4_getxattr(const char *path, const char *name, size_t name_len, + void *buf, size_t buf_size, size_t *data_size); +int ext4_listxattr(const char *path, char *list, size_t size, size_t *ret_size); +int ext4_removexattr(const char *path, const char *name, size_t name_len); + + /*********************************DIRECTORY OPERATION***********************/ /**@brief Recursive directory remove. @@ -394,6 +400,10 @@ int ext4_dir_close(ext4_dir *d); * @return directory entry id (NULL if no entry)*/ const ext4_direntry *ext4_dir_entry_next(ext4_dir *d); +/**@brief Rewine directory entry offset. + * @param d directory handle*/ +void ext4_dir_entry_rewind(ext4_dir *d); + #endif /* EXT4_H_ */ /**