#ifndef OPENSSL_HEADER_MEM_H
#define OPENSSL_HEADER_MEM_H
#include <openssl/base.h>
#include <stdlib.h>
#include <stdarg.h>
#if defined(__cplusplus)
extern "C" {
#endif
OPENSSL_EXPORT void *OPENSSL_malloc(size_t size);
OPENSSL_EXPORT void OPENSSL_free(void *ptr);
OPENSSL_EXPORT void *OPENSSL_realloc(void *ptr, size_t new_size);
OPENSSL_EXPORT void OPENSSL_cleanse(void *ptr, size_t len);
OPENSSL_EXPORT int CRYPTO_memcmp(const void *a, const void *b, size_t len);
OPENSSL_EXPORT uint32_t OPENSSL_hash32(const void *ptr, size_t len);
OPENSSL_EXPORT uint32_t OPENSSL_strhash(const char *s);
OPENSSL_EXPORT char *OPENSSL_strdup(const char *s);
OPENSSL_EXPORT size_t OPENSSL_strnlen(const char *s, size_t len);
OPENSSL_EXPORT int OPENSSL_tolower(int c);
OPENSSL_EXPORT int OPENSSL_strcasecmp(const char *a, const char *b);
OPENSSL_EXPORT int OPENSSL_strncasecmp(const char *a, const char *b, size_t n);
#define DECIMAL_SIZE(type) ((sizeof(type)*8+2)/3+1)
OPENSSL_EXPORT int BIO_snprintf(char *buf, size_t n, const char *format, ...)
OPENSSL_PRINTF_FORMAT_FUNC(3, 4);
OPENSSL_EXPORT int BIO_vsnprintf(char *buf, size_t n, const char *format,
va_list args) OPENSSL_PRINTF_FORMAT_FUNC(3, 0);
OPENSSL_EXPORT char *OPENSSL_strndup(const char *str, size_t size);
OPENSSL_EXPORT void *OPENSSL_memdup(const void *data, size_t size);
OPENSSL_EXPORT size_t OPENSSL_strlcpy(char *dst, const char *src,
size_t dst_size);
OPENSSL_EXPORT size_t OPENSSL_strlcat(char *dst, const char *src,
size_t dst_size);
OPENSSL_EXPORT void *CRYPTO_malloc(size_t size, const char *file, int line);
OPENSSL_EXPORT void *CRYPTO_realloc(void *ptr, size_t new_size,
const char *file, int line);
OPENSSL_EXPORT void CRYPTO_free(void *ptr, const char *file, int line);
OPENSSL_EXPORT void OPENSSL_clear_free(void *ptr, size_t len);
OPENSSL_EXPORT int CRYPTO_set_mem_functions(
void *(*m)(size_t, const char *, int),
void *(*r)(void *, size_t, const char *, int),
void (*f)(void *, const char *, int));
OPENSSL_EXPORT int CRYPTO_secure_malloc_init(size_t size, size_t min_size);
OPENSSL_EXPORT int CRYPTO_secure_malloc_initialized(void);
OPENSSL_EXPORT size_t CRYPTO_secure_used(void);
OPENSSL_EXPORT void *OPENSSL_secure_malloc(size_t size);
OPENSSL_EXPORT void OPENSSL_secure_clear_free(void *ptr, size_t len);
#if defined(__cplusplus)
}
extern "C++" {
BSSL_NAMESPACE_BEGIN
BORINGSSL_MAKE_DELETER(char, OPENSSL_free)
BORINGSSL_MAKE_DELETER(uint8_t, OPENSSL_free)
BSSL_NAMESPACE_END
}
#endif
#endif