Lines Matching refs:cf
99 void (*modfunc[MAX_MODFUNCTIONS])(struct can_frame *cf,
108 void (*xor)(struct can_frame *cf, struct cgw_csum_xor *xor);
109 void (*crc8)(struct can_frame *cf, struct cgw_csum_crc8 *crc8);
154 #define MODFUNC(func, op) static void func(struct can_frame *cf, \
157 MODFUNC(mod_and_id, cf->can_id &= mod->modframe.and.can_id)
158 MODFUNC(mod_and_dlc, cf->can_dlc &= mod->modframe.and.can_dlc)
159 MODFUNC(mod_and_data, *(u64 *)cf->data &= *(u64 *)mod->modframe.and.data)
160 MODFUNC(mod_or_id, cf->can_id |= mod->modframe.or.can_id)
161 MODFUNC(mod_or_dlc, cf->can_dlc |= mod->modframe.or.can_dlc)
162 MODFUNC(mod_or_data, *(u64 *)cf->data |= *(u64 *)mod->modframe.or.data)
163 MODFUNC(mod_xor_id, cf->can_id ^= mod->modframe.xor.can_id)
164 MODFUNC(mod_xor_dlc, cf->can_dlc ^= mod->modframe.xor.can_dlc)
165 MODFUNC(mod_xor_data, *(u64 *)cf->data ^= *(u64 *)mod->modframe.xor.data)
166 MODFUNC(mod_set_id, cf->can_id = mod->modframe.set.can_id)
167 MODFUNC(mod_set_dlc, cf->can_dlc = mod->modframe.set.can_dlc)
168 MODFUNC(mod_set_data, *(u64 *)cf->data = *(u64 *)mod->modframe.set.data)
210 static void cgw_csum_xor_rel(struct can_frame *cf, struct cgw_csum_xor *xor) in cgw_csum_xor_rel() argument
212 int from = calc_idx(xor->from_idx, cf->can_dlc); in cgw_csum_xor_rel()
213 int to = calc_idx(xor->to_idx, cf->can_dlc); in cgw_csum_xor_rel()
214 int res = calc_idx(xor->result_idx, cf->can_dlc); in cgw_csum_xor_rel()
223 val ^= cf->data[i]; in cgw_csum_xor_rel()
226 val ^= cf->data[i]; in cgw_csum_xor_rel()
229 cf->data[res] = val; in cgw_csum_xor_rel()
232 static void cgw_csum_xor_pos(struct can_frame *cf, struct cgw_csum_xor *xor) in cgw_csum_xor_pos() argument
238 val ^= cf->data[i]; in cgw_csum_xor_pos()
240 cf->data[xor->result_idx] = val; in cgw_csum_xor_pos()
243 static void cgw_csum_xor_neg(struct can_frame *cf, struct cgw_csum_xor *xor) in cgw_csum_xor_neg() argument
249 val ^= cf->data[i]; in cgw_csum_xor_neg()
251 cf->data[xor->result_idx] = val; in cgw_csum_xor_neg()
254 static void cgw_csum_crc8_rel(struct can_frame *cf, struct cgw_csum_crc8 *crc8) in cgw_csum_crc8_rel() argument
256 int from = calc_idx(crc8->from_idx, cf->can_dlc); in cgw_csum_crc8_rel()
257 int to = calc_idx(crc8->to_idx, cf->can_dlc); in cgw_csum_crc8_rel()
258 int res = calc_idx(crc8->result_idx, cf->can_dlc); in cgw_csum_crc8_rel()
267 crc = crc8->crctab[crc^cf->data[i]]; in cgw_csum_crc8_rel()
270 crc = crc8->crctab[crc^cf->data[i]]; in cgw_csum_crc8_rel()
280 crc = crc8->crctab[crc^crc8->profile_data[cf->data[1] & 0xF]]; in cgw_csum_crc8_rel()
284 crc = crc8->crctab[crc^(cf->can_id & 0xFF)^ in cgw_csum_crc8_rel()
285 (cf->can_id >> 8 & 0xFF)]; in cgw_csum_crc8_rel()
290 cf->data[crc8->result_idx] = crc^crc8->final_xor_val; in cgw_csum_crc8_rel()
293 static void cgw_csum_crc8_pos(struct can_frame *cf, struct cgw_csum_crc8 *crc8) in cgw_csum_crc8_pos() argument
299 crc = crc8->crctab[crc^cf->data[i]]; in cgw_csum_crc8_pos()
308 crc = crc8->crctab[crc^crc8->profile_data[cf->data[1] & 0xF]]; in cgw_csum_crc8_pos()
312 crc = crc8->crctab[crc^(cf->can_id & 0xFF)^ in cgw_csum_crc8_pos()
313 (cf->can_id >> 8 & 0xFF)]; in cgw_csum_crc8_pos()
317 cf->data[crc8->result_idx] = crc^crc8->final_xor_val; in cgw_csum_crc8_pos()
320 static void cgw_csum_crc8_neg(struct can_frame *cf, struct cgw_csum_crc8 *crc8) in cgw_csum_crc8_neg() argument
326 crc = crc8->crctab[crc^cf->data[i]]; in cgw_csum_crc8_neg()
335 crc = crc8->crctab[crc^crc8->profile_data[cf->data[1] & 0xF]]; in cgw_csum_crc8_neg()
339 crc = crc8->crctab[crc^(cf->can_id & 0xFF)^ in cgw_csum_crc8_neg()
340 (cf->can_id >> 8 & 0xFF)]; in cgw_csum_crc8_neg()
344 cf->data[crc8->result_idx] = crc^crc8->final_xor_val; in cgw_csum_crc8_neg()
351 struct can_frame *cf; in can_can_gw_rcv() local
413 cf = (struct can_frame *)nskb->data; in can_can_gw_rcv()
417 (*gwj->mod.modfunc[modidx++])(cf, &gwj->mod); in can_can_gw_rcv()
422 (*gwj->mod.csumfunc.crc8)(cf, &gwj->mod.csum.crc8); in can_can_gw_rcv()
425 (*gwj->mod.csumfunc.xor)(cf, &gwj->mod.csum.xor); in can_can_gw_rcv()
522 memcpy(&mb.cf, &gwj->mod.modframe.and, sizeof(mb.cf)); in cgw_put_job()
529 memcpy(&mb.cf, &gwj->mod.modframe.or, sizeof(mb.cf)); in cgw_put_job()
536 memcpy(&mb.cf, &gwj->mod.modframe.xor, sizeof(mb.cf)); in cgw_put_job()
543 memcpy(&mb.cf, &gwj->mod.modframe.set, sizeof(mb.cf)); in cgw_put_job()
658 canframecpy(&mod->modframe.and, &mb.cf); in cgw_parse_attr()
674 canframecpy(&mod->modframe.or, &mb.cf); in cgw_parse_attr()
690 canframecpy(&mod->modframe.xor, &mb.cf); in cgw_parse_attr()
706 canframecpy(&mod->modframe.set, &mb.cf); in cgw_parse_attr()