1 /* 2 * Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved. 3 * 4 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 5 * 6 * This code is free software; you can redistribute it and/or modify it 7 * under the terms of the GNU General Public License version 2 only, as 8 * published by the Free Software Foundation. Oracle designates this 9 * particular file as subject to the "Classpath" exception as provided 10 * by Oracle in the LICENSE file that accompanied this code. 11 * 12 * This code is distributed in the hope that it will be useful, but WITHOUT 13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15 * version 2 for more details (a copy is included in the LICENSE file that 16 * accompanied this code). 17 * 18 * You should have received a copy of the GNU General Public License version 19 * 2 along with this work; if not, write to the Free Software Foundation, 20 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 21 * 22 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 23 * or visit www.oracle.com if you need additional information or have any 24 * questions. 25 * 26 */ 27 28 @@END_COPYRIGHT@@ 29 30 #include <stdio.h> 31 #include <errno.h> 32 #include <unistd.h> 33 #include <fcntl.h> 34 #include <sys/stat.h> 35 36 /* On Solaris, "sun" is defined as a macro. Undefine to make package 37 declaration valid */ 38 #undef sun 39 40 /* To be able to name the Java constants the same as the C constants without 41 having the preprocessor rewrite those identifiers, add PREFIX_ to all 42 identifiers matching a C constant. The PREFIX_ is filtered out in the 43 makefile. */ 44 45 @@START_HERE@@ 46 47 package sun.nio.fs; 48 class UnixConstants { 49 private UnixConstants() { } 50 static final int PREFIX_O_RDONLY = O_RDONLY; 51 static final int PREFIX_O_WRONLY = O_WRONLY; 52 static final int PREFIX_O_RDWR = O_RDWR; 53 static final int PREFIX_O_APPEND = O_APPEND; 54 static final int PREFIX_O_CREAT = O_CREAT; 55 static final int PREFIX_O_EXCL = O_EXCL; 56 static final int PREFIX_O_TRUNC = O_TRUNC; 57 static final int PREFIX_O_SYNC = O_SYNC; 58 59 #ifndef O_DSYNC 60 // At least FreeBSD doesn't define O_DSYNC 61 static final int PREFIX_O_DSYNC = O_SYNC; 62 #else 63 static final int PREFIX_O_DSYNC = O_DSYNC; 64 #endif 65 66 #ifdef O_NOFOLLOW 67 static final int PREFIX_O_NOFOLLOW = O_NOFOLLOW; 68 #else 69 // not supported (dummy values will not be used at runtime). 70 static final int PREFIX_O_NOFOLLOW = 00; 71 #endif 72 73 #ifdef O_DIRECT 74 static final int PREFIX_O_DIRECT = O_DIRECT; 75 #else 76 // not supported (dummy values will not be used at runtime). 77 static final int PREFIX_O_DIRECT = 00; 78 #endif 79 80 static final int PREFIX_S_IAMB = 81 (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH); 82 static final int PREFIX_S_IRUSR = S_IRUSR; 83 static final int PREFIX_S_IWUSR = S_IWUSR; 84 static final int PREFIX_S_IXUSR = S_IXUSR; 85 static final int PREFIX_S_IRGRP = S_IRGRP; 86 static final int PREFIX_S_IWGRP = S_IWGRP; 87 static final int PREFIX_S_IXGRP = S_IXGRP; 88 static final int PREFIX_S_IROTH = S_IROTH; 89 static final int PREFIX_S_IWOTH = S_IWOTH; 90 static final int PREFIX_S_IXOTH = S_IXOTH; 91 92 static final int PREFIX_S_IFMT = S_IFMT; 93 static final int PREFIX_S_IFREG = S_IFREG; 94 static final int PREFIX_S_IFDIR = S_IFDIR; 95 static final int PREFIX_S_IFLNK = S_IFLNK; 96 static final int PREFIX_S_IFCHR = S_IFCHR; 97 static final int PREFIX_S_IFBLK = S_IFBLK; 98 static final int PREFIX_S_IFIFO = S_IFIFO; 99 static final int PREFIX_R_OK = R_OK; 100 static final int PREFIX_W_OK = W_OK; 101 static final int PREFIX_X_OK = X_OK; 102 static final int PREFIX_F_OK = F_OK; 103 static final int PREFIX_ENOENT = ENOENT; 104 static final int PREFIX_ENXIO = ENXIO; 105 static final int PREFIX_EACCES = EACCES; 106 static final int PREFIX_EEXIST = EEXIST; 107 static final int PREFIX_ENOTDIR = ENOTDIR; 108 static final int PREFIX_EINVAL = EINVAL; 109 static final int PREFIX_EXDEV = EXDEV; 110 static final int PREFIX_EISDIR = EISDIR; 111 static final int PREFIX_ENOTEMPTY = ENOTEMPTY; 112 static final int PREFIX_ENOSPC = ENOSPC; 113 static final int PREFIX_EAGAIN = EAGAIN; 114 static final int PREFIX_ENOSYS = ENOSYS; 115 static final int PREFIX_ELOOP = ELOOP; 116 static final int PREFIX_EROFS = EROFS; 117 118 #ifndef ENODATA 119 // Only used in Linux java source, provide any value so it compiles 120 static final int PREFIX_ENODATA = ELAST; 121 #else 122 static final int PREFIX_ENODATA = ENODATA; 123 #endif 124 125 static final int PREFIX_ERANGE = ERANGE; 126 static final int PREFIX_EMFILE = EMFILE; 127 128 // flags used with openat/unlinkat/etc. 129 #if defined(AT_SYMLINK_NOFOLLOW) && defined(AT_REMOVEDIR) 130 static final int PREFIX_AT_SYMLINK_NOFOLLOW = AT_SYMLINK_NOFOLLOW; 131 static final int PREFIX_AT_REMOVEDIR = AT_REMOVEDIR; 132 #else 133 // not supported (dummy values will not be used at runtime). 134 static final int PREFIX_AT_SYMLINK_NOFOLLOW = 00; 135 static final int PREFIX_AT_REMOVEDIR = 00; 136 #endif 137 138 }