28#ifndef PROTOCORE_IFACE_BRIDGE_H
29#define PROTOCORE_IFACE_BRIDGE_H
33#if PROTOCORE_ENABLE_IFACE_BRIDGE
43#define PROTOCORE_BRIDGE_TXN_HDR 4
54 BRIDGE_MODE_STREAM = 0,
55 BRIDGE_MODE_TRANSACTION = 1
64typedef struct BridgeTarget
87 const BridgeRule *rule;
96 const BridgeTarget *target;
104} IfaceBridgeFindArgs;
113 const uint8_t **write_data;
114} IfaceBridgeTxnParseArgs;
121 const uint8_t *write_data;
124} IfaceBridgeTxnBuildArgs;
157 IfaceBridgeAddArgs add_args;
158 IfaceBridgeMapArgs map_args;
159 IfaceBridgeFindArgs find_args;
160 IfaceBridgeTxnParseArgs txn_parse_args;
161 IfaceBridgeTxnBuildArgs txn_build_args;
163 const BridgeRule *rule;
169extern IfaceBridgeVars IfaceBridgeV;
174 void (*
const clear)(uint8_t *work);
175 void (*
const add)(uint8_t *work);
176 void (*
const map)(uint8_t *work);
177 void (*
const find)(uint8_t *work);
178 void (*
const count)(uint8_t *work);
179 void (*
const txn_parse)(uint8_t *work);
180 void (*
const txn_build)(uint8_t *work);
185void protocore_iface_bridge_clear(uint8_t *work);
186void protocore_iface_bridge_add(uint8_t *work);
187void protocore_iface_bridge_map(uint8_t *work);
188void protocore_iface_bridge_find(uint8_t *work);
189void protocore_iface_bridge_count(uint8_t *work);
190void protocore_iface_bridge_txn_parse(uint8_t *work);
191void protocore_iface_bridge_txn_build(uint8_t *work);
197static const IfaceBridgeNs IfaceBridge __attribute__((unused)) = {
198 .clear = protocore_iface_bridge_clear,
199 .add = protocore_iface_bridge_add,
200 .map = protocore_iface_bridge_map,
201 .find = protocore_iface_bridge_find,
202 .count = protocore_iface_bridge_count,
203 .txn_parse = protocore_iface_bridge_txn_parse,
204 .txn_build = protocore_iface_bridge_txn_build,
216uint8_t *protocore_iface_bridge_span(
void);
PROTO_ENUM_PACKED
Application protocol spoken on a listener port or connection slot.
Layer 3 (Network) - a family-tagged IP address (IPv4 or IPv6) with RFC-faithful text parsing,...
A v4 or v6 address in network (big-endian) byte order.
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS