m2mb API docs  30.00.007
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 /* Global typedefs ==============================================================================*/
82 struct M2MB_STAT
83 {
84  DEV_T st_dev; /* Device ID */
85  INODE_T st_ino; /* Inode number */
86  MODE_T st_mode; /* File mode */
87  NLINK_T st_nlink; /* Number of links */
88  SIZE_T st_size; /* File size in bytes */
89  UINT16 st_uid; /* Owner ID */
90  UINT16 st_gid; /* Group ID */
91  UINT32 st_rdev; /* Major & Minor device number */
92  TIME_T st_atime; /* Time of last access */
93  TIME_T st_mtime; /* Time of last modification */
94  TIME_T st_ctime; /* Time of last status change */
95 };
96 
98 {
99  UINT32 f_bsize; /* file system block size */
100  UINT32 f_frsize; /* fragment size */
101  UINT32 f_blocks; /* size of fs in f_frsize units */
102  UINT32 f_bfree; /* number of free blocks */
103  UINT32 f_bavail; /* number free blocks for unprivileged users */
104 };
105 
106 /* This struct must be used only as a pointer. The actual structure is opaque to users. */
107 typedef struct M2MB_DIR_TAG M2MB_DIR_T;
108 
110 {
111  CHAR d_name[1024]; /* filename */
112 };
113 
114 
115 /* Global functions =============================================================================*/
116 /*-----------------------------------------------------------------------------------------------*/
171 /*-----------------------------------------------------------------------------------------------*/
172 INT32 m2mb_fs_open( const CHAR *path, INT32 oflag, ... );
173 
174 /*-----------------------------------------------------------------------------------------------*/
202 /*-----------------------------------------------------------------------------------------------*/
203 SSIZE_T m2mb_fs_read( INT32 fd, void *buf, SIZE_T nbyte );
204 
205 /*-----------------------------------------------------------------------------------------------*/
233 /*-----------------------------------------------------------------------------------------------*/
234 SSIZE_T m2mb_fs_write( INT32 fd, const void *buf, SIZE_T nbyte );
235 
236 /*-----------------------------------------------------------------------------------------------*/
259 /*-----------------------------------------------------------------------------------------------*/
260 INT32 m2mb_fs_close( INT32 fd );
261 
262 /*-----------------------------------------------------------------------------------------------*/
294 OFF_T m2mb_fs_lseek( INT32 fd, OFF_T offset, INT32 whence );
295 
296 /*-----------------------------------------------------------------------------------------------*/
321 /*-----------------------------------------------------------------------------------------------*/
322 INT32 m2mb_fs_stat( const CHAR *path, struct M2MB_STAT *buf );
323 
324 /*-----------------------------------------------------------------------------------------------*/
349 /*-----------------------------------------------------------------------------------------------*/
350 INT32 m2mb_fs_fstat( INT32 fd, struct M2MB_STAT *buf );
351 
352 /*-----------------------------------------------------------------------------------------------*/
375 /*-----------------------------------------------------------------------------------------------*/
376 INT32 m2mb_fs_unlink( const CHAR *path );
377 
378 /*-----------------------------------------------------------------------------------------------*/
403 /*-----------------------------------------------------------------------------------------------*/
404 INT32 m2mb_fs_truncate( const CHAR *path, OFF_T length );
405 
406 /*-----------------------------------------------------------------------------------------------*/
432 /*-----------------------------------------------------------------------------------------------*/
433 INT32 m2mb_fs_mkdir( const CHAR *path, MODE_T mode );
434 
435 /*-----------------------------------------------------------------------------------------------*/
459 /*-----------------------------------------------------------------------------------------------*/
460 INT32 m2mb_fs_rmdir( const CHAR *path );
461 
462 /*-----------------------------------------------------------------------------------------------*/
486 /*-----------------------------------------------------------------------------------------------*/
487 M2MB_DIR_T *m2mb_fs_opendir( const CHAR *name );
488 
489 /*-----------------------------------------------------------------------------------------------*/
517 /*-----------------------------------------------------------------------------------------------*/
518 struct M2MB_DIRENT *m2mb_fs_readdir( M2MB_DIR_T *dirp );
519 
520 /*-----------------------------------------------------------------------------------------------*/
544 /*-----------------------------------------------------------------------------------------------*/
545 INT32 m2mb_fs_closedir( M2MB_DIR_T *dirp );
546 
547 /*-----------------------------------------------------------------------------------------------*/
572 /*-----------------------------------------------------------------------------------------------*/
573 INT32 m2mb_fs_statvfs( const CHAR *path, struct M2MB_STATVFS *buf );
574 
575 
576 
577 #endif /* M2M_M2MB_FS_POSIX_H */
578 
m2mb_fs_unlink
INT32 m2mb_fs_unlink(const CHAR *path)
Delete file.
M2MB_STATVFS
Definition: m2mb_fs_posix.h:97
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:82
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:109