static uint32_t readXLinkStateReg(const Node *node, const XLink &xLink) { unsigned value = 0; if (node->getType() == Node::XS1_G) { setBitRange(value, xLink.getInterTokenDelay(), 3, 0); setBitRange(value, xLink.getInterSymbolDelay(), 11, 8); } else { setBitRange(value, xLink.getInterTokenDelay(), 10, 0); setBitRange(value, xLink.getInterSymbolDelay(), 21, 11); } bool isConnected = xLink.isConnected(); if (node->getType() != Node::XS1_G) { setBit(value, isConnected, 25); setBit(value, isConnected, 26); } setBit(value, xLink.isFiveWire(), 30); setBit(value, xLink.isEnabled(), 31); return value; }