File: stat.pxd

package info (click to toggle)
python-llfuse 1.4.1%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 3,152 kB
  • sloc: python: 1,976; ansic: 487; sh: 35; makefile: 19
file content (85 lines) | stat: -rw-r--r-- 2,142 bytes parent folder | download | duplicates (4)
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
from posix.types cimport (blkcnt_t, blksize_t, dev_t, gid_t, ino_t, mode_t,
                          nlink_t, off_t, time_t, uid_t)

IF UNAME_MACHINE in ('mips', 'mipsel'):
    cdef extern from "<sys/stat.h>" nogil:
        cdef struct struct_stat "stat":
            unsigned st_dev
            ino_t   st_ino
            mode_t  st_mode
            nlink_t st_nlink
            uid_t   st_uid
            gid_t   st_gid
            unsigned 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
            time_t  st_birthtime
ELSE:
    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
            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