Lines Matching defs:mask
324 * Hash value from 0x000 - 0x3FF ( enforced by CAN_EFF_RCV_HASH_BITS mask )
340 * @mask: pointer to CAN mask of a given can_filter
350 * <received_can_id> & mask == can_id & mask
352 * so every bit set in the mask (even CAN_EFF_FLAG, CAN_RTR_FLAG) describe
356 * filter for error messages (CAN_ERR_FLAG bit set in mask). For error msg
360 * Pointer to optimal filterlist for the given can_id/mask pair.
361 * Consistency checked mask.
364 static struct hlist_head *can_rcv_list_find(canid_t *can_id, canid_t *mask,
370 if (*mask & CAN_ERR_FLAG) {
372 *mask &= CAN_ERR_MASK;
376 /* with cleared CAN_ERR_FLAG we have a simple mask/value filterpair */
381 if ((*mask & CAN_EFF_FLAG) && !(*can_id & CAN_EFF_FLAG))
382 *mask &= (CAN_SFF_MASK | CAN_EFF_RTR_FLAGS);
385 *can_id &= *mask;
391 /* mask == 0 => no condition testing at receive time */
392 if (!(*mask))
396 if (((*mask & CAN_EFF_RTR_FLAGS) == CAN_EFF_RTR_FLAGS) &&
399 if (*mask == (CAN_EFF_MASK | CAN_EFF_RTR_FLAGS))
402 if (*mask == (CAN_SFF_MASK | CAN_EFF_RTR_FLAGS))
416 * @mask: CAN mask (see description)
426 * <received_can_id> & mask == can_id & mask
429 * filter for error message frames (CAN_ERR_FLAG bit set in mask).
443 canid_t mask, void (*func)(struct sk_buff *, void *),
452 /* insert new receiver (dev,canid,mask) -> (func,data) */
467 rcv_list = can_rcv_list_find(&can_id, &mask, dev_rcv_lists);
470 rcv->mask = mask;
505 * @mask: CAN mask
513 canid_t mask, void (*func)(struct sk_buff *, void *),
530 rcv_list = can_rcv_list_find(&can_id, &mask, dev_rcv_lists);
537 if (rcv->can_id == can_id && rcv->mask == mask &&
549 pr_warn("can: receive list entry not found for dev %s, id %03X, mask %03X\n",
550 DNAME(dev), can_id, mask);
591 if (can_id & rcv->mask) {
605 /* check for can_id/mask entries */
607 if ((can_id & rcv->mask) == rcv->can_id) {
613 /* check for inverted can_id/mask entries */
615 if ((can_id & rcv->mask) != rcv->can_id) {