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