]> gitweb.factorcode.org Git - factor.git/blob - basis/unix/statfs/macosx/macosx.factor
Switch to https urls
[factor.git] / basis / unix / statfs / macosx / macosx.factor
1 ! Copyright (C) 2008 Doug Coleman.
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: alien.c-types alien.syntax classes.struct literals
4 unix.ffi unix.types ;
5 IN: unix.statfs.macosx
6
7 CONSTANT: MNT_RDONLY  0x00000001
8 CONSTANT: MNT_SYNCHRONOUS 0x00000002
9 CONSTANT: MNT_NOEXEC  0x00000004
10 CONSTANT: MNT_NOSUID  0x00000008
11 CONSTANT: MNT_NODEV   0x00000010
12 CONSTANT: MNT_UNION   0x00000020
13 CONSTANT: MNT_ASYNC   0x00000040
14 CONSTANT: MNT_EXPORTED 0x00000100
15 CONSTANT: MNT_QUARANTINE  0x00000400
16 CONSTANT: MNT_LOCAL   0x00001000
17 CONSTANT: MNT_QUOTA   0x00002000
18 CONSTANT: MNT_ROOTFS  0x00004000
19 CONSTANT: MNT_DOVOLFS 0x00008000
20 CONSTANT: MNT_DONTBROWSE  0x00100000
21 CONSTANT: MNT_IGNORE_OWNERSHIP 0x00200000
22 CONSTANT: MNT_AUTOMOUNTED 0x00400000
23 CONSTANT: MNT_JOURNALED   0x00800000
24 CONSTANT: MNT_NOUSERXATTR 0x01000000
25 CONSTANT: MNT_DEFWRITE    0x02000000
26 CONSTANT: MNT_MULTILABEL  0x04000000
27 CONSTANT: MNT_NOATIME 0x10000000
28 ALIAS: MNT_UNKNOWNPERMISSIONS MNT_IGNORE_OWNERSHIP
29
30 CONSTANT: MNT_VISFLAGMASK
31     flags{
32         MNT_RDONLY MNT_SYNCHRONOUS MNT_NOEXEC
33         MNT_NOSUID MNT_NODEV MNT_UNION
34         MNT_ASYNC MNT_EXPORTED MNT_QUARANTINE
35         MNT_LOCAL MNT_QUOTA
36         MNT_ROOTFS MNT_DOVOLFS MNT_DONTBROWSE
37         MNT_IGNORE_OWNERSHIP MNT_AUTOMOUNTED MNT_JOURNALED
38         MNT_NOUSERXATTR MNT_DEFWRITE MNT_MULTILABEL MNT_NOATIME
39     }
40
41 CONSTANT: MNT_UPDATE  0x00010000
42 CONSTANT: MNT_RELOAD  0x00040000
43 CONSTANT: MNT_FORCE   0x00080000
44
45 CONSTANT: MNT_CMDFLAGS flags{ MNT_UPDATE MNT_RELOAD MNT_FORCE }
46
47 CONSTANT: VFS_GENERIC 0
48 CONSTANT: VFS_NUMMNTOPS 1
49 CONSTANT: VFS_MAXTYPENUM 1
50 CONSTANT: VFS_CONF 2
51 CONSTANT: VFS_SET_PACKAGE_EXTS 3
52
53 CONSTANT: MNT_WAIT    1
54 CONSTANT: MNT_NOWAIT  2
55
56 CONSTANT: VFS_CTL_VERS1   0x01
57
58 CONSTANT: VFS_CTL_STATFS  0x00010001
59 CONSTANT: VFS_CTL_UMOUNT  0x00010002
60 CONSTANT: VFS_CTL_QUERY   0x00010003
61 CONSTANT: VFS_CTL_NEWADDR 0x00010004
62 CONSTANT: VFS_CTL_TIMEO   0x00010005
63 CONSTANT: VFS_CTL_NOLOCKS 0x00010006
64
65 STRUCT: vfsquery
66     { vq_flags uint32_t }
67     { vq_spare uint32_t[31] } ;
68
69 CONSTANT: VQ_NOTRESP  0x0001
70 CONSTANT: VQ_NEEDAUTH 0x0002
71 CONSTANT: VQ_LOWDISK  0x0004
72 CONSTANT: VQ_MOUNT    0x0008
73 CONSTANT: VQ_UNMOUNT  0x0010
74 CONSTANT: VQ_DEAD     0x0020
75 CONSTANT: VQ_ASSIST   0x0040
76 CONSTANT: VQ_NOTRESPLOCK  0x0080
77 CONSTANT: VQ_UPDATE   0x0100
78 CONSTANT: VQ_FLAG0200 0x0200
79 CONSTANT: VQ_FLAG0400 0x0400
80 CONSTANT: VQ_FLAG0800 0x0800
81 CONSTANT: VQ_FLAG1000 0x1000
82 CONSTANT: VQ_FLAG2000 0x2000
83 CONSTANT: VQ_FLAG4000 0x4000
84 CONSTANT: VQ_FLAG8000 0x8000
85
86 CONSTANT: NFSV4_MAX_FH_SIZE 128
87 CONSTANT: NFSV3_MAX_FH_SIZE 64
88 CONSTANT: NFSV2_MAX_FH_SIZE 32
89 ALIAS: NFS_MAX_FH_SIZE NFSV4_MAX_FH_SIZE
90
91 CONSTANT: MFSNAMELEN 15
92 CONSTANT: MNAMELEN 90
93 CONSTANT: MFSTYPENAMELEN 16
94
95 STRUCT: fsid_t
96     { val int32_t[2] } ;
97
98 STRUCT: statfs64
99     { f_bsize uint32_t }
100     { f_iosize int32_t }
101     { f_blocks uint64_t }
102     { f_bfree uint64_t }
103     { f_bavail uint64_t }
104     { f_files uint64_t }
105     { f_ffree uint64_t }
106     { f_fsid fsid_t }
107     { f_owner uid_t }
108     { f_type uint32_t }
109     { f_flags uint32_t }
110     { f_fssubtype uint32_t }
111     { f_fstypename { char MFSTYPENAMELEN } }
112     { f_mntonname { char MAXPATHLEN } }
113     { f_mntfromname { char MAXPATHLEN } }
114     { f_reserved uint32_t[8] } ;
115
116 FUNCTION-ALIAS: statfs64-func int statfs64 ( c-string path, statfs64* buf )
117 FUNCTION: int getmntinfo64 ( statfs64** mntbufp, int flags )