libc_stat.h 1.6 KB
Newer Older
B
bernard 已提交
1 2 3
#ifndef LIBC_STAT_H__
#define LIBC_STAT_H__

B
bernard 已提交
4 5 6 7 8 9
#include <rtconfig.h>

#ifdef RT_USING_NEWLIB
/* use header file of newlib */
#include <sys/stat.h>
#else
B
bernard 已提交
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
#define S_IFMT               00170000
#define S_IFSOCK             0140000
#define S_IFLNK              0120000
#define S_IFREG              0100000
#define S_IFBLK              0060000
#define S_IFDIR              0040000
#define S_IFCHR              0020000
#define S_IFIFO              0010000
#define S_ISUID              0004000
#define S_ISGID              0002000
#define S_ISVTX              0001000

#define S_ISLNK(m)           (((m) & S_IFMT) == S_IFLNK)
#define S_ISREG(m)           (((m) & S_IFMT) == S_IFREG)
#define S_ISDIR(m)           (((m) & S_IFMT) == S_IFDIR)
#define S_ISCHR(m)           (((m) & S_IFMT) == S_IFCHR)
#define S_ISBLK(m)           (((m) & S_IFMT) == S_IFBLK)
#define S_ISFIFO(m)          (((m) & S_IFMT) == S_IFIFO)
#define S_ISSOCK(m)          (((m) & S_IFMT) == S_IFSOCK)

#define S_IRWXU              00700
#define S_IRUSR              00400
#define S_IWUSR              00200
#define S_IXUSR              00100

#define S_IRWXG              00070
#define S_IRGRP              00040
#define S_IWGRP              00020
#define S_IXGRP              00010

#define S_IRWXO              00007
#define S_IROTH              00004
#define S_IWOTH              00002
#define S_IXOTH              00001

B
bernard 已提交
45 46 47 48 49 50 51 52 53 54 55 56 57
/* stat structure */
#include <stdint.h>
#include <time.h>

struct stat
{
    struct rt_device* st_dev;
    uint16_t st_mode;
    uint32_t st_size;
    time_t   st_mtime;
    uint32_t st_blksize;
};

B
bernard 已提交
58 59
#endif

B
bernard 已提交
60
#endif