• 大小: 2.55MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-09-11
  • 语言: 其他
  • 标签:

资源简介

hyperscan 源码

资源截图

代码片段和文件信息

/*
 * Copyright (c) 2018 Intel Corporation
 *
 * Redistribution and use in source and binary forms with or without
 * modification are permitted provided that the following conditions are met:
 *
 *  * Redistributions of source code must retain the above copyright notice
 *    this list of conditions and the following disclaimer.
 *  * Redistributions in binary form must reproduce the above copyright
 *    notice this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *  * Neither the name of Intel Corporation nor the names of its contributors
 *    may be used to endorse or promote products derived from this software
 *    without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS“
 * AND ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
 * LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY OR
 * CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE DATA OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY WHETHER IN
 * CONTRACT STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE
 * POSSIBILITY OF SUCH DAMAGE.
 */

/** \file
 * \brief Runtime functions for setting custom allocators.
 */

#include “ch.h“
#include “ch_common.h“
#include “ch_internal.h“
#include “hs.h“
#include “ue2common.h“

#define default_malloc malloc
#define default_free free

ch_alloc_t ch_database_alloc = default_malloc;
ch_alloc_t ch_misc_alloc = default_malloc;
ch_alloc_t ch_scratch_alloc = default_malloc;

ch_free_t ch_database_free = default_free;
ch_free_t ch_misc_free = default_free;
ch_free_t ch_scratch_free = default_free;

static
ch_alloc_t normalise_alloc(ch_alloc_t a) {
    if (!a) {
        return default_malloc;
    } else {
        return a;
    }
}

static
ch_free_t normalise_free(ch_free_t f) {
    if (!f) {
        return default_free;
    } else {
        return f;
    }
}

HS_PUBLIC_API
ch_error_t HS_CDECL ch_set_allocator(ch_alloc_t allocfunc
                                     ch_free_t freefunc) {
    ch_set_database_allocator(allocfunc freefunc);
    ch_set_misc_allocator(allocfunc freefunc);
    ch_set_scratch_allocator(allocfunc freefunc);

    // Set core Hyperscan alloc/free.
    hs_error_t ret = hs_set_allocator(allocfunc freefunc);

    return ret;
}

HS_PUBLIC_API
ch_error_t HS_CDECL ch_set_database_allocator(ch_alloc_t allocfunc
                                              ch_free_t freefunc) {
    ch_database_alloc = normalise_alloc(allocfunc);
    ch_database_free = normalise_free(freefunc);

    // Set Hyperscan databas

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2020-05-25 14:30  hyperscan-master\
     文件         140  2020-05-25 14:30  hyperscan-master\.clang-format
     文件        1558  2020-05-25 14:30  hyperscan-master\.gitignore
     文件       16248  2020-05-25 14:30  hyperscan-master\CHANGELOG.md
     文件       46032  2020-05-25 14:30  hyperscan-master\CMakeLists.txt
     文件        1478  2020-05-25 14:30  hyperscan-master\COPYING
     文件        6013  2020-05-25 14:30  hyperscan-master\LICENSE
     文件        1597  2020-05-25 14:30  hyperscan-master\README.md
     目录           0  2020-05-25 14:30  hyperscan-master\chimera\
     文件        1337  2020-05-25 14:30  hyperscan-master\chimera\CMakeLists.txt
     文件        1912  2020-05-25 14:30  hyperscan-master\chimera\ch.h
     文件        3757  2020-05-25 14:30  hyperscan-master\chimera\ch_alloc.c
     文件        2394  2020-05-25 14:30  hyperscan-master\chimera\ch_alloc.h
     文件       11730  2020-05-25 14:30  hyperscan-master\chimera\ch_common.h
     文件       30117  2020-05-25 14:30  hyperscan-master\chimera\ch_compile.cpp
     文件       16278  2020-05-25 14:30  hyperscan-master\chimera\ch_compile.h
     文件        3930  2020-05-25 14:30  hyperscan-master\chimera\ch_database.c
     文件        5741  2020-05-25 14:30  hyperscan-master\chimera\ch_database.h
     文件        2109  2020-05-25 14:30  hyperscan-master\chimera\ch_internal.h
     文件       21357  2020-05-25 14:30  hyperscan-master\chimera\ch_runtime.c
     文件       12460  2020-05-25 14:30  hyperscan-master\chimera\ch_runtime.h
     文件       10042  2020-05-25 14:30  hyperscan-master\chimera\ch_scratch.c
     文件        4358  2020-05-25 14:30  hyperscan-master\chimera\ch_scratch.h
     文件         360  2020-05-25 14:30  hyperscan-master\chimera\libch.pc.in
     目录           0  2020-05-25 14:30  hyperscan-master\cmake\
     文件        2716  2020-05-25 14:30  hyperscan-master\cmake\arch.cmake
     文件         362  2020-05-25 14:30  hyperscan-master\cmake\attrib.cmake
     文件        2052  2020-05-25 14:30  hyperscan-master\cmake\backtrace.cmake
     文件        2383  2020-05-25 14:30  hyperscan-master\cmake\boost.cmake
     文件         933  2020-05-25 14:30  hyperscan-master\cmake\build_wrapper.sh
     文件        2649  2020-05-25 14:30  hyperscan-master\cmake\config.h.in
............此处省略860个文件信息

评论

共有 条评论