#ifndef __LIBS_STAT_H__
|
|
#define __LIBS_STAT_H__
|
|
|
|
#include <defs.h>
|
|
|
|
struct stat {
|
|
uint32_t st_mode; // protection mode and file type
|
|
size_t st_nlinks; // number of hard links
|
|
size_t st_blocks; // number of blocks file is using
|
|
size_t st_size; // file size (bytes)
|
|
};
|
|
|
|
#define S_IFMT 070000 // mask for type of file
|
|
#define S_IFREG 010000 // ordinary regular file
|
|
#define S_IFDIR 020000 // directory
|
|
#define S_IFLNK 030000 // symbolic link
|
|
#define S_IFCHR 040000 // character device
|
|
#define S_IFBLK 050000 // block device
|
|
|
|
#define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG) // regular file
|
|
#define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR) // directory
|
|
#define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK) // symlink
|
|
#define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR) // char device
|
|
#define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK) // block device
|
|
|
|
#endif /* !__LIBS_STAT_H__ */
|
|
|