diff options
author | David Timber <mieabby@gmail.com> | 2020-01-01 09:50:34 +1100 |
---|---|---|
committer | David Timber <mieabby@gmail.com> | 2020-01-01 09:50:34 +1100 |
commit | ed809a51fdd1c313cd256301ef6f7211e8394cb1 (patch) | |
tree | 81a3054ce0d42976f80c973e2b6ebf9c1b8b7476 /src/pack.h | |
parent | 6e456edb2757cf9d28d306afb836aa16780fb912 (diff) |
checkpoint
Diffstat (limited to 'src/pack.h')
-rw-r--r-- | src/pack.h | 47 |
1 files changed, 47 insertions, 0 deletions
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 <stdint.h> +#include <stdbool.h> + +#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); |