xref: /nrf52832-nimble/rt-thread/components/dfs/include/dfs_posix.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  * Copyright (c) 2006-2018, RT-Thread Development Team
3*10465441SEvalZero  *
4*10465441SEvalZero  * SPDX-License-Identifier: Apache-2.0
5*10465441SEvalZero  *
6*10465441SEvalZero  * Change Logs:
7*10465441SEvalZero  * Date           Author       Notes
8*10465441SEvalZero  * 2009-05-27     Yi.qiu       The first version.
9*10465441SEvalZero  * 2010-07-18     Bernard      add stat and statfs structure definitions.
10*10465441SEvalZero  * 2011-05-16     Yi.qiu       Change parameter name of rename, "new" is C++ key word.
11*10465441SEvalZero  * 2017-12-27     Bernard      Add fcntl API.
12*10465441SEvalZero  * 2018-02-07     Bernard      Change the 3rd parameter of open/fcntl/ioctl to '...'
13*10465441SEvalZero  */
14*10465441SEvalZero 
15*10465441SEvalZero #ifndef __DFS_POSIX_H__
16*10465441SEvalZero #define __DFS_POSIX_H__
17*10465441SEvalZero 
18*10465441SEvalZero #include <dfs_file.h>
19*10465441SEvalZero 
20*10465441SEvalZero #ifdef __cplusplus
21*10465441SEvalZero extern "C" {
22*10465441SEvalZero #endif
23*10465441SEvalZero 
24*10465441SEvalZero typedef struct
25*10465441SEvalZero {
26*10465441SEvalZero     int fd;     /* directory file */
27*10465441SEvalZero     char buf[512];
28*10465441SEvalZero     int num;
29*10465441SEvalZero     int cur;
30*10465441SEvalZero } DIR;
31*10465441SEvalZero 
32*10465441SEvalZero /* directory api*/
33*10465441SEvalZero int mkdir(const char *path, mode_t mode);
34*10465441SEvalZero DIR *opendir(const char *name);
35*10465441SEvalZero struct dirent *readdir(DIR *d);
36*10465441SEvalZero long telldir(DIR *d);
37*10465441SEvalZero void seekdir(DIR *d, off_t offset);
38*10465441SEvalZero void rewinddir(DIR *d);
39*10465441SEvalZero int closedir(DIR* d);
40*10465441SEvalZero 
41*10465441SEvalZero /* file api*/
42*10465441SEvalZero int open(const char *file, int flags, ...);
43*10465441SEvalZero int close(int d);
44*10465441SEvalZero 
45*10465441SEvalZero #if defined(RT_USING_NEWLIB) && defined(_EXFUN)
46*10465441SEvalZero _READ_WRITE_RETURN_TYPE _EXFUN(read, (int __fd, void *__buf, size_t __nbyte));
47*10465441SEvalZero _READ_WRITE_RETURN_TYPE _EXFUN(write, (int __fd, const void *__buf, size_t __nbyte));
48*10465441SEvalZero #else
49*10465441SEvalZero int read(int fd, void *buf, size_t len);
50*10465441SEvalZero int write(int fd, const void *buf, size_t len);
51*10465441SEvalZero #endif
52*10465441SEvalZero 
53*10465441SEvalZero off_t lseek(int fd, off_t offset, int whence);
54*10465441SEvalZero int rename(const char *from, const char *to);
55*10465441SEvalZero int unlink(const char *pathname);
56*10465441SEvalZero int stat(const char *file, struct stat *buf);
57*10465441SEvalZero int fstat(int fildes, struct stat *buf);
58*10465441SEvalZero int fsync(int fildes);
59*10465441SEvalZero int fcntl(int fildes, int cmd, ...);
60*10465441SEvalZero int ioctl(int fildes, int cmd, ...);
61*10465441SEvalZero 
62*10465441SEvalZero /* directory api*/
63*10465441SEvalZero int rmdir(const char *path);
64*10465441SEvalZero int chdir(const char *path);
65*10465441SEvalZero char *getcwd(char *buf, size_t size);
66*10465441SEvalZero 
67*10465441SEvalZero /* file system api */
68*10465441SEvalZero int statfs(const char *path, struct statfs *buf);
69*10465441SEvalZero 
70*10465441SEvalZero int access(const char *path, int amode);
71*10465441SEvalZero int pipe(int fildes[2]);
72*10465441SEvalZero int mkfifo(const char *path, mode_t mode);
73*10465441SEvalZero 
74*10465441SEvalZero #ifdef __cplusplus
75*10465441SEvalZero }
76*10465441SEvalZero #endif
77*10465441SEvalZero 
78*10465441SEvalZero #endif
79