1 /* 2 * Copyright (c) 2008, 2016, 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 74 static final int PREFIX_S_IAMB = 75 (S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IWGRP|S_IXGRP|S_IROTH|S_IWOTH|S_IXOTH); 76 static final int PREFIX_S_IRUSR = S_IRUSR; 77 static final int PREFIX_S_IWUSR = S_IWUSR; 78 static final int PREFIX_S_IXUSR = S_IXUSR; 79 static final int PREFIX_S_IRGRP = S_IRGRP; 80 static final int PREFIX_S_IWGRP = S_IWGRP; 81 static final int PREFIX_S_IXGRP = S_IXGRP; 82 static final int PREFIX_S_IROTH = S_IROTH; 83 static final int PREFIX_S_IWOTH = S_IWOTH; 84 static final int PREFIX_S_IXOTH = S_IXOTH; 85 86 static final int PREFIX_S_IFMT = S_IFMT; 87 static final int PREFIX_S_IFREG = S_IFREG; 88 static final int PREFIX_S_IFDIR = S_IFDIR; 89 static final int PREFIX_S_IFLNK = S_IFLNK; 90 static final int PREFIX_S_IFCHR = S_IFCHR; 91 static final int PREFIX_S_IFBLK = S_IFBLK; 92 static final int PREFIX_S_IFIFO = S_IFIFO; 93 static final int PREFIX_R_OK = R_OK; 94 static final int PREFIX_W_OK = W_OK; 95 static final int PREFIX_X_OK = X_OK; 96 static final int PREFIX_F_OK = F_OK; 97 static final int PREFIX_ENOENT = ENOENT; 98 static final int PREFIX_ENXIO = ENXIO; 99 static final int PREFIX_EACCES = EACCES; 100 static final int PREFIX_EEXIST = EEXIST; 101 static final int PREFIX_ENOTDIR = ENOTDIR; 102 static final int PREFIX_EINVAL = EINVAL; 103 static final int PREFIX_EXDEV = EXDEV; 104 static final int PREFIX_EISDIR = EISDIR; 105 static final int PREFIX_ENOTEMPTY = ENOTEMPTY; 106 static final int PREFIX_ENOSPC = ENOSPC; 107 static final int PREFIX_EAGAIN = EAGAIN; 108 static final int PREFIX_ENOSYS = ENOSYS; 109 static final int PREFIX_ELOOP = ELOOP; 110 static final int PREFIX_EROFS = EROFS; 111 112 #ifndef ENODATA 113 // Only used in Linux java source, provide any value so it compiles 114 static final int PREFIX_ENODATA = ELAST; 115 #else 116 static final int PREFIX_ENODATA = ENODATA; 117 #endif 118 119 static final int PREFIX_ERANGE = ERANGE; 120 static final int PREFIX_EMFILE = EMFILE; 121 122 // flags used with openat/unlinkat/etc. 123 #if defined(AT_SYMLINK_NOFOLLOW) && defined(AT_REMOVEDIR) 124 static final int PREFIX_AT_SYMLINK_NOFOLLOW = AT_SYMLINK_NOFOLLOW; 125 static final int PREFIX_AT_REMOVEDIR = AT_REMOVEDIR; 126 #else 127 // not supported (dummy values will not be used at runtime). 128 static final int PREFIX_AT_SYMLINK_NOFOLLOW = 00; 129 static final int PREFIX_AT_REMOVEDIR = 00; 130 #endif 131 132 }