#ifndef SA_SVP_H
#define SA_SVP_H
#include "sa_types.h"
#ifdef __cplusplus
extern "C" {
#endif
sa_status sa_svp_supported();
sa_status sa_svp_memory_alloc(
void** svp_memory,
size_t size);
sa_status sa_svp_buffer_alloc(
sa_svp_buffer* svp_buffer,
size_t size);
sa_status sa_svp_buffer_create(
sa_svp_buffer* svp_buffer,
void* svp_memory,
size_t size);
sa_status sa_svp_memory_free(void* svp_memory);
sa_status sa_svp_buffer_free(sa_svp_buffer svp_buffer);
sa_status sa_svp_buffer_release(
void** svp_memory,
size_t* size,
sa_svp_buffer svp_buffer);
sa_status sa_svp_buffer_write(
sa_svp_buffer out,
const void* in,
size_t in_length,
sa_svp_offset* offsets,
size_t offsets_length);
sa_status sa_svp_buffer_copy(
sa_svp_buffer out,
sa_svp_buffer in,
sa_svp_offset* offsets,
size_t offsets_length);
sa_status sa_svp_key_check(
sa_key key,
sa_buffer* in,
size_t bytes_to_process,
const void* expected,
size_t expected_length);
sa_status sa_svp_buffer_check(
sa_svp_buffer svp_buffer,
size_t offset,
size_t length,
sa_digest_algorithm digest_algorithm,
const void* hash,
size_t hash_length);
#ifdef __cplusplus
}
#endif
#endif