From ed809a51fdd1c313cd256301ef6f7211e8394cb1 Mon Sep 17 00:00:00 2001 From: David Timber Date: Wed, 1 Jan 2020 09:50:34 +1100 Subject: checkpoint --- src/pack.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/pack.h (limited to 'src/pack.h') diff --git a/src/pack.h b/src/pack.h new file mode 100644 index 0000000..9f37cb5 --- /dev/null +++ b/src/pack.h @@ -0,0 +1,47 @@ +#pragma once +#include +#include + +#include "protocol.h" + + +typedef struct prne_bin_archive prne_bin_archive_t; +typedef struct prne_unpack_bin_archive_result prne_unpack_bin_archive_result_t; + +struct prne_bin_archive { + size_t data_size; + uint8_t *data; + size_t nb_binaries; + prne_arch_t *arch_arr; + size_t *offset_arr; + size_t *size_arr; +}; + +typedef enum { + PRNE_UNPACK_BIN_ARCHIVE_OK, + PRNE_UNPACK_BIN_ARCHIVE_OPENSSL_ERR, + PRNE_UNPACK_BIN_ARCHIVE_Z_ERR, + PRNE_UNPACK_BIN_ARCHIVE_ERRNO, + PRNE_UNPACK_BIN_ARCHIVE_MEM_ERR +} prne_unpack_bin_archive_result_code_t; + +struct prne_unpack_bin_archive_result { + size_t data_size; + uint8_t *data; + prne_unpack_bin_archive_result_code_t result; + long err; +}; + +typedef enum { + PRNE_INDEX_BIN_ARCHIVE_OK, + PRNE_INDEX_BIN_ARCHIVE_FMT_ERR, + PRNE_INDEX_BIN_ARCHIVE_MEM_ERR +} prne_index_bin_archive_result_code_t; + + +void prne_init_bin_archive (prne_bin_archive_t *a); +void prne_init_unpack_bin_archive_result (prne_unpack_bin_archive_result_t *r); +prne_unpack_bin_archive_result_t prne_unpack_bin_archive (const int fd); +prne_index_bin_archive_result_code_t prne_index_bin_archive (prne_unpack_bin_archive_result_t *in, prne_bin_archive_t *out); +void prne_free_unpack_bin_archive_result (prne_unpack_bin_archive_result_t *r); +void prne_free_bin_archive (prne_bin_archive_t *a); -- cgit