Lines Matching refs:cm
52 static void em_canid_sff_match_add(struct canid_match *cm, u32 can_id, in em_canid_sff_match_add() argument
66 set_bit(can_id, cm->match_sff); in em_canid_sff_match_add()
72 bitmap_fill(cm->match_sff, (1 << CAN_SFF_ID_BITS)); in em_canid_sff_match_add()
83 set_bit(i, cm->match_sff); in em_canid_sff_match_add()
95 struct canid_match *cm = em_canid_priv(m); in em_canid_match() local
104 for (i = 0, lp = cm->rules_raw; in em_canid_match()
105 i < cm->eff_rules_count; i++, lp++) { in em_canid_match()
113 match = (test_bit(can_id, cm->match_sff) ? 1 : 0); in em_canid_match()
123 struct canid_match *cm; in em_canid_change() local
135 cm = kzalloc(sizeof(struct canid_match) + len, GFP_KERNEL); in em_canid_change()
136 if (!cm) in em_canid_change()
139 cm->rules_count = len / sizeof(struct can_filter); in em_canid_change()
152 for (i = 0; i < cm->rules_count; i++) { in em_canid_change()
154 memcpy(cm->rules_raw + cm->eff_rules_count, in em_canid_change()
158 cm->eff_rules_count++; in em_canid_change()
163 for (i = 0; i < cm->rules_count; i++) { in em_canid_change()
165 memcpy(cm->rules_raw in em_canid_change()
166 + cm->eff_rules_count in em_canid_change()
167 + cm->sff_rules_count, in em_canid_change()
170 cm->sff_rules_count++; in em_canid_change()
172 em_canid_sff_match_add(cm, in em_canid_change()
178 m->data = (unsigned long)cm; in em_canid_change()
184 struct canid_match *cm = em_canid_priv(m); in em_canid_destroy() local
186 kfree(cm); in em_canid_destroy()
191 struct canid_match *cm = em_canid_priv(m); in em_canid_dump() local
197 if (nla_put_nohdr(skb, sizeof(struct can_filter) * cm->rules_count, in em_canid_dump()
198 &cm->rules_raw) < 0) in em_canid_dump()