Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

pcre_assign_jit_stack (3)

Name

pcre_assign_jit_stack - compatible regular expressions

Synopsis

#include <pcre.h>

void pcre_assign_jit_stack(pcre_extra *extra,
pcre_jit_callback callback, void *data);

void pcre16_assign_jit_stack(pcre16_extra *extra,
pcre16_jit_callback callback, void *data);

void pcre32_assign_jit_stack(pcre32_extra *extra,
pcre32_jit_callback callback, void *data);

Description

PCRE_ASSIGN_JIT_STACK(3)   Library Functions Manual   PCRE_ASSIGN_JIT_STACK(3)



NAME
       PCRE - Perl-compatible regular expressions

SYNOPSIS

       #include <pcre.h>

       void pcre_assign_jit_stack(pcre_extra *extra,
            pcre_jit_callback callback, void *data);

       void pcre16_assign_jit_stack(pcre16_extra *extra,
            pcre16_jit_callback callback, void *data);

       void pcre32_assign_jit_stack(pcre32_extra *extra,
            pcre32_jit_callback callback, void *data);

DESCRIPTION

       This  function provides control over the memory used as a stack at run-
       time by a call to pcre[16|32]_exec() with a pattern that has been  suc-
       cessfully compiled with JIT optimization. The arguments are:

         extra     the data pointer returned by pcre[16|32]_study()
         callback  a callback function
         data      a JIT stack or a value to be passed to the callback
                     function

       If  callback  is  NULL  and  data is NULL, an internal 32K block on the
       machine stack is used.

       If callback is NULL and data is not NULL, data  must  be  a  valid  JIT
       stack, the result of calling pcre[16|32]_jit_stack_alloc().

       If  callback  not  NULL,  it  is called with data as an argument at the
       start of matching, in order to set up a JIT stack.  If  the  result  is
       NULL,  the  internal 32K stack is used; otherwise the return value must
       be    a    valid    JIT    stack,     the     result     of     calling
       pcre[16|32]_jit_stack_alloc().

       You  may safely assign the same JIT stack to multiple patterns, as long
       as they are all matched in the same thread. In a  multithread  applica-
       tion, each thread must use its own JIT stack. For more details, see the
       pcrejit page.

       There is a complete description of the PCRE native API in  the  pcreapi
       page and a description of the POSIX API in the pcreposix page.



ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | library/pcre     |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

NOTES
       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source        was        downloaded        from         https://source-
       forge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz.

       Further information about this software can be found on the open source
       community website at http://pcre.org/.



PCRE 8.30                        24 June 2012         PCRE_ASSIGN_JIT_STACK(3)