m2mb API docs  25.30.003
m2mb API sets documentation
m2mb_fs_posix.h
Go to the documentation of this file.
1 /*===============================================================================================*/
2 /* >>> Copyright (C) Telit Communications S.p.A. Italy All Rights Reserved. <<< */
24 #ifndef M2M_M2MB_FS_POSIX_H
25 #define M2M_M2MB_FS_POSIX_H
26 
27 
28 
29 /* Global declarations ==========================================================================*/
30 /* Files open modes */
31 #define M2MB_O_RDONLY 00
32 #define M2MB_O_WRONLY 01
33 #define M2MB_O_RDWR 02
34 #define M2MB_O_LARGE 010
35 #define M2MB_O_CREAT 0100
36 #define M2MB_O_EXCL 0200
37 #define M2MB_O_NOCTTY 0400
38 #define M2MB_O_TRUNC 01000
39 #define M2MB_O_APPEND 02000
40 
41 #ifndef M2M_M2MB_FS_STDIO_H
42 /* File seek flags */
43 #define M2MB_SEEK_SET 0 /* Seek from beginning of file */
44 #define M2MB_SEEK_CUR 1 /* Seek from current position */
45 #define M2MB_SEEK_END 2 /* Seek from end of file */
46 #endif /* M2M_M2MB_FS_STDIO_H */
47 
48 /* File and directory permissions */
49 /* "User" permissions */
50 #define M2MB_S_IRUSR 0400 /* User has Read permission */
51 #define M2MB_S_IWUSR 0200 /* User has Write permission */
52 #define M2MB_S_IXUSR 0100 /* User has eXecute permission*/
53 #define M2MB_S_IRWXU 0700
54 /* "Group" permissions */
55 #define M2MB_S_IRGRP 0040 /* Group has Read permission */
56 #define M2MB_S_IWGRP 0020 /* Group has Write permission */
57 #define M2MB_S_IXGRP 0010 /* Group has eXecute permission */
58 #define M2MB_S_IRWXG 0070
59 /* "Other" permissions */
60 #define M2MB_S_IROTH 0004 /* Others has Read permission */
61 #define M2MB_S_IWOTH 0002 /* Others has Write permission */
62 #define M2MB_S_IXOTH 0001 /* Others has eXecutepermission */
63 #define M2MB_S_IRWXO 0007
64 /* High bits */
65 #define S_ISUID 04000 /* Set UID on execution */
66 #define S_ISGID 02000 /* Set GID on execution */
67 #define S_ISVTX 01000 /* Sticky */
68 /* Combinations */
69 #define M2MB_ACCESSPERMS 0777
70 #define M2MB_ALLPERMS 0777
71 
72 /* File system elements modes */
73 //#define M2MB_S_IFIFO 0010000 /* FIFO */
74 //#define M2MB_S_IFCHR 0020000 /* Character device */
75 #define M2MB_S_IFDIR 0040000 /* Directory */
76 //#define M2MB_S_IFBLK 0060000 /* Block device */
77 #define M2MB_S_IFREG 0100000 /* Regular file */
78 //#define M2MB_S_IFLNK 0120000 /* Symlink */
79 //#define M2MB_S_IFSOCK 0140000 /* Socket */
80 
81 #define M2MB_S_ISDIR( tempStat ) ( ( tempStat.st_mode & M2MB_S_IFDIR ) == M2MB_S_IFDIR )
82 #define M2MB_S_ISREG( tempStat ) ( ( tempStat.st_mode & M2MB_S_IFDIR ) == M2MB_S_IFDIR )
83 /* Global typedefs ==============================================================================*/
84 struct M2MB_STAT
85 {
86  DEV_T st_dev; /* Device ID */
87  INODE_T st_ino; /* Inode number */
88  MODE_T st_mode; /* File mode */
89  NLINK_T st_nlink; /* Number of links */
90  SIZE_T st_size; /* File size in bytes */
91  UINT16 st_uid; /* Owner ID */
92  UINT16 st_gid; /* Group ID */
93  UINT32 st_rdev; /* Major & Minor device number */
94  TIME_T st_atime; /* Time of last access */
95  TIME_T st_mtime; /* Time of last modification */
96  TIME_T st_ctime; /* Time of last status change */
97 };
98 
100 {
101  UINT32 f_bsize; /* file system block size */
102  UINT32 f_frsize; /* fragment size */
103  UINT32 f_blocks; /* size of fs in f_frsize units */
104  UINT32 f_bfree; /* number of free blocks */
105  UINT32 f_bavail; /* number free blocks for unprivileged users */
106 };
107 
108 /* This struct must be used only as a pointer. The actual structure is opaque to users. */
109 typedef struct M2MB_DIR_TAG M2MB_DIR_T;
110 
112 {
113  CHAR d_name[1024]; /* filename */
114 };
115 
116 
117 /* Global functions =============================================================================*/
118 /*-----------------------------------------------------------------------------------------------*/
173 /*-----------------------------------------------------------------------------------------------*/
174 INT32 m2mb_fs_open( const CHAR *path, INT32 oflag, ... );
175 
176 /*-----------------------------------------------------------------------------------------------*/
204 /*-----------------------------------------------------------------------------------------------*/
205 SSIZE_T m2mb_fs_read( INT32 fd, void *buf, SIZE_T nbyte );
206 
207 /*-----------------------------------------------------------------------------------------------*/
235 /*-----------------------------------------------------------------------------------------------*/
236 SSIZE_T m2mb_fs_write( INT32 fd, const void *buf, SIZE_T nbyte );
237 
238 /*-----------------------------------------------------------------------------------------------*/
261 /*-----------------------------------------------------------------------------------------------*/
262 INT32 m2mb_fs_close( INT32 fd );
263 
264 /*-----------------------------------------------------------------------------------------------*/
296 OFF_T m2mb_fs_lseek( INT32 fd, OFF_T offset, INT32 whence );
297 
298 /*-----------------------------------------------------------------------------------------------*/
323 /*-----------------------------------------------------------------------------------------------*/
324 INT32 m2mb_fs_stat( const CHAR *path, struct M2MB_STAT *buf );
325 
326 /*-----------------------------------------------------------------------------------------------*/
351 /*-----------------------------------------------------------------------------------------------*/
352 INT32 m2mb_fs_fstat( INT32 fd, struct M2MB_STAT *buf );
353 
354 /*-----------------------------------------------------------------------------------------------*/
377 /*-----------------------------------------------------------------------------------------------*/
378 INT32 m2mb_fs_unlink( const CHAR *path );
379 
380 /*-----------------------------------------------------------------------------------------------*/
405 /*-----------------------------------------------------------------------------------------------*/
406 INT32 m2mb_fs_truncate( const CHAR *path, OFF_T length );
407 
408 /*-----------------------------------------------------------------------------------------------*/
434 /*-----------------------------------------------------------------------------------------------*/
435 INT32 m2mb_fs_mkdir( const CHAR *path, MODE_T mode );
436 
437 /*-----------------------------------------------------------------------------------------------*/
461 /*-----------------------------------------------------------------------------------------------*/
462 INT32 m2mb_fs_rmdir( const CHAR *path );
463 
464 /*-----------------------------------------------------------------------------------------------*/
488 /*-----------------------------------------------------------------------------------------------*/
489 M2MB_DIR_T *m2mb_fs_opendir( const CHAR *name );
490 
491 /*-----------------------------------------------------------------------------------------------*/
519 /*-----------------------------------------------------------------------------------------------*/
520 struct M2MB_DIRENT *m2mb_fs_readdir( M2MB_DIR_T *dirp );
521 
522 /*-----------------------------------------------------------------------------------------------*/
546 /*-----------------------------------------------------------------------------------------------*/
547 INT32 m2mb_fs_closedir( M2MB_DIR_T *dirp );
548 
549 /*-----------------------------------------------------------------------------------------------*/
574 /*-----------------------------------------------------------------------------------------------*/
575 INT32 m2mb_fs_statvfs( const CHAR *path, struct M2MB_STATVFS *buf );
576 
577 
578 
579 #endif /* M2M_M2MB_FS_POSIX_H */
580 
m2mb_fs_unlink
INT32 m2mb_fs_unlink(const CHAR *path)
Delete file.
M2MB_STATVFS
Definition: m2mb_fs_posix.h:99
m2mb_fs_fstat
INT32 m2mb_fs_fstat(INT32 fd, struct M2MB_STAT *buf)
File status.
m2mb_fs_lseek
OFF_T m2mb_fs_lseek(INT32 fd, OFF_T offset, INT32 whence)
Move file offset.
m2mb_fs_write
SSIZE_T m2mb_fs_write(INT32 fd, const void *buf, SIZE_T nbyte)
Write file.
m2mb_fs_opendir
M2MB_DIR_T * m2mb_fs_opendir(const CHAR *name)
Open directory as stream.
m2mb_fs_stat
INT32 m2mb_fs_stat(const CHAR *path, struct M2MB_STAT *buf)
File status.
m2mb_fs_closedir
INT32 m2mb_fs_closedir(M2MB_DIR_T *dirp)
Close directory as stream.
M2MB_STAT
Definition: m2mb_fs_posix.h:84
m2mb_fs_truncate
INT32 m2mb_fs_truncate(const CHAR *path, OFF_T length)
Truncate file.
m2mb_fs_open
INT32 m2mb_fs_open(const CHAR *path, INT32 oflag,...)
Open file.
m2mb_fs_close
INT32 m2mb_fs_close(INT32 fd)
Close file.
m2mb_fs_read
SSIZE_T m2mb_fs_read(INT32 fd, void *buf, SIZE_T nbyte)
Read file.
m2mb_fs_mkdir
INT32 m2mb_fs_mkdir(const CHAR *path, MODE_T mode)
Create directory.
m2mb_fs_rmdir
INT32 m2mb_fs_rmdir(const CHAR *path)
Remove directory.
m2mb_fs_statvfs
INT32 m2mb_fs_statvfs(const CHAR *path, struct M2MB_STATVFS *buf)
File system statistics.
m2mb_fs_readdir
struct M2MB_DIRENT * m2mb_fs_readdir(M2MB_DIR_T *dirp)
Read directory as stream.
M2MB_DIRENT
Definition: m2mb_fs_posix.h:111