mescc: m4 support: WIP
[mes.git] / include / sys / stat.h
1 /* -*-comment-start: "//";comment-end:""-*-
2  * Mes --- Maxwell Equations of Software
3  * Copyright © 2017 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
4  *
5  * This file is part of Mes.
6  *
7  * Mes is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3 of the License, or (at
10  * your option) any later version.
11  *
12  * Mes is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with Mes.  If not, see <http://www.gnu.org/licenses/>.
19  */
20 #ifndef __MES_SYS_STAT_H
21 #define __MES_SYS_STAT_H 1lei
22
23 #if __GNUC__ && POSIX
24 #undef __MES_SYS_STAT_H
25 #include_next <sys/stat.h>
26
27 #else // !(__GNUC__ && POSIX)
28
29 #ifndef __MES_MODE_T
30 #define __MES_MODE_T
31 typedef int mode_t;
32 #endif
33
34 int chmod (char const *file_name, mode_t mode);
35
36 struct stat
37 {
38   unsigned long st_dev;         /* Device.  */
39   unsigned long st_ino;         /* File serial number.  */
40   unsigned int  st_mode;        /* File mode.  */
41   unsigned int  st_nlink;       /* Link count.  */
42   unsigned int  st_uid;         /* User ID of the file's owner.  */
43   unsigned int  st_gid;         /* Group ID of the file's group. */
44   unsigned long st_rdev;        /* Device number, if device.  */
45   unsigned long __pad1;
46   long          st_size;        /* Size of file, in bytes.  */
47   int           st_blksize;     /* Optimal block size for I/O.  */
48   int           __pad2;
49   long          st_blocks;      /* Number 512-byte blocks allocated. */
50   long          st_atime;       /* Time of last access.  */
51   unsigned long st_atime_nsec;
52   long          st_mtime;       /* Time of last modification.  */
53   unsigned long st_mtime_nsec;
54   long          st_ctime;       /* Time of last status change.  */
55   unsigned long st_ctime_nsec;
56   unsigned int  __unused4;
57   unsigned int  __unused5;
58 };
59
60 #endif // !(__GNUC__ && POSIX)
61
62 #endif // __MES_SYS_STAT_H