aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/tools/cython/Cython/Includes/posix/stat.pxd
blob: 7e57b1b0d4d8ab1c859e5b82492c34ad49fabfaa (plain) (blame)
1
2
3
4
5
6
7
8
9
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
from posix.types cimport (blkcnt_t, blksize_t, dev_t, gid_t, ino_t, mode_t, 
                          nlink_t, off_t, time_t, uid_t) 
 
 
cdef extern from "<sys/stat.h>" nogil:
    cdef struct struct_stat "stat": 
        dev_t   st_dev 
        ino_t   st_ino 
        mode_t  st_mode 
        nlink_t st_nlink 
        uid_t   st_uid 
        gid_t   st_gid 
        dev_t   st_rdev 
        off_t   st_size 
        blksize_t st_blksize 
        blkcnt_t st_blocks 
        time_t  st_atime 
        time_t  st_mtime 
        time_t  st_ctime 
 
        # st_birthtime exists on *BSD and OS X.
        # Under Linux, defining it here does not hurt. Compilation under Linux
        # will only (and rightfully) fail when attempting to use the field.
        time_t  st_birthtime

# POSIX prescribes including both <sys/stat.h> and <unistd.h> for these 
cdef extern from "<unistd.h>" nogil:
    int fchmod(int, mode_t) 
    int chmod(const char *, mode_t) 
 
    int fstat(int, struct_stat *) 
    int lstat(const char *, struct_stat *) 
    int stat(const char *, struct_stat *) 
 
    # Macros for st_mode 
    mode_t S_ISREG(mode_t) 
    mode_t S_ISDIR(mode_t) 
    mode_t S_ISCHR(mode_t) 
    mode_t S_ISBLK(mode_t) 
    mode_t S_ISFIFO(mode_t) 
    mode_t S_ISLNK(mode_t) 
    mode_t S_ISSOCK(mode_t) 
 
    mode_t S_IFMT 
    mode_t S_IFREG 
    mode_t S_IFDIR 
    mode_t S_IFCHR 
    mode_t S_IFBLK 
    mode_t S_IFIFO 
    mode_t S_IFLNK 
    mode_t S_IFSOCK 
 
    # Permissions 
    mode_t S_ISUID 
    mode_t S_ISGID 
    mode_t S_ISVTX 
 
    mode_t S_IRWXU 
    mode_t S_IRUSR 
    mode_t S_IWUSR 
    mode_t S_IXUSR 
 
    mode_t S_IRWXG 
    mode_t S_IRGRP 
    mode_t S_IWGRP 
    mode_t S_IXGRP 
 
    mode_t S_IRWXO 
    mode_t S_IROTH 
    mode_t S_IWOTH 
    mode_t S_IXOTH