35#define LINK_MINOR_SERVO_RATE 1u
81 uint16_t minor,
const uint16_t *cfg,
113 uint16_t slots[LINK_OS_COUNT];
114 uint16_t cfg[LINK_CC_COUNT];
155 const uint16_t *slots,
const uint16_t *cfg);
bind_read_t bind_link_read(link_host_t *h, const link_port_t *port, uint16_t board, bind_reading_t *out)
Read OUTPUTS and then CHAN_CFG, two exchanges, and classify them.
Definition bind_link.c:158
bool bind_link_may_write(bind_read_t last, uint16_t board, const outbind_t *b)
Whether a binding b may be written while the last reading is last and the IOmcu answering is board bo...
Definition bind_link.c:104
bind_read_t bind_link_classify(bind_reading_t *out, uint16_t board, const uint16_t *slots, const uint16_t *cfg)
Tell the four states apart from two replies.
Definition bind_link.c:122
bind_write_t bind_link_write(link_host_t *h, const link_port_t *port, uint16_t minor, const uint16_t *cfg, const uint16_t *slots, bind_rate_t *rate)
Write a CHAN_CFG page cfg and an OUTPUTS page slots, each frame its own acknowledged exchange (link_w...
Definition bind_link.c:49
bind_write_t
What became of a binding written.
Definition bind_link.h:28
@ BIND_REFUSED
Definition bind_link.h:31
@ BIND_WRITTEN
Definition bind_link.h:29
@ BIND_NO_LINK
Definition bind_link.h:30
bind_read_t
What a read of the two pages gave.
Definition bind_link.h:85
@ BIND_READ_NONE
A page did not read: unanswered or refused.
Definition bind_link.h:94
@ BIND_READ_OK
Both pages read and the binding model describes them; a page with nothing bound is this.
Definition bind_link.h:89
@ BIND_READ_NO_BOARD
Both pages read and this build has no pin map for the board.
Definition bind_link.h:101
@ BIND_READ_ODD
Both pages read and no binding this model can hold renders to them: a pin in two slots,...
Definition bind_link.h:99
bind_rate_t
What became of the SERVO rate reset that leads a binding.
Definition bind_link.h:38
@ BIND_RATE_NO_ANSWER
Definition bind_link.h:42
@ BIND_RATE_REFUSED
Definition bind_link.h:41
@ BIND_RATE_NOT_SENT
Definition bind_link.h:39
@ BIND_RATE_LANDED
Definition bind_link.h:40
The panel's half of the link: poll, match the reply to the question, and escalate when the answers st...
The page map: what the panel can ask the IOmcu for, and set.
A write of any width, one frame in flight at a time.
Binding a protocol to pins: what the operator chooses, and the OUTPUTS page that comes out of it.
One reading of the two output pages, and the binding it gives.
Definition bind_link.h:105
outbind_t bind
Definition bind_link.h:108
bind_read_t state
Definition bind_link.h:106
bool pages
Whether the two arrays below hold pages read: every state except BIND_READ_NONE.
Definition bind_link.h:112
The panel's state for one link: the outstanding request, the counters and the reassembly buffer.
Definition link_host.h:35
How a request reaches the far end and its answer comes back.
Definition link_port.h:52
The selection: which board, the protocol being edited, and each protocol's pins.
Definition out_bind.h:423