Lines Matching refs:can_id
345 static unsigned int effhash(canid_t can_id) in effhash() argument
349 hash = can_id; in effhash()
350 hash ^= can_id >> CAN_EFF_RCV_HASH_BITS; in effhash()
351 hash ^= can_id >> (2 * CAN_EFF_RCV_HASH_BITS); in effhash()
383 static struct hlist_head *find_rcv_list(canid_t *can_id, canid_t *mask, in find_rcv_list() argument
386 canid_t inv = *can_id & CAN_INV_FILTER; /* save flag before masking */ in find_rcv_list()
400 if ((*mask & CAN_EFF_FLAG) && !(*can_id & CAN_EFF_FLAG)) in find_rcv_list()
404 *can_id &= *mask; in find_rcv_list()
416 !(*can_id & CAN_RTR_FLAG)) { in find_rcv_list()
418 if (*can_id & CAN_EFF_FLAG) { in find_rcv_list()
420 return &d->rx_eff[effhash(*can_id)]; in find_rcv_list()
423 return &d->rx_sff[*can_id]; in find_rcv_list()
461 int can_rx_register(struct net *net, struct net_device *dev, canid_t can_id, in can_rx_register() argument
487 rl = find_rcv_list(&can_id, &mask, d); in can_rx_register()
489 r->can_id = can_id; in can_rx_register()
538 void can_rx_unregister(struct net *net, struct net_device *dev, canid_t can_id, in can_rx_unregister() argument
559 DNAME(dev), can_id, mask); in can_rx_unregister()
563 rl = find_rcv_list(&can_id, &mask, d); in can_rx_unregister()
572 if (r->can_id == can_id && r->mask == mask && in can_rx_unregister()
584 "id %03X, mask %03X\n", DNAME(dev), can_id, mask); in can_rx_unregister()
623 canid_t can_id = cf->can_id; in can_rcv_filter() local
628 if (can_id & CAN_ERR_FLAG) { in can_rcv_filter()
631 if (can_id & r->mask) { in can_rcv_filter()
647 if ((can_id & r->mask) == r->can_id) { in can_rcv_filter()
655 if ((can_id & r->mask) != r->can_id) { in can_rcv_filter()
662 if (can_id & CAN_RTR_FLAG) in can_rcv_filter()
665 if (can_id & CAN_EFF_FLAG) { in can_rcv_filter()
666 hlist_for_each_entry_rcu(r, &d->rx_eff[effhash(can_id)], list) { in can_rcv_filter()
667 if (r->can_id == can_id) { in can_rcv_filter()
673 can_id &= CAN_SFF_MASK; in can_rcv_filter()
674 hlist_for_each_entry_rcu(r, &d->rx_sff[can_id], list) { in can_rcv_filter()