jdk/src/jdk.runtime/share/native/common-unpack/defines.h
changeset 29455 e451c01a5747
parent 29454 e5e9478e2ddb
parent 29433 c97e2d1bad97
child 29478 6637277d28cc
equal deleted inserted replaced
29454:e5e9478e2ddb 29455:e451c01a5747
     1 /*
       
     2  * Copyright (c) 2001, 2014, 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 // random definitions
       
    27 
       
    28 #ifdef _MSC_VER
       
    29 #include <windows.h>
       
    30 #include <winuser.h>
       
    31 #else
       
    32 #include <unistd.h>
       
    33 #endif
       
    34 
       
    35 #ifndef NO_ZLIB
       
    36 #include <zconf.h>
       
    37 #endif
       
    38 
       
    39 #ifndef FULL
       
    40 #define FULL 1 /* Adds <500 bytes to the zipped final product. */
       
    41 #endif
       
    42 
       
    43 #if FULL  // define this if you want debugging and/or compile-time attributes
       
    44 #define IF_FULL(x) x
       
    45 #else
       
    46 #define IF_FULL(x) /*x*/
       
    47 #endif
       
    48 
       
    49 #ifdef PRODUCT
       
    50 #define IF_PRODUCT(xxx) xxx
       
    51 #define NOT_PRODUCT(xxx)
       
    52 #define assert(p)
       
    53 #define PRINTCR(args)
       
    54 #define VERSION_STRING "%s version %s\n"
       
    55 #else
       
    56 #define IF_PRODUCT(xxx)
       
    57 #define NOT_PRODUCT(xxx) xxx
       
    58 #define assert(p) ((p) || assert_failed(#p))
       
    59 #define PRINTCR(args)  u->verbose && u->printcr_if_verbose args
       
    60 #define VERSION_STRING "%s version non-product %s\n"
       
    61 extern "C" void breakpoint();
       
    62 extern int assert_failed(const char*);
       
    63 #define BREAK (breakpoint())
       
    64 #endif
       
    65 
       
    66 // Build-time control of some C++ inlining.
       
    67 // To make a slightly faster smaller binary, say "CC -Dmaybe_inline=inline"
       
    68 #ifndef maybe_inline
       
    69 #define maybe_inline /*inline*/
       
    70 #endif
       
    71 // By marking larger member functions inline, we remove external linkage.
       
    72 #ifndef local_inline
       
    73 #define local_inline inline
       
    74 #endif
       
    75 
       
    76 // Error messages that we have
       
    77 #define ERROR_ENOMEM    "Native allocation failed"
       
    78 #define ERROR_FORMAT    "Corrupted pack file"
       
    79 #define ERROR_RESOURCE  "Cannot extract resource file"
       
    80 #define ERROR_OVERFLOW  "Internal buffer overflow"
       
    81 #define ERROR_INTERNAL  "Internal error"
       
    82 #define ERROR_INIT      "cannot init class members"
       
    83 
       
    84 #define LOGFILE_STDOUT "-"
       
    85 #define LOGFILE_STDERR ""
       
    86 
       
    87 #define lengthof(array) (sizeof(array)/sizeof(array[0]))
       
    88 
       
    89 #define NEW(T, n)    (T*) must_malloc((int)(scale_size(n, sizeof(T))))
       
    90 #define U_NEW(T, n)  (T*) u->alloc(scale_size(n, sizeof(T)))
       
    91 #define T_NEW(T, n)  (T*) u->temp_alloc(scale_size(n, sizeof(T)))
       
    92 
       
    93 
       
    94 // bytes and byte arrays
       
    95 
       
    96 typedef unsigned int uint;
       
    97 #if defined(NO_ZLIB)
       
    98 #ifdef _LP64
       
    99 typedef unsigned int uLong; // Historical zlib, should be 32-bit.
       
   100 #else
       
   101 typedef unsigned long uLong;
       
   102 #endif
       
   103 #endif
       
   104 #ifdef _MSC_VER
       
   105 typedef LONGLONG        jlong;
       
   106 typedef DWORDLONG       julong;
       
   107 #define MKDIR(dir)      mkdir(dir)
       
   108 #define getpid()        _getpid()
       
   109 #define PATH_MAX        MAX_PATH
       
   110 #define dup2(a,b)       _dup2(a,b)
       
   111 #define strcasecmp(s1, s2) _stricmp(s1,s2)
       
   112 #define tempname        _tempname
       
   113 #define sleep           Sleep
       
   114 #define snprintf        _snprintf
       
   115 #else
       
   116 typedef signed char byte;
       
   117 #ifdef _LP64
       
   118 typedef long jlong;
       
   119 typedef long unsigned julong;
       
   120 #else
       
   121 typedef long long jlong;
       
   122 typedef long long unsigned julong;
       
   123 #endif
       
   124 #define MKDIR(dir) mkdir(dir, 0777);
       
   125 #endif
       
   126 
       
   127 #ifdef OLDCC
       
   128 typedef int bool;
       
   129 enum { false, true };
       
   130 #endif
       
   131 
       
   132 #define null (0)
       
   133 
       
   134 /* Must cast to void *, then size_t, then int. */
       
   135 #define ptrlowbits(x)  ((int)(size_t)(void*)(x))
       
   136 
       
   137 /* Back and forth from jlong to pointer */
       
   138 #define ptr2jlong(x)  ((jlong)(size_t)(void*)(x))
       
   139 #define jlong2ptr(x)  ((void*)(size_t)(x))
       
   140 
       
   141 // Keys used by Java:
       
   142 #define UNPACK_DEFLATE_HINT             "unpack.deflate.hint"
       
   143 
       
   144 #define COM_PREFIX                      "com.sun.java.util.jar.pack."
       
   145 #define UNPACK_MODIFICATION_TIME        COM_PREFIX"unpack.modification.time"
       
   146 #define DEBUG_VERBOSE                   COM_PREFIX"verbose"
       
   147 
       
   148 #define ZIP_ARCHIVE_MARKER_COMMENT      "PACK200"
       
   149 
       
   150 // The following are not known to the Java classes:
       
   151 #define UNPACK_LOG_FILE                 COM_PREFIX"unpack.log.file"
       
   152 #define UNPACK_REMOVE_PACKFILE          COM_PREFIX"unpack.remove.packfile"
       
   153 
       
   154 
       
   155 // Called from unpacker layers
       
   156 #define _CHECK_DO(t,x)          { if (t) {x;} }
       
   157 
       
   158 #define CHECK                   _CHECK_DO(aborting(), return)
       
   159 #define CHECK_(y)               _CHECK_DO(aborting(), return y)
       
   160 #define CHECK_0                 _CHECK_DO(aborting(), return 0)
       
   161 
       
   162 #define CHECK_COUNT(t)          if (t < 0){abort("bad value count");} CHECK
       
   163 
       
   164 #define STR_TRUE   "true"
       
   165 #define STR_FALSE  "false"
       
   166 
       
   167 #define STR_TF(x)  ((x) ?  STR_TRUE : STR_FALSE)
       
   168 #define BOOL_TF(x) (((x) != null && strcmp((x),STR_TRUE) == 0) ? true : false)
       
   169 
       
   170 #define DEFAULT_ARCHIVE_MODTIME 1060000000 // Aug 04, 2003 5:26 PM PDT