42
     7�ÆÀÄ      7File not found.
  +   9ˆl–Ðz¾”ªe¶…8 ^¸ÜdJbÑ¿¿„ám¯_†I|¥�+ÂÆ ?÷     9/*
 * WARNING: do not edit!
 * Generated by Makefile from include/openssl/safestack.h.in
 *
 * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved.
 *
 * Licensed under the Apache License 2.0 (the "License").  You may not use
 * this file except in compliance with the License.  You can obtain a copy
 * in the file LICENSE in the source distribution or at
 * https://www.openssl.org/source/license.html
 */

/* clang-format off */

/* clang-format on */

#ifndef OPENSSL_SAFESTACK_H
#define OPENSSL_SAFESTACK_H
#pragma once

#include <openssl/macros.h>
#ifndef OPENSSL_NO_DEPRECATED_3_0
#define HEADER_SAFESTACK_H
#endif

#include <openssl/stack.h>
#include <openssl/e_os2.h>

#ifdef __cplusplus
extern "C" {
#endif

#define STACK_OF(type) struct stack_st_##type

/* Helper macro for internal use */
#define SKM_DEFINE_STACK_OF_INTERNAL(t1, t2, t3)                                                                \
    STACK_OF(t1);                                                                                               \
    typedef int (*sk_##t1##_compfunc)(const t3 *const *a, const t3 *const *b);                                  \
    typedef void (*sk_##t1##_freefunc)(t3 * a);                                                                 \
    typedef t3 *(*sk_##t1##_copyfunc)(const t3 *a);                                                             \
    static ossl_unused ossl_inline t2 *ossl_check_##t1##_type(t2 *ptr)                                          \
    {                                                                                                           \
        return ptr;                                                                                             \
    }                                                                                                           \
    static ossl_unused ossl_inline const OPENSSL_STACK *ossl_check_const_##t1##_sk_type(const STACK_OF(t1) *sk) \
    {                                                                                                           \
        return (const OPENSSL_STACK *)sk;                                                                       \
    }                                                                                                           \
    static ossl_unused ossl_inline OPENSSL_STACK *ossl_check_##t1##_sk_type(STACK_OF(t1) *sk)                   \
    {                                                                                                           \
        return (OPENSSL_STACK *)sk;                                                                             \
    }                                                                                                           \
    static ossl_unused ossl_inline OPENSSL_sk_compfunc ossl_check_##t1##_compfunc_type(sk_##t1##_compfunc cmp)  \
    {                                                                                                           \
        return (OPENSSL_sk_compfunc)cmp;                                                                        \
    }                                                                                                           \
    static ossl_unused ossl_inline OPENSSL_sk_copyfunc ossl_check_##t1##_copyfunc_type(sk_##t1##_copyfunc cpy)  \
    {                                                                                                           \
        return (OPENSSL_sk_copyfunc)cpy;                                                                        \
    }                                                                                                           \
    static ossl_unused ossl_inline OPENSSL_sk_freefunc ossl_check_##t1##_freefunc_type(sk_##t1##_freefunc fr)   \
    {                                                                                                           \
        return (OPENSSL_sk_freefunc)fr;                                                           