diff options
author | David Timber <mieabby@gmail.com> | 2021-08-09 17:30:18 +1000 |
---|---|---|
committer | David Timber <mieabby@gmail.com> | 2021-08-09 19:20:40 +1000 |
commit | eea0a9fbbf1aff1eac1f17914d5c116de98e1d93 (patch) | |
tree | 776e61c070d7afa0df683093b82f327631534341 /src/pack.h | |
parent | f6e94a01fd84b693c5a74b8f40edb4dc89836bdf (diff) |
Protocol and build system change ...
* Use autoheader
* Add --enable-minmem
* Add OS code. Bin archive and protocol changed accordingly
* Add instance flags in hostinfo frame. Bitfield util added for this
* Add org_id in hostinfo for lineage record
* SQL schema change: store integer value of hostinfo arch and os
* Remove config.c
* prne_index_nybin() now sets errno
* Instance ids are now preserved for lineage record
* Proone: remove arguments after init
* Fix bug in prne_htbt_ser_bin_meta(): alloc_len is not checked
Diffstat (limited to 'src/pack.h')
-rw-r--r-- | src/pack.h | 26 |
1 files changed, 19 insertions, 7 deletions
@@ -7,6 +7,7 @@ #include <zlib.h> +typedef struct prne_bin_host prne_bin_host_t; typedef struct prne_bin_tuple prne_bin_tuple_t; typedef struct prne_bin_archive prne_bin_archive_t; typedef struct prne_bin_rcb_ctx prne_bin_rcb_ctx_t; @@ -20,13 +21,19 @@ typedef enum { PRNE_PACK_RC_ERRNO, PRNE_PACK_RC_Z_ERR, PRNE_PACK_RC_NO_ARCH, + PRNE_PACK_RC_UNIMPL_REV, NB_PRNE_PACK_RC } prne_pack_rc_t; +struct prne_bin_host { + prne_os_t os; + prne_arch_t arch; +}; + struct prne_bin_tuple { size_t size; - prne_arch_t arch; + prne_bin_host_t host; }; struct prne_bin_archive { @@ -55,9 +62,14 @@ struct prne_rcb_param { const uint8_t *m_dv; size_t dv_len; const prne_bin_archive_t *ba; - prne_arch_t self; + prne_bin_host_t self; }; +static const char PRNE_PACK_BA_IDEN_DATA[] = { 'p', 'r', '-', 'b', 'a' }; +static const char PRNE_PACK_NYBIN_IDEN_DATA[] = { 'n', 'y', 'b', 'i', 'n' }; + +bool prne_eq_bin_host (const prne_bin_host_t *a, const prne_bin_host_t *b); +bool prne_bin_host_inrange (const prne_bin_host_t *x); void prne_init_bin_archive (prne_bin_archive_t *a); void prne_free_bin_archive (prne_bin_archive_t *a); prne_pack_rc_t prne_index_bin_archive ( @@ -69,8 +81,8 @@ void prne_init_bin_rcb_ctx (prne_bin_rcb_ctx_t *ctx); void prne_free_bin_rcb_ctx (prne_bin_rcb_ctx_t *ctx); prne_pack_rc_t prne_start_bin_rcb ( prne_bin_rcb_ctx_t *ctx, - const prne_arch_t target, - const prne_arch_t self, + const prne_bin_host_t target, + const prne_bin_host_t *self, const uint8_t *m_self, const size_t self_len, const size_t exec_len, @@ -79,15 +91,15 @@ prne_pack_rc_t prne_start_bin_rcb ( const prne_bin_archive_t *ba); prne_pack_rc_t prne_start_bin_rcb_compat ( prne_bin_rcb_ctx_t *ctx, - const prne_arch_t target, - const prne_arch_t self, + const prne_bin_host_t target, + const prne_bin_host_t *self, const uint8_t *m_self, const size_t self_len, const size_t exec_len, const uint8_t *m_dvault, const size_t dvault_len, const prne_bin_archive_t *ba, - prne_arch_t *actual); + prne_bin_host_t *actual); ssize_t prne_bin_rcb_read ( prne_bin_rcb_ctx_t *ctx, uint8_t *buf, |