29#ifndef PROTOCORE_IOLINK_H
30#define PROTOCORE_IOLINK_H
34#if PROTOCORE_ENABLE_IOLINK
42#define IOL_CHECKSUM_SEED 0x52u
45#define IOL_MC_READ 0x80u
46#define IOL_MC_WRITE 0x00u
47#define IOL_CH_PROCESS 0u
49#define IOL_CH_DIAGNOSIS 2u
53#define IOL_MSEQ_TYPE_0 0u
54#define IOL_MSEQ_TYPE_1 1u
55#define IOL_MSEQ_TYPE_2 2u
58#define IOL_CKS_EVENT 0x80u
59#define IOL_CKS_PD_INVALID 0x40u
61#define IOL_CHECK_HIGH_MASK 0xC0u
62#define IOL_CHECK_SUM_MASK 0x3Fu
110} IolinkChecksum6Args;
167 IolinkMcArgs mc_args;
168 IolinkMcIsReadArgs mc_is_read_args;
169 IolinkMcChannelArgs mc_channel_args;
170 IolinkMcAddressArgs mc_address_args;
171 IolinkCktArgs ckt_args;
172 IolinkCksArgs cks_args;
173 IolinkChecksum6Args checksum6_args;
174 IolinkFinalizeArgs finalize_args;
175 IolinkVerifyArgs verify_args;
181extern IolinkVars IolinkV;
186 void (*
const mc)(uint8_t *work);
187 void (*
const mc_is_read)(uint8_t *work);
188 void (*
const mc_channel)(uint8_t *work);
189 void (*
const mc_address)(uint8_t *work);
190 void (*
const ckt)(uint8_t *work);
191 void (*
const cks)(uint8_t *work);
192 void (*
const checksum6)(uint8_t *work);
193 void (*
const finalize)(uint8_t *work);
194 void (*
const verify)(uint8_t *work);
199void protocore_iolink_mc(uint8_t *work);
200void protocore_iolink_mc_is_read(uint8_t *work);
201void protocore_iolink_mc_channel(uint8_t *work);
202void protocore_iolink_mc_address(uint8_t *work);
203void protocore_iolink_ckt(uint8_t *work);
204void protocore_iolink_cks(uint8_t *work);
205void protocore_iolink_checksum6(uint8_t *work);
206void protocore_iolink_finalize(uint8_t *work);
207void protocore_iolink_verify(uint8_t *work);
213static const IolinkNs Iolink __attribute__((unused)) = {
214 .mc = protocore_iolink_mc,
215 .mc_is_read = protocore_iolink_mc_is_read,
216 .mc_channel = protocore_iolink_mc_channel,
217 .mc_address = protocore_iolink_mc_address,
218 .ckt = protocore_iolink_ckt,
219 .cks = protocore_iolink_cks,
220 .checksum6 = protocore_iolink_checksum6,
221 .finalize = protocore_iolink_finalize,
222 .verify = protocore_iolink_verify,
#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