7 backdoor_put_int32 (int32_t value,
8 void (*out) (uint8_t, void *aux), void *aux)
10 out ((value >> 24) & 0xff, aux);
11 out ((value >> 16) & 0xff, aux);
12 out ((value >> 8) & 0xff, aux);
13 out (value & 0xff, aux);
17 backdoor_put_uint32 (uint32_t value,
18 void (*out) (uint8_t, void *aux), void *aux)
20 out ((value >> 24) & 0xff, aux);
21 out ((value >> 16) & 0xff, aux);
22 out ((value >> 8) & 0xff, aux);
23 out (value & 0xff, aux);
27 backdoor_put_bytes (const void *buffer, size_t cnt,
28 void (*out) (uint8_t, void *aux), void *aux)
30 const uint8_t *p = buffer;
33 for (i = 0; i < cnt; i++)
38 backdoor_put_string (const char *string,
39 void (*out) (uint8_t, void *aux), void *aux)
41 size_t length = strlen (string);
43 backdoor_put_uint32 (length, out, aux);
44 backdoor_put_bytes (string, length, out, aux);
48 backdoor_put_bool (bool b,
49 void (*out) (uint8_t, void *aux), void *aux)
51 backdoor_put_uint32 (b, out, aux);
55 backdoor_get_int32 (uint8_t (*in) (void *aux), void *aux)
61 for (i = 0; i < 4; i++)
62 value = (value << 8) | in (aux);
67 backdoor_get_uint32 (uint8_t (*in) (void *aux), void *aux)
69 return backdoor_get_int32 (in, aux);
73 backdoor_get_string (uint8_t (*in) (void *aux), void *aux)
75 size_t length = backdoor_get_uint32 (in, aux);
76 char *string = malloc (length + 1);
77 backdoor_get_bytes (string, length, in, aux);
78 string[length] = '\0';
83 backdoor_get_bytes (void *buffer, size_t cnt,
84 uint8_t (*in) (void *aux), void *aux)
89 for (i = 0; i < cnt; i++)
94 backdoor_get_bool (uint8_t (*in) (void *aux), void *aux)
96 return backdoor_get_uint32 (in, aux) != 0;