<fcntl.h>: Add some missing defines (required by POSIX). master
authorSascha Wildner <saw@online.de>
Mon, 24 Apr 2017 17:22:39 +0000 (19:22 +0200)
committerSascha Wildner <saw@online.de>
Mon, 24 Apr 2017 17:22:39 +0000 (19:22 +0200)
   SEEK_SET   S_ISUID   S_IRWXU   S_IRWXG   S_IRWXO
   SEEK_CUR   S_ISGID   S_IRUSR   S_IRGRP   S_IROTH
   SEEK_END             S_IWUSR   S_IWGRP   S_IWOTH
                        S_IXUSR   S_IXGRP   S_IXOTH

Adjust <stat.h>, <stdio.h> and <unistd.h> accordingly.

See http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/fcntl.h.html

include/stdio.h
sys/sys/fcntl.h
sys/sys/stat.h
sys/sys/unistd.h

index 9137a0a..9ccef53 100644 (file)
@@ -168,6 +168,7 @@ __END_DECLS
 #define        L_tmpnam        1024    /* XXX must be == PATH_MAX */
 #define        TMP_MAX         308915776
 
+/* Always ensure that these are consistent with <fcntl.h> and <unistd.h>! */
 #ifndef SEEK_SET
 #define        SEEK_SET        0       /* set file offset to offset */
 #endif
index 0d8e685..8fc611e 100644 (file)
@@ -255,6 +255,61 @@ union fcntl_dat {
 #define        LOCK_UN         0x08            /* unlock file */
 #endif
 
+/* Always ensure that these are consistent with <stdio.h> and <unistd.h>! */
+#ifndef SEEK_SET
+#define        SEEK_SET        0       /* set file offset to offset */
+#endif
+#ifndef SEEK_CUR
+#define        SEEK_CUR        1       /* set file offset to current plus offset */
+#endif
+#ifndef SEEK_END
+#define        SEEK_END        2       /* set file offset to EOF plus offset */
+#endif
+
+/* Always ensure that these are consistent with <stat.h>! */
+#ifndef S_ISUID
+#define        S_ISUID 0004000                 /* set user id on execution */
+#endif
+#ifndef S_ISGID
+#define        S_ISGID 0002000                 /* set group id on execution */
+#endif
+#ifndef S_IRWXU
+#define        S_IRWXU 0000700                 /* RWX mask for owner */
+#endif
+#ifndef S_IRUSR
+#define        S_IRUSR 0000400                 /* R for owner */
+#endif
+#ifndef S_IWUSR
+#define        S_IWUSR 0000200                 /* W for owner */
+#endif
+#ifndef S_IXUSR
+#define        S_IXUSR 0000100                 /* X for owner */
+#endif
+#ifndef S_IRWXG
+#define        S_IRWXG 0000070                 /* RWX mask for group */
+#endif
+#ifndef S_IRGRP
+#define        S_IRGRP 0000040                 /* R for group */
+#endif
+#ifndef S_IWGRP
+#define        S_IWGRP 0000020                 /* W for group */
+#endif
+#ifndef S_IXGRP
+#define        S_IXGRP 0000010                 /* X for group */
+#endif
+#ifndef S_IRWXO
+#define        S_IRWXO 0000007                 /* RWX mask for other */
+#endif
+#ifndef S_IROTH
+#define        S_IROTH 0000004                 /* R for other */
+#endif
+#ifndef S_IWOTH
+#define        S_IWOTH 0000002                 /* W for other */
+#endif
+#ifndef S_IXOTH
+#define        S_IXOTH 0000001                 /* X for other */
+#endif
+
 #if !defined(_KERNEL) || defined(_KERNEL_VIRTUAL)
 __BEGIN_DECLS
 int    open(const char *, int, ...);
index 941f8ae..83c73ab 100644 (file)
@@ -102,16 +102,29 @@ struct stat {
 #define        st_ctimespec st_ctim
 #endif
 
+/* Always ensure that these are consistent with <fcntl.h>! */
+#ifndef S_ISUID
 #define        S_ISUID 0004000                 /* set user id on execution */
+#endif
+#ifndef S_ISGID
 #define        S_ISGID 0002000                 /* set group id on execution */
+#endif
 #if __BSD_VISIBLE
 #define        S_ISTXT 0001000                 /* sticky bit */
 #endif
 
+#ifndef S_IRWXU
 #define        S_IRWXU 0000700                 /* RWX mask for owner */
+#endif
+#ifndef S_IRUSR
 #define        S_IRUSR 0000400                 /* R for owner */
+#endif
+#ifndef S_IWUSR
 #define        S_IWUSR 0000200                 /* W for owner */
+#endif
+#ifndef S_IXUSR
 #define        S_IXUSR 0000100                 /* X for owner */
+#endif
 
 #if __BSD_VISIBLE
 #define        S_IREAD         S_IRUSR
@@ -119,15 +132,31 @@ struct stat {
 #define        S_IEXEC         S_IXUSR
 #endif
 
+#ifndef S_IRWXG
 #define        S_IRWXG 0000070                 /* RWX mask for group */
+#endif
+#ifndef S_IRGRP
 #define        S_IRGRP 0000040                 /* R for group */
+#endif
+#ifndef S_IWGRP
 #define        S_IWGRP 0000020                 /* W for group */
+#endif
+#ifndef S_IXGRP
 #define        S_IXGRP 0000010                 /* X for group */
+#endif
 
+#ifndef S_IRWXO
 #define        S_IRWXO 0000007                 /* RWX mask for other */
+#endif
+#ifndef S_IROTH
 #define        S_IROTH 0000004                 /* R for other */
+#endif
+#ifndef S_IWOTH
 #define        S_IWOTH 0000002                 /* W for other */
+#endif
+#ifndef S_IXOTH
 #define        S_IXOTH 0000001                 /* X for other */
+#endif
 
 #if __XSI_VISIBLE
 #define        S_IFMT   0170000                /* type of file mask */
index 09e3fae..7a02556 100644 (file)
 #define        W_OK            0x02    /* test for write permission */
 #define        R_OK            0x04    /* test for read permission */
 
-/* whence values for lseek(2) */
+/*
+ * whence values for lseek(2)
+ * Always ensure that these are consistent with <fcntl.h> and <stdio.h>!
+ */
 #ifndef SEEK_SET
 #define        SEEK_SET        0       /* set file offset to offset */
+#endif
+#ifndef SEEK_CUR
 #define        SEEK_CUR        1       /* set file offset to current plus offset */
+#endif
+#ifndef SEEK_END
 #define        SEEK_END        2       /* set file offset to EOF plus offset */
 #endif
 #if __BSD_VISIBLE