Home | History | Annotate | Download | only in system
      1 /*
      2  * Copyright (C) 2011 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package android.system;
     18 
     19 /**
     20  * Constants and helper functions for use with {@link Os}.
     21  */
     22 public final class OsConstants {
     23     private OsConstants() {
     24     }
     25 
     26     /**
     27      * Returns the index of the element in the cap_user_data array that this capability is stored
     28      * in.
     29      * @hide
     30      */
     31     public static int CAP_TO_INDEX(int x) { return x >>> 5; }
     32 
     33     /**
     34      * Returns the mask for the given capability. This is relative to the capability's cap_user_data
     35      * element, the index of which can be retrieved with CAP_TO_INDEX.
     36      * @hide
     37      */
     38     public static int CAP_TO_MASK(int x) { return 1 << (x & 31); }
     39 
     40     /**
     41      * Tests whether the given mode is a block device.
     42      */
     43     public static boolean S_ISBLK(int mode) { return (mode & S_IFMT) == S_IFBLK; }
     44 
     45     /**
     46      * Tests whether the given mode is a character device.
     47      */
     48     public static boolean S_ISCHR(int mode) { return (mode & S_IFMT) == S_IFCHR; }
     49 
     50     /**
     51      * Tests whether the given mode is a directory.
     52      */
     53     public static boolean S_ISDIR(int mode) { return (mode & S_IFMT) == S_IFDIR; }
     54 
     55     /**
     56      * Tests whether the given mode is a FIFO.
     57      */
     58     public static boolean S_ISFIFO(int mode) { return (mode & S_IFMT) == S_IFIFO; }
     59 
     60     /**
     61      * Tests whether the given mode is a regular file.
     62      */
     63     public static boolean S_ISREG(int mode) { return (mode & S_IFMT) == S_IFREG; }
     64 
     65     /**
     66      * Tests whether the given mode is a symbolic link.
     67      */
     68     public static boolean S_ISLNK(int mode) { return (mode & S_IFMT) == S_IFLNK; }
     69 
     70     /**
     71      * Tests whether the given mode is a socket.
     72      */
     73     public static boolean S_ISSOCK(int mode) { return (mode & S_IFMT) == S_IFSOCK; }
     74 
     75     /**
     76      * Extracts the exit status of a child. Only valid if WIFEXITED returns true.
     77      */
     78     public static int WEXITSTATUS(int status) { return (status & 0xff00) >> 8; }
     79 
     80     /**
     81      * Tests whether the child dumped core. Only valid if WIFSIGNALED returns true.
     82      */
     83     public static boolean WCOREDUMP(int status) { return (status & 0x80) != 0; }
     84 
     85     /**
     86      * Returns the signal that caused the child to exit. Only valid if WIFSIGNALED returns true.
     87      */
     88     public static int WTERMSIG(int status) { return status & 0x7f; }
     89 
     90     /**
     91      * Returns the signal that cause the child to stop. Only valid if WIFSTOPPED returns true.
     92      */
     93     public static int WSTOPSIG(int status) { return WEXITSTATUS(status); }
     94 
     95     /**
     96      * Tests whether the child exited normally.
     97      */
     98     public static boolean WIFEXITED(int status) { return (WTERMSIG(status) == 0); }
     99 
    100     /**
    101      * Tests whether the child was stopped (not terminated) by a signal.
    102      */
    103     public static boolean WIFSTOPPED(int status) { return (WTERMSIG(status) == 0x7f); }
    104 
    105     /**
    106      * Tests whether the child was terminated by a signal.
    107      */
    108     public static boolean WIFSIGNALED(int status) { return (WTERMSIG(status + 1) >= 2); }
    109 
    110     public static final int AF_INET = placeholder();
    111     public static final int AF_INET6 = placeholder();
    112     /** @hide */ public static final int AF_NETLINK = placeholder();
    113     /** @hide */ public static final int AF_PACKET = placeholder();
    114     public static final int AF_UNIX = placeholder();
    115     public static final int AF_UNSPEC = placeholder();
    116     public static final int AI_ADDRCONFIG = placeholder();
    117     public static final int AI_ALL = placeholder();
    118     public static final int AI_CANONNAME = placeholder();
    119     public static final int AI_NUMERICHOST = placeholder();
    120     public static final int AI_NUMERICSERV = placeholder();
    121     public static final int AI_PASSIVE = placeholder();
    122     public static final int AI_V4MAPPED = placeholder();
    123     /** @hide */ public static final int ARPHRD_ETHER = placeholder();
    124     /** @hide */ public static final int ARPHRD_LOOPBACK = placeholder();
    125     public static final int CAP_AUDIT_CONTROL = placeholder();
    126     public static final int CAP_AUDIT_WRITE = placeholder();
    127     public static final int CAP_BLOCK_SUSPEND = placeholder();
    128     public static final int CAP_CHOWN = placeholder();
    129     public static final int CAP_DAC_OVERRIDE = placeholder();
    130     public static final int CAP_DAC_READ_SEARCH = placeholder();
    131     public static final int CAP_FOWNER = placeholder();
    132     public static final int CAP_FSETID = placeholder();
    133     public static final int CAP_IPC_LOCK = placeholder();
    134     public static final int CAP_IPC_OWNER = placeholder();
    135     public static final int CAP_KILL = placeholder();
    136     public static final int CAP_LAST_CAP = placeholder();
    137     public static final int CAP_LEASE = placeholder();
    138     public static final int CAP_LINUX_IMMUTABLE = placeholder();
    139     public static final int CAP_MAC_ADMIN = placeholder();
    140     public static final int CAP_MAC_OVERRIDE = placeholder();
    141     public static final int CAP_MKNOD = placeholder();
    142     public static final int CAP_NET_ADMIN = placeholder();
    143     public static final int CAP_NET_BIND_SERVICE = placeholder();
    144     public static final int CAP_NET_BROADCAST = placeholder();
    145     public static final int CAP_NET_RAW = placeholder();
    146     public static final int CAP_SETFCAP = placeholder();
    147     public static final int CAP_SETGID = placeholder();
    148     public static final int CAP_SETPCAP = placeholder();
    149     public static final int CAP_SETUID = placeholder();
    150     public static final int CAP_SYS_ADMIN = placeholder();
    151     public static final int CAP_SYS_BOOT = placeholder();
    152     public static final int CAP_SYS_CHROOT = placeholder();
    153     public static final int CAP_SYSLOG = placeholder();
    154     public static final int CAP_SYS_MODULE = placeholder();
    155     public static final int CAP_SYS_NICE = placeholder();
    156     public static final int CAP_SYS_PACCT = placeholder();
    157     public static final int CAP_SYS_PTRACE = placeholder();
    158     public static final int CAP_SYS_RAWIO = placeholder();
    159     public static final int CAP_SYS_RESOURCE = placeholder();
    160     public static final int CAP_SYS_TIME = placeholder();
    161     public static final int CAP_SYS_TTY_CONFIG = placeholder();
    162     public static final int CAP_WAKE_ALARM = placeholder();
    163     public static final int E2BIG = placeholder();
    164     public static final int EACCES = placeholder();
    165     public static final int EADDRINUSE = placeholder();
    166     public static final int EADDRNOTAVAIL = placeholder();
    167     public static final int EAFNOSUPPORT = placeholder();
    168     public static final int EAGAIN = placeholder();
    169     public static final int EAI_AGAIN = placeholder();
    170     public static final int EAI_BADFLAGS = placeholder();
    171     public static final int EAI_FAIL = placeholder();
    172     public static final int EAI_FAMILY = placeholder();
    173     public static final int EAI_MEMORY = placeholder();
    174     public static final int EAI_NODATA = placeholder();
    175     public static final int EAI_NONAME = placeholder();
    176     public static final int EAI_OVERFLOW = placeholder();
    177     public static final int EAI_SERVICE = placeholder();
    178     public static final int EAI_SOCKTYPE = placeholder();
    179     public static final int EAI_SYSTEM = placeholder();
    180     public static final int EALREADY = placeholder();
    181     public static final int EBADF = placeholder();
    182     public static final int EBADMSG = placeholder();
    183     public static final int EBUSY = placeholder();
    184     public static final int ECANCELED = placeholder();
    185     public static final int ECHILD = placeholder();
    186     public static final int ECONNABORTED = placeholder();
    187     public static final int ECONNREFUSED = placeholder();
    188     public static final int ECONNRESET = placeholder();
    189     public static final int EDEADLK = placeholder();
    190     public static final int EDESTADDRREQ = placeholder();
    191     public static final int EDOM = placeholder();
    192     public static final int EDQUOT = placeholder();
    193     public static final int EEXIST = placeholder();
    194     public static final int EFAULT = placeholder();
    195     public static final int EFBIG = placeholder();
    196     public static final int EHOSTUNREACH = placeholder();
    197     public static final int EIDRM = placeholder();
    198     public static final int EILSEQ = placeholder();
    199     public static final int EINPROGRESS = placeholder();
    200     public static final int EINTR = placeholder();
    201     public static final int EINVAL = placeholder();
    202     public static final int EIO = placeholder();
    203     public static final int EISCONN = placeholder();
    204     public static final int EISDIR = placeholder();
    205     public static final int ELOOP = placeholder();
    206     public static final int EMFILE = placeholder();
    207     public static final int EMLINK = placeholder();
    208     public static final int EMSGSIZE = placeholder();
    209     public static final int EMULTIHOP = placeholder();
    210     public static final int ENAMETOOLONG = placeholder();
    211     public static final int ENETDOWN = placeholder();
    212     public static final int ENETRESET = placeholder();
    213     public static final int ENETUNREACH = placeholder();
    214     public static final int ENFILE = placeholder();
    215     public static final int ENOBUFS = placeholder();
    216     public static final int ENODATA = placeholder();
    217     public static final int ENODEV = placeholder();
    218     public static final int ENOENT = placeholder();
    219     public static final int ENOEXEC = placeholder();
    220     public static final int ENOLCK = placeholder();
    221     public static final int ENOLINK = placeholder();
    222     public static final int ENOMEM = placeholder();
    223     public static final int ENOMSG = placeholder();
    224     /** @hide */ public static final int ENONET = placeholder();
    225     public static final int ENOPROTOOPT = placeholder();
    226     public static final int ENOSPC = placeholder();
    227     public static final int ENOSR = placeholder();
    228     public static final int ENOSTR = placeholder();
    229     public static final int ENOSYS = placeholder();
    230     public static final int ENOTCONN = placeholder();
    231     public static final int ENOTDIR = placeholder();
    232     public static final int ENOTEMPTY = placeholder();
    233     public static final int ENOTSOCK = placeholder();
    234     public static final int ENOTSUP = placeholder();
    235     public static final int ENOTTY = placeholder();
    236     public static final int ENXIO = placeholder();
    237     public static final int EOPNOTSUPP = placeholder();
    238     public static final int EOVERFLOW = placeholder();
    239     public static final int EPERM = placeholder();
    240     public static final int EPIPE = placeholder();
    241     public static final int EPROTO = placeholder();
    242     public static final int EPROTONOSUPPORT = placeholder();
    243     public static final int EPROTOTYPE = placeholder();
    244     public static final int ERANGE = placeholder();
    245     public static final int EROFS = placeholder();
    246     public static final int ESPIPE = placeholder();
    247     public static final int ESRCH = placeholder();
    248     public static final int ESTALE = placeholder();
    249     /** @hide */ public static final int ETH_P_ALL = placeholder();
    250     /** @hide */ public static final int ETH_P_ARP = placeholder();
    251     /** @hide */ public static final int ETH_P_IP = placeholder();
    252     /** @hide */ public static final int ETH_P_IPV6 = placeholder();
    253     public static final int ETIME = placeholder();
    254     public static final int ETIMEDOUT = placeholder();
    255     public static final int ETXTBSY = placeholder();
    256     /** @hide */ public static final int EUSERS = placeholder();
    257     // On Linux, EWOULDBLOCK == EAGAIN. Use EAGAIN instead, to reduce confusion.
    258     public static final int EXDEV = placeholder();
    259     public static final int EXIT_FAILURE = placeholder();
    260     public static final int EXIT_SUCCESS = placeholder();
    261     public static final int FD_CLOEXEC = placeholder();
    262     public static final int FIONREAD = placeholder();
    263     public static final int F_DUPFD = placeholder();
    264     public static final int F_DUPFD_CLOEXEC = placeholder();
    265     public static final int F_GETFD = placeholder();
    266     public static final int F_GETFL = placeholder();
    267     public static final int F_GETLK = placeholder();
    268     public static final int F_GETLK64 = placeholder();
    269     public static final int F_GETOWN = placeholder();
    270     public static final int F_OK = placeholder();
    271     public static final int F_RDLCK = placeholder();
    272     public static final int F_SETFD = placeholder();
    273     public static final int F_SETFL = placeholder();
    274     public static final int F_SETLK = placeholder();
    275     public static final int F_SETLK64 = placeholder();
    276     public static final int F_SETLKW = placeholder();
    277     public static final int F_SETLKW64 = placeholder();
    278     public static final int F_SETOWN = placeholder();
    279     public static final int F_UNLCK = placeholder();
    280     public static final int F_WRLCK = placeholder();
    281     /** @hide */ public static final int ICMP_ECHO = placeholder();
    282     /** @hide */ public static final int ICMP_ECHOREPLY = placeholder();
    283     /** @hide */ public static final int ICMP6_ECHO_REQUEST = placeholder();
    284     /** @hide */ public static final int ICMP6_ECHO_REPLY = placeholder();
    285     public static final int IFA_F_DADFAILED = placeholder();
    286     public static final int IFA_F_DEPRECATED = placeholder();
    287     public static final int IFA_F_HOMEADDRESS = placeholder();
    288     public static final int IFA_F_NODAD = placeholder();
    289     public static final int IFA_F_OPTIMISTIC = placeholder();
    290     public static final int IFA_F_PERMANENT = placeholder();
    291     public static final int IFA_F_SECONDARY = placeholder();
    292     public static final int IFA_F_TEMPORARY = placeholder();
    293     public static final int IFA_F_TENTATIVE = placeholder();
    294     public static final int IFF_ALLMULTI = placeholder();
    295     public static final int IFF_AUTOMEDIA = placeholder();
    296     public static final int IFF_BROADCAST = placeholder();
    297     public static final int IFF_DEBUG = placeholder();
    298     public static final int IFF_DYNAMIC = placeholder();
    299     public static final int IFF_LOOPBACK = placeholder();
    300     public static final int IFF_MASTER = placeholder();
    301     public static final int IFF_MULTICAST = placeholder();
    302     public static final int IFF_NOARP = placeholder();
    303     public static final int IFF_NOTRAILERS = placeholder();
    304     public static final int IFF_POINTOPOINT = placeholder();
    305     public static final int IFF_PORTSEL = placeholder();
    306     public static final int IFF_PROMISC = placeholder();
    307     public static final int IFF_RUNNING = placeholder();
    308     public static final int IFF_SLAVE = placeholder();
    309     public static final int IFF_UP = placeholder();
    310     public static final int IPPROTO_ICMP = placeholder();
    311     public static final int IPPROTO_ICMPV6 = placeholder();
    312     public static final int IPPROTO_IP = placeholder();
    313     public static final int IPPROTO_IPV6 = placeholder();
    314     public static final int IPPROTO_RAW = placeholder();
    315     public static final int IPPROTO_TCP = placeholder();
    316     public static final int IPPROTO_UDP = placeholder();
    317     public static final int IPV6_CHECKSUM = placeholder();
    318     public static final int IPV6_MULTICAST_HOPS = placeholder();
    319     public static final int IPV6_MULTICAST_IF = placeholder();
    320     public static final int IPV6_MULTICAST_LOOP = placeholder();
    321     public static final int IPV6_RECVDSTOPTS = placeholder();
    322     public static final int IPV6_RECVHOPLIMIT = placeholder();
    323     public static final int IPV6_RECVHOPOPTS = placeholder();
    324     public static final int IPV6_RECVPKTINFO = placeholder();
    325     public static final int IPV6_RECVRTHDR = placeholder();
    326     public static final int IPV6_RECVTCLASS = placeholder();
    327     public static final int IPV6_TCLASS = placeholder();
    328     public static final int IPV6_UNICAST_HOPS = placeholder();
    329     public static final int IPV6_V6ONLY = placeholder();
    330     /** @hide */ public static final int IP_MULTICAST_ALL = placeholder();
    331     public static final int IP_MULTICAST_IF = placeholder();
    332     public static final int IP_MULTICAST_LOOP = placeholder();
    333     public static final int IP_MULTICAST_TTL = placeholder();
    334     /** @hide */ public static final int IP_RECVTOS = placeholder();
    335     public static final int IP_TOS = placeholder();
    336     public static final int IP_TTL = placeholder();
    337     /** @hide */ public static final int _LINUX_CAPABILITY_VERSION_3 = placeholder();
    338     public static final int MAP_FIXED = placeholder();
    339     /** @hide */ public static final int MAP_POPULATE = placeholder();
    340     public static final int MAP_PRIVATE = placeholder();
    341     public static final int MAP_SHARED = placeholder();
    342     public static final int MCAST_JOIN_GROUP = placeholder();
    343     public static final int MCAST_LEAVE_GROUP = placeholder();
    344     public static final int MCAST_JOIN_SOURCE_GROUP = placeholder();
    345     public static final int MCAST_LEAVE_SOURCE_GROUP = placeholder();
    346     public static final int MCAST_BLOCK_SOURCE = placeholder();
    347     public static final int MCAST_UNBLOCK_SOURCE = placeholder();
    348     public static final int MCL_CURRENT = placeholder();
    349     public static final int MCL_FUTURE = placeholder();
    350     public static final int MSG_CTRUNC = placeholder();
    351     public static final int MSG_DONTROUTE = placeholder();
    352     public static final int MSG_EOR = placeholder();
    353     public static final int MSG_OOB = placeholder();
    354     public static final int MSG_PEEK = placeholder();
    355     public static final int MSG_TRUNC = placeholder();
    356     public static final int MSG_WAITALL = placeholder();
    357     public static final int MS_ASYNC = placeholder();
    358     public static final int MS_INVALIDATE = placeholder();
    359     public static final int MS_SYNC = placeholder();
    360     /** @hide */ public static final int NETLINK_NETFILTER = placeholder();
    361     /** @hide */ public static final int NETLINK_ROUTE = placeholder();
    362     public static final int NI_DGRAM = placeholder();
    363     public static final int NI_NAMEREQD = placeholder();
    364     public static final int NI_NOFQDN = placeholder();
    365     public static final int NI_NUMERICHOST = placeholder();
    366     public static final int NI_NUMERICSERV = placeholder();
    367     public static final int O_ACCMODE = placeholder();
    368     public static final int O_APPEND = placeholder();
    369     public static final int O_CLOEXEC = placeholder();
    370     public static final int O_CREAT = placeholder();
    371     /** @hide */ public static final int O_DIRECT = placeholder();
    372     public static final int O_EXCL = placeholder();
    373     public static final int O_NOCTTY = placeholder();
    374     public static final int O_NOFOLLOW = placeholder();
    375     public static final int O_NONBLOCK = placeholder();
    376     public static final int O_RDONLY = placeholder();
    377     public static final int O_RDWR = placeholder();
    378     public static final int O_SYNC = placeholder();
    379     public static final int O_DSYNC = placeholder();
    380     public static final int O_TRUNC = placeholder();
    381     public static final int O_WRONLY = placeholder();
    382     public static final int POLLERR = placeholder();
    383     public static final int POLLHUP = placeholder();
    384     public static final int POLLIN = placeholder();
    385     public static final int POLLNVAL = placeholder();
    386     public static final int POLLOUT = placeholder();
    387     public static final int POLLPRI = placeholder();
    388     public static final int POLLRDBAND = placeholder();
    389     public static final int POLLRDNORM = placeholder();
    390     public static final int POLLWRBAND = placeholder();
    391     public static final int POLLWRNORM = placeholder();
    392     /** @hide */ public static final int PR_CAP_AMBIENT = placeholder();
    393     /** @hide */ public static final int PR_CAP_AMBIENT_RAISE = placeholder();
    394     public static final int PR_GET_DUMPABLE = placeholder();
    395     public static final int PR_SET_DUMPABLE = placeholder();
    396     public static final int PR_SET_NO_NEW_PRIVS = placeholder();
    397     public static final int PROT_EXEC = placeholder();
    398     public static final int PROT_NONE = placeholder();
    399     public static final int PROT_READ = placeholder();
    400     public static final int PROT_WRITE = placeholder();
    401     public static final int R_OK = placeholder();
    402     /** @hide */ public static final int RLIMIT_NOFILE = placeholder();
    403     public static final int RT_SCOPE_HOST = placeholder();
    404     public static final int RT_SCOPE_LINK = placeholder();
    405     public static final int RT_SCOPE_NOWHERE = placeholder();
    406     public static final int RT_SCOPE_SITE = placeholder();
    407     public static final int RT_SCOPE_UNIVERSE = placeholder();
    408     /** @hide */ public static final int RTMGRP_IPV4_IFADDR = placeholder();
    409     /** @hide */ public static final int RTMGRP_IPV4_MROUTE = placeholder();
    410     /** @hide */ public static final int RTMGRP_IPV4_ROUTE = placeholder();
    411     /** @hide */ public static final int RTMGRP_IPV4_RULE = placeholder();
    412     /** @hide */ public static final int RTMGRP_IPV6_IFADDR = placeholder();
    413     /** @hide */ public static final int RTMGRP_IPV6_IFINFO = placeholder();
    414     /** @hide */ public static final int RTMGRP_IPV6_MROUTE = placeholder();
    415     /** @hide */ public static final int RTMGRP_IPV6_PREFIX = placeholder();
    416     /** @hide */ public static final int RTMGRP_IPV6_ROUTE = placeholder();
    417     /** @hide */ public static final int RTMGRP_LINK = placeholder();
    418     /** @hide */ public static final int RTMGRP_NEIGH = placeholder();
    419     /** @hide */ public static final int RTMGRP_NOTIFY = placeholder();
    420     /** @hide */ public static final int RTMGRP_TC = placeholder();
    421     public static final int SEEK_CUR = placeholder();
    422     public static final int SEEK_END = placeholder();
    423     public static final int SEEK_SET = placeholder();
    424     public static final int SHUT_RD = placeholder();
    425     public static final int SHUT_RDWR = placeholder();
    426     public static final int SHUT_WR = placeholder();
    427     public static final int SIGABRT = placeholder();
    428     public static final int SIGALRM = placeholder();
    429     public static final int SIGBUS = placeholder();
    430     public static final int SIGCHLD = placeholder();
    431     public static final int SIGCONT = placeholder();
    432     public static final int SIGFPE = placeholder();
    433     public static final int SIGHUP = placeholder();
    434     public static final int SIGILL = placeholder();
    435     public static final int SIGINT = placeholder();
    436     public static final int SIGIO = placeholder();
    437     public static final int SIGKILL = placeholder();
    438     public static final int SIGPIPE = placeholder();
    439     public static final int SIGPROF = placeholder();
    440     public static final int SIGPWR = placeholder();
    441     public static final int SIGQUIT = placeholder();
    442     public static final int SIGRTMAX = placeholder();
    443     public static final int SIGRTMIN = placeholder();
    444     public static final int SIGSEGV = placeholder();
    445     public static final int SIGSTKFLT = placeholder();
    446     public static final int SIGSTOP = placeholder();
    447     public static final int SIGSYS = placeholder();
    448     public static final int SIGTERM = placeholder();
    449     public static final int SIGTRAP = placeholder();
    450     public static final int SIGTSTP = placeholder();
    451     public static final int SIGTTIN = placeholder();
    452     public static final int SIGTTOU = placeholder();
    453     public static final int SIGURG = placeholder();
    454     public static final int SIGUSR1 = placeholder();
    455     public static final int SIGUSR2 = placeholder();
    456     public static final int SIGVTALRM = placeholder();
    457     public static final int SIGWINCH = placeholder();
    458     public static final int SIGXCPU = placeholder();
    459     public static final int SIGXFSZ = placeholder();
    460     public static final int SIOCGIFADDR = placeholder();
    461     public static final int SIOCGIFBRDADDR = placeholder();
    462     public static final int SIOCGIFDSTADDR = placeholder();
    463     public static final int SIOCGIFNETMASK = placeholder();
    464     public static final int SOCK_DGRAM = placeholder();
    465     public static final int SOCK_RAW = placeholder();
    466     public static final int SOCK_SEQPACKET = placeholder();
    467     public static final int SOCK_STREAM = placeholder();
    468     public static final int SOL_SOCKET = placeholder();
    469     public static final int SO_BINDTODEVICE = placeholder();
    470     public static final int SO_BROADCAST = placeholder();
    471     public static final int SO_DEBUG = placeholder();
    472     /** @hide */ public static final int SO_DOMAIN = placeholder();
    473     public static final int SO_DONTROUTE = placeholder();
    474     public static final int SO_ERROR = placeholder();
    475     public static final int SO_KEEPALIVE = placeholder();
    476     public static final int SO_LINGER = placeholder();
    477     public static final int SO_OOBINLINE = placeholder();
    478     public static final int SO_PASSCRED = placeholder();
    479     public static final int SO_PEERCRED = placeholder();
    480     /** @hide */ public static final int SO_PROTOCOL = placeholder();
    481     public static final int SO_RCVBUF = placeholder();
    482     public static final int SO_RCVLOWAT = placeholder();
    483     public static final int SO_RCVTIMEO = placeholder();
    484     public static final int SO_REUSEADDR = placeholder();
    485     public static final int SO_SNDBUF = placeholder();
    486     public static final int SO_SNDLOWAT = placeholder();
    487     public static final int SO_SNDTIMEO = placeholder();
    488     public static final int SO_TYPE = placeholder();
    489     /** @hide */ public static final int SPLICE_F_MOVE = placeholder();
    490     /** @hide */ public static final int SPLICE_F_NONBLOCK = placeholder();
    491     /** @hide */ public static final int SPLICE_F_MORE = placeholder();
    492     public static final int STDERR_FILENO = placeholder();
    493     public static final int STDIN_FILENO = placeholder();
    494     public static final int STDOUT_FILENO = placeholder();
    495     public static final int ST_MANDLOCK = placeholder();
    496     public static final int ST_NOATIME = placeholder();
    497     public static final int ST_NODEV = placeholder();
    498     public static final int ST_NODIRATIME = placeholder();
    499     public static final int ST_NOEXEC = placeholder();
    500     public static final int ST_NOSUID = placeholder();
    501     public static final int ST_RDONLY = placeholder();
    502     public static final int ST_RELATIME = placeholder();
    503     public static final int ST_SYNCHRONOUS = placeholder();
    504     public static final int S_IFBLK = placeholder();
    505     public static final int S_IFCHR = placeholder();
    506     public static final int S_IFDIR = placeholder();
    507     public static final int S_IFIFO = placeholder();
    508     public static final int S_IFLNK = placeholder();
    509     public static final int S_IFMT = placeholder();
    510     public static final int S_IFREG = placeholder();
    511     public static final int S_IFSOCK = placeholder();
    512     public static final int S_IRGRP = placeholder();
    513     public static final int S_IROTH = placeholder();
    514     public static final int S_IRUSR = placeholder();
    515     public static final int S_IRWXG = placeholder();
    516     public static final int S_IRWXO = placeholder();
    517     public static final int S_IRWXU = placeholder();
    518     public static final int S_ISGID = placeholder();
    519     public static final int S_ISUID = placeholder();
    520     public static final int S_ISVTX = placeholder();
    521     public static final int S_IWGRP = placeholder();
    522     public static final int S_IWOTH = placeholder();
    523     public static final int S_IWUSR = placeholder();
    524     public static final int S_IXGRP = placeholder();
    525     public static final int S_IXOTH = placeholder();
    526     public static final int S_IXUSR = placeholder();
    527     public static final int TCP_NODELAY = placeholder();
    528     public static final int TCP_USER_TIMEOUT = placeholder();
    529     /** @hide */ public static final int TIOCOUTQ = placeholder();
    530     /** @hide */ public static final int UDP_ENCAP = placeholder();
    531     /** @hide */ public static final int UDP_ENCAP_ESPINUDP_NON_IKE = placeholder();
    532     /** @hide */ public static final int UDP_ENCAP_ESPINUDP = placeholder();
    533     /** @hide */ public static final int UNIX_PATH_MAX = placeholder();
    534     public static final int WCONTINUED = placeholder();
    535     public static final int WEXITED = placeholder();
    536     public static final int WNOHANG = placeholder();
    537     public static final int WNOWAIT = placeholder();
    538     public static final int WSTOPPED = placeholder();
    539     public static final int WUNTRACED = placeholder();
    540     public static final int W_OK = placeholder();
    541     /** @hide */ public static final int XATTR_CREATE = placeholder();
    542     /** @hide */ public static final int XATTR_REPLACE = placeholder();
    543     public static final int X_OK = placeholder();
    544     public static final int _SC_2_CHAR_TERM = placeholder();
    545     public static final int _SC_2_C_BIND = placeholder();
    546     public static final int _SC_2_C_DEV = placeholder();
    547     public static final int _SC_2_C_VERSION = placeholder();
    548     public static final int _SC_2_FORT_DEV = placeholder();
    549     public static final int _SC_2_FORT_RUN = placeholder();
    550     public static final int _SC_2_LOCALEDEF = placeholder();
    551     public static final int _SC_2_SW_DEV = placeholder();
    552     public static final int _SC_2_UPE = placeholder();
    553     public static final int _SC_2_VERSION = placeholder();
    554     public static final int _SC_AIO_LISTIO_MAX = placeholder();
    555     public static final int _SC_AIO_MAX = placeholder();
    556     public static final int _SC_AIO_PRIO_DELTA_MAX = placeholder();
    557     public static final int _SC_ARG_MAX = placeholder();
    558     public static final int _SC_ASYNCHRONOUS_IO = placeholder();
    559     public static final int _SC_ATEXIT_MAX = placeholder();
    560     public static final int _SC_AVPHYS_PAGES = placeholder();
    561     public static final int _SC_BC_BASE_MAX = placeholder();
    562     public static final int _SC_BC_DIM_MAX = placeholder();
    563     public static final int _SC_BC_SCALE_MAX = placeholder();
    564     public static final int _SC_BC_STRING_MAX = placeholder();
    565     public static final int _SC_CHILD_MAX = placeholder();
    566     public static final int _SC_CLK_TCK = placeholder();
    567     public static final int _SC_COLL_WEIGHTS_MAX = placeholder();
    568     public static final int _SC_DELAYTIMER_MAX = placeholder();
    569     public static final int _SC_EXPR_NEST_MAX = placeholder();
    570     public static final int _SC_FSYNC = placeholder();
    571     public static final int _SC_GETGR_R_SIZE_MAX = placeholder();
    572     public static final int _SC_GETPW_R_SIZE_MAX = placeholder();
    573     public static final int _SC_IOV_MAX = placeholder();
    574     public static final int _SC_JOB_CONTROL = placeholder();
    575     public static final int _SC_LINE_MAX = placeholder();
    576     public static final int _SC_LOGIN_NAME_MAX = placeholder();
    577     public static final int _SC_MAPPED_FILES = placeholder();
    578     public static final int _SC_MEMLOCK = placeholder();
    579     public static final int _SC_MEMLOCK_RANGE = placeholder();
    580     public static final int _SC_MEMORY_PROTECTION = placeholder();
    581     public static final int _SC_MESSAGE_PASSING = placeholder();
    582     public static final int _SC_MQ_OPEN_MAX = placeholder();
    583     public static final int _SC_MQ_PRIO_MAX = placeholder();
    584     public static final int _SC_NGROUPS_MAX = placeholder();
    585     public static final int _SC_NPROCESSORS_CONF = placeholder();
    586     public static final int _SC_NPROCESSORS_ONLN = placeholder();
    587     public static final int _SC_OPEN_MAX = placeholder();
    588     public static final int _SC_PAGESIZE = placeholder();
    589     public static final int _SC_PAGE_SIZE = placeholder();
    590     public static final int _SC_PASS_MAX = placeholder();
    591     public static final int _SC_PHYS_PAGES = placeholder();
    592     public static final int _SC_PRIORITIZED_IO = placeholder();
    593     public static final int _SC_PRIORITY_SCHEDULING = placeholder();
    594     public static final int _SC_REALTIME_SIGNALS = placeholder();
    595     public static final int _SC_RE_DUP_MAX = placeholder();
    596     public static final int _SC_RTSIG_MAX = placeholder();
    597     public static final int _SC_SAVED_IDS = placeholder();
    598     public static final int _SC_SEMAPHORES = placeholder();
    599     public static final int _SC_SEM_NSEMS_MAX = placeholder();
    600     public static final int _SC_SEM_VALUE_MAX = placeholder();
    601     public static final int _SC_SHARED_MEMORY_OBJECTS = placeholder();
    602     public static final int _SC_SIGQUEUE_MAX = placeholder();
    603     public static final int _SC_STREAM_MAX = placeholder();
    604     public static final int _SC_SYNCHRONIZED_IO = placeholder();
    605     public static final int _SC_THREADS = placeholder();
    606     public static final int _SC_THREAD_ATTR_STACKADDR = placeholder();
    607     public static final int _SC_THREAD_ATTR_STACKSIZE = placeholder();
    608     public static final int _SC_THREAD_DESTRUCTOR_ITERATIONS = placeholder();
    609     public static final int _SC_THREAD_KEYS_MAX = placeholder();
    610     public static final int _SC_THREAD_PRIORITY_SCHEDULING = placeholder();
    611     public static final int _SC_THREAD_PRIO_INHERIT = placeholder();
    612     public static final int _SC_THREAD_PRIO_PROTECT = placeholder();
    613     public static final int _SC_THREAD_SAFE_FUNCTIONS = placeholder();
    614     public static final int _SC_THREAD_STACK_MIN = placeholder();
    615     public static final int _SC_THREAD_THREADS_MAX = placeholder();
    616     public static final int _SC_TIMERS = placeholder();
    617     public static final int _SC_TIMER_MAX = placeholder();
    618     public static final int _SC_TTY_NAME_MAX = placeholder();
    619     public static final int _SC_TZNAME_MAX = placeholder();
    620     public static final int _SC_VERSION = placeholder();
    621     public static final int _SC_XBS5_ILP32_OFF32 = placeholder();
    622     public static final int _SC_XBS5_ILP32_OFFBIG = placeholder();
    623     public static final int _SC_XBS5_LP64_OFF64 = placeholder();
    624     public static final int _SC_XBS5_LPBIG_OFFBIG = placeholder();
    625     public static final int _SC_XOPEN_CRYPT = placeholder();
    626     public static final int _SC_XOPEN_ENH_I18N = placeholder();
    627     public static final int _SC_XOPEN_LEGACY = placeholder();
    628     public static final int _SC_XOPEN_REALTIME = placeholder();
    629     public static final int _SC_XOPEN_REALTIME_THREADS = placeholder();
    630     public static final int _SC_XOPEN_SHM = placeholder();
    631     public static final int _SC_XOPEN_UNIX = placeholder();
    632     public static final int _SC_XOPEN_VERSION = placeholder();
    633     public static final int _SC_XOPEN_XCU_VERSION = placeholder();
    634 
    635     /**
    636      * Returns the string name of a getaddrinfo(3) error value.
    637      * For example, "EAI_AGAIN".
    638      */
    639     public static String gaiName(int error) {
    640         if (error == EAI_AGAIN) {
    641             return "EAI_AGAIN";
    642         }
    643         if (error == EAI_BADFLAGS) {
    644             return "EAI_BADFLAGS";
    645         }
    646         if (error == EAI_FAIL) {
    647             return "EAI_FAIL";
    648         }
    649         if (error == EAI_FAMILY) {
    650             return "EAI_FAMILY";
    651         }
    652         if (error == EAI_MEMORY) {
    653             return "EAI_MEMORY";
    654         }
    655         if (error == EAI_NODATA) {
    656             return "EAI_NODATA";
    657         }
    658         if (error == EAI_NONAME) {
    659             return "EAI_NONAME";
    660         }
    661         if (error == EAI_OVERFLOW) {
    662             return "EAI_OVERFLOW";
    663         }
    664         if (error == EAI_SERVICE) {
    665             return "EAI_SERVICE";
    666         }
    667         if (error == EAI_SOCKTYPE) {
    668             return "EAI_SOCKTYPE";
    669         }
    670         if (error == EAI_SYSTEM) {
    671             return "EAI_SYSTEM";
    672         }
    673         return null;
    674     }
    675 
    676     /**
    677      * Returns the string name of an errno value.
    678      * For example, "EACCES". See {@link Os#strerror} for human-readable errno descriptions.
    679      */
    680     public static String errnoName(int errno) {
    681         if (errno == E2BIG) {
    682             return "E2BIG";
    683         }
    684         if (errno == EACCES) {
    685             return "EACCES";
    686         }
    687         if (errno == EADDRINUSE) {
    688             return "EADDRINUSE";
    689         }
    690         if (errno == EADDRNOTAVAIL) {
    691             return "EADDRNOTAVAIL";
    692         }
    693         if (errno == EAFNOSUPPORT) {
    694             return "EAFNOSUPPORT";
    695         }
    696         if (errno == EAGAIN) {
    697             return "EAGAIN";
    698         }
    699         if (errno == EALREADY) {
    700             return "EALREADY";
    701         }
    702         if (errno == EBADF) {
    703             return "EBADF";
    704         }
    705         if (errno == EBADMSG) {
    706             return "EBADMSG";
    707         }
    708         if (errno == EBUSY) {
    709             return "EBUSY";
    710         }
    711         if (errno == ECANCELED) {
    712             return "ECANCELED";
    713         }
    714         if (errno == ECHILD) {
    715             return "ECHILD";
    716         }
    717         if (errno == ECONNABORTED) {
    718             return "ECONNABORTED";
    719         }
    720         if (errno == ECONNREFUSED) {
    721             return "ECONNREFUSED";
    722         }
    723         if (errno == ECONNRESET) {
    724             return "ECONNRESET";
    725         }
    726         if (errno == EDEADLK) {
    727             return "EDEADLK";
    728         }
    729         if (errno == EDESTADDRREQ) {
    730             return "EDESTADDRREQ";
    731         }
    732         if (errno == EDOM) {
    733             return "EDOM";
    734         }
    735         if (errno == EDQUOT) {
    736             return "EDQUOT";
    737         }
    738         if (errno == EEXIST) {
    739             return "EEXIST";
    740         }
    741         if (errno == EFAULT) {
    742             return "EFAULT";
    743         }
    744         if (errno == EFBIG) {
    745             return "EFBIG";
    746         }
    747         if (errno == EHOSTUNREACH) {
    748             return "EHOSTUNREACH";
    749         }
    750         if (errno == EIDRM) {
    751             return "EIDRM";
    752         }
    753         if (errno == EILSEQ) {
    754             return "EILSEQ";
    755         }
    756         if (errno == EINPROGRESS) {
    757             return "EINPROGRESS";
    758         }
    759         if (errno == EINTR) {
    760             return "EINTR";
    761         }
    762         if (errno == EINVAL) {
    763             return "EINVAL";
    764         }
    765         if (errno == EIO) {
    766             return "EIO";
    767         }
    768         if (errno == EISCONN) {
    769             return "EISCONN";
    770         }
    771         if (errno == EISDIR) {
    772             return "EISDIR";
    773         }
    774         if (errno == ELOOP) {
    775             return "ELOOP";
    776         }
    777         if (errno == EMFILE) {
    778             return "EMFILE";
    779         }
    780         if (errno == EMLINK) {
    781             return "EMLINK";
    782         }
    783         if (errno == EMSGSIZE) {
    784             return "EMSGSIZE";
    785         }
    786         if (errno == EMULTIHOP) {
    787             return "EMULTIHOP";
    788         }
    789         if (errno == ENAMETOOLONG) {
    790             return "ENAMETOOLONG";
    791         }
    792         if (errno == ENETDOWN) {
    793             return "ENETDOWN";
    794         }
    795         if (errno == ENETRESET) {
    796             return "ENETRESET";
    797         }
    798         if (errno == ENETUNREACH) {
    799             return "ENETUNREACH";
    800         }
    801         if (errno == ENFILE) {
    802             return "ENFILE";
    803         }
    804         if (errno == ENOBUFS) {
    805             return "ENOBUFS";
    806         }
    807         if (errno == ENODATA) {
    808             return "ENODATA";
    809         }
    810         if (errno == ENODEV) {
    811             return "ENODEV";
    812         }
    813         if (errno == ENOENT) {
    814             return "ENOENT";
    815         }
    816         if (errno == ENOEXEC) {
    817             return "ENOEXEC";
    818         }
    819         if (errno == ENOLCK) {
    820             return "ENOLCK";
    821         }
    822         if (errno == ENOLINK) {
    823             return "ENOLINK";
    824         }
    825         if (errno == ENOMEM) {
    826             return "ENOMEM";
    827         }
    828         if (errno == ENOMSG) {
    829             return "ENOMSG";
    830         }
    831         if (errno == ENONET) {
    832             return "ENONET";
    833         }
    834         if (errno == ENOPROTOOPT) {
    835             return "ENOPROTOOPT";
    836         }
    837         if (errno == ENOSPC) {
    838             return "ENOSPC";
    839         }
    840         if (errno == ENOSR) {
    841             return "ENOSR";
    842         }
    843         if (errno == ENOSTR) {
    844             return "ENOSTR";
    845         }
    846         if (errno == ENOSYS) {
    847             return "ENOSYS";
    848         }
    849         if (errno == ENOTCONN) {
    850             return "ENOTCONN";
    851         }
    852         if (errno == ENOTDIR) {
    853             return "ENOTDIR";
    854         }
    855         if (errno == ENOTEMPTY) {
    856             return "ENOTEMPTY";
    857         }
    858         if (errno == ENOTSOCK) {
    859             return "ENOTSOCK";
    860         }
    861         if (errno == ENOTSUP) {
    862             return "ENOTSUP";
    863         }
    864         if (errno == ENOTTY) {
    865             return "ENOTTY";
    866         }
    867         if (errno == ENXIO) {
    868             return "ENXIO";
    869         }
    870         if (errno == EOPNOTSUPP) {
    871             return "EOPNOTSUPP";
    872         }
    873         if (errno == EOVERFLOW) {
    874             return "EOVERFLOW";
    875         }
    876         if (errno == EPERM) {
    877             return "EPERM";
    878         }
    879         if (errno == EPIPE) {
    880             return "EPIPE";
    881         }
    882         if (errno == EPROTO) {
    883             return "EPROTO";
    884         }
    885         if (errno == EPROTONOSUPPORT) {
    886             return "EPROTONOSUPPORT";
    887         }
    888         if (errno == EPROTOTYPE) {
    889             return "EPROTOTYPE";
    890         }
    891         if (errno == ERANGE) {
    892             return "ERANGE";
    893         }
    894         if (errno == EROFS) {
    895             return "EROFS";
    896         }
    897         if (errno == ESPIPE) {
    898             return "ESPIPE";
    899         }
    900         if (errno == ESRCH) {
    901             return "ESRCH";
    902         }
    903         if (errno == ESTALE) {
    904             return "ESTALE";
    905         }
    906         if (errno == ETIME) {
    907             return "ETIME";
    908         }
    909         if (errno == ETIMEDOUT) {
    910             return "ETIMEDOUT";
    911         }
    912         if (errno == ETXTBSY) {
    913             return "ETXTBSY";
    914         }
    915         if (errno == EXDEV) {
    916             return "EXDEV";
    917         }
    918         return null;
    919     }
    920 
    921     private static native void initConstants();
    922 
    923     // A hack to avoid these constants being inlined by javac...
    924     private static int placeholder() { return 0; }
    925     // ...because we want to initialize them at runtime.
    926     static {
    927         initConstants();
    928     }
    929 }
    930