"Fossies" - the Fresh Open Source Software Archive

Member "pcre2-10.36/src/sljit/sljitConfig.h" (20 Oct 2020, 6381 Bytes) of package /linux/misc/pcre2-10.36.tar.bz2:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "sljitConfig.h" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 10.35_vs_10.36.

    1 /*
    2  *    Stack-less Just-In-Time compiler
    3  *
    4  *    Copyright Zoltan Herczeg (hzmester@freemail.hu). All rights reserved.
    5  *
    6  * Redistribution and use in source and binary forms, with or without modification, are
    7  * permitted provided that the following conditions are met:
    8  *
    9  *   1. Redistributions of source code must retain the above copyright notice, this list of
   10  *      conditions and the following disclaimer.
   11  *
   12  *   2. Redistributions in binary form must reproduce the above copyright notice, this list
   13  *      of conditions and the following disclaimer in the documentation and/or other materials
   14  *      provided with the distribution.
   15  *
   16  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) AND CONTRIBUTORS ``AS IS'' AND ANY
   17  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   18  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
   19  * SHALL THE COPYRIGHT HOLDER(S) OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
   20  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
   21  * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
   22  * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   23  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
   24  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   25  */
   26 
   27 #ifndef SLJIT_CONFIG_H_
   28 #define SLJIT_CONFIG_H_
   29 
   30 #ifdef __cplusplus
   31 extern "C" {
   32 #endif
   33 
   34 /*
   35   This file contains the basic configuration options for the SLJIT compiler
   36   and their default values. These options can be overridden in the
   37   sljitConfigPre.h header file when SLJIT_HAVE_CONFIG_PRE is set to a
   38   non-zero value.
   39 */
   40 
   41 /* --------------------------------------------------------------------- */
   42 /*  Architecture                                                         */
   43 /* --------------------------------------------------------------------- */
   44 
   45 /* Architecture selection. */
   46 /* #define SLJIT_CONFIG_X86_32 1 */
   47 /* #define SLJIT_CONFIG_X86_64 1 */
   48 /* #define SLJIT_CONFIG_ARM_V5 1 */
   49 /* #define SLJIT_CONFIG_ARM_V7 1 */
   50 /* #define SLJIT_CONFIG_ARM_THUMB2 1 */
   51 /* #define SLJIT_CONFIG_ARM_64 1 */
   52 /* #define SLJIT_CONFIG_PPC_32 1 */
   53 /* #define SLJIT_CONFIG_PPC_64 1 */
   54 /* #define SLJIT_CONFIG_MIPS_32 1 */
   55 /* #define SLJIT_CONFIG_MIPS_64 1 */
   56 /* #define SLJIT_CONFIG_SPARC_32 1 */
   57 /* #define SLJIT_CONFIG_S390X 1 */
   58 
   59 /* #define SLJIT_CONFIG_AUTO 1 */
   60 /* #define SLJIT_CONFIG_UNSUPPORTED 1 */
   61 
   62 /* --------------------------------------------------------------------- */
   63 /*  Utilities                                                            */
   64 /* --------------------------------------------------------------------- */
   65 
   66 /* Implements a stack like data structure (by using mmap / VirtualAlloc  */
   67 /* or a custom allocator). */
   68 #ifndef SLJIT_UTIL_STACK
   69 /* Enabled by default */
   70 #define SLJIT_UTIL_STACK 1
   71 #endif
   72 
   73 /* Uses user provided allocator to allocate the stack (see SLJIT_UTIL_STACK) */
   74 #ifndef SLJIT_UTIL_SIMPLE_STACK_ALLOCATION
   75 /* Disabled by default */
   76 #define SLJIT_UTIL_SIMPLE_STACK_ALLOCATION 0
   77 #endif
   78 
   79 /* Single threaded application. Does not require any locks. */
   80 #ifndef SLJIT_SINGLE_THREADED
   81 /* Disabled by default. */
   82 #define SLJIT_SINGLE_THREADED 0
   83 #endif
   84 
   85 /* --------------------------------------------------------------------- */
   86 /*  Configuration                                                        */
   87 /* --------------------------------------------------------------------- */
   88 
   89 /* If SLJIT_STD_MACROS_DEFINED is not defined, the application should
   90    define SLJIT_MALLOC, SLJIT_FREE, SLJIT_MEMCPY, and NULL. */
   91 #ifndef SLJIT_STD_MACROS_DEFINED
   92 /* Disabled by default. */
   93 #define SLJIT_STD_MACROS_DEFINED 0
   94 #endif
   95 
   96 /* Executable code allocation:
   97    If SLJIT_EXECUTABLE_ALLOCATOR is not defined, the application should
   98    define SLJIT_MALLOC_EXEC, SLJIT_FREE_EXEC, and SLJIT_EXEC_OFFSET. */
   99 #ifndef SLJIT_EXECUTABLE_ALLOCATOR
  100 /* Enabled by default. */
  101 #define SLJIT_EXECUTABLE_ALLOCATOR 1
  102 
  103 /* When SLJIT_PROT_EXECUTABLE_ALLOCATOR is enabled SLJIT uses
  104    an allocator which does not set writable and executable
  105    permission flags at the same time.
  106    Instead, it creates a shared memory segment (usually backed by a file)
  107    and maps it twice, with different permissions, depending on the use
  108    case.
  109    The trade-off is increased use of virtual memory, incompatibility with
  110    fork(), and some possible additional security risks by the use of
  111    publicly accessible files for the generated code. */
  112 #ifndef SLJIT_PROT_EXECUTABLE_ALLOCATOR
  113 /* Disabled by default. */
  114 #define SLJIT_PROT_EXECUTABLE_ALLOCATOR 0
  115 #endif
  116 
  117 /* When SLJIT_WX_EXECUTABLE_ALLOCATOR is enabled SLJIT uses an
  118    allocator which does not set writable and executable permission
  119    flags at the same time.
  120    Instead, it creates a new independent map on each invocation and
  121    switches permissions at the underlying pages as needed.
  122    The trade-off is increased memory use and degraded performance. */
  123 #ifndef SLJIT_WX_EXECUTABLE_ALLOCATOR
  124 /* Disabled by default. */
  125 #define SLJIT_WX_EXECUTABLE_ALLOCATOR 0
  126 #endif
  127 
  128 #endif /* !SLJIT_EXECUTABLE_ALLOCATOR */
  129 
  130 /* Force cdecl calling convention even if a better calling
  131    convention (e.g. fastcall) is supported by the C compiler.
  132    If this option is disabled (this is the default), functions
  133    called from JIT should be defined with SLJIT_FUNC attribute.
  134    Standard C functions can still be called by using the
  135    SLJIT_CALL_CDECL jump type. */
  136 #ifndef SLJIT_USE_CDECL_CALLING_CONVENTION
  137 /* Disabled by default */
  138 #define SLJIT_USE_CDECL_CALLING_CONVENTION 0
  139 #endif
  140 
  141 /* Return with error when an invalid argument is passed. */
  142 #ifndef SLJIT_ARGUMENT_CHECKS
  143 /* Disabled by default */
  144 #define SLJIT_ARGUMENT_CHECKS 0
  145 #endif
  146 
  147 /* Debug checks (assertions, etc.). */
  148 #ifndef SLJIT_DEBUG
  149 /* Enabled by default */
  150 #define SLJIT_DEBUG 1
  151 #endif
  152 
  153 /* Verbose operations. */
  154 #ifndef SLJIT_VERBOSE
  155 /* Enabled by default */
  156 #define SLJIT_VERBOSE 1
  157 #endif
  158 
  159 /*
  160   SLJIT_IS_FPU_AVAILABLE
  161     The availability of the FPU can be controlled by SLJIT_IS_FPU_AVAILABLE.
  162       zero value - FPU is NOT present.
  163       nonzero value - FPU is present.
  164 */
  165 
  166 /* For further configurations, see the beginning of sljitConfigInternal.h */
  167 
  168 #ifdef __cplusplus
  169 } /* extern "C" */
  170 #endif
  171 
  172 #endif /* SLJIT_CONFIG_H_ */