示例#1
0
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;
}