Lines Matching refs:cf

101 	void (*modfunc[MAX_MODFUNCTIONS])(struct can_frame *cf,
110 void (*xor)(struct can_frame *cf, struct cgw_csum_xor *xor);
111 void (*crc8)(struct can_frame *cf, struct cgw_csum_crc8 *crc8);
156 #define MODFUNC(func, op) static void func(struct can_frame *cf, \
159 MODFUNC(mod_and_id, cf->can_id &= mod->modframe.and.can_id)
160 MODFUNC(mod_and_dlc, cf->can_dlc &= mod->modframe.and.can_dlc)
161 MODFUNC(mod_and_data, *(u64 *)cf->data &= *(u64 *)mod->modframe.and.data)
162 MODFUNC(mod_or_id, cf->can_id |= mod->modframe.or.can_id)
163 MODFUNC(mod_or_dlc, cf->can_dlc |= mod->modframe.or.can_dlc)
164 MODFUNC(mod_or_data, *(u64 *)cf->data |= *(u64 *)mod->modframe.or.data)
165 MODFUNC(mod_xor_id, cf->can_id ^= mod->modframe.xor.can_id)
166 MODFUNC(mod_xor_dlc, cf->can_dlc ^= mod->modframe.xor.can_dlc)
167 MODFUNC(mod_xor_data, *(u64 *)cf->data ^= *(u64 *)mod->modframe.xor.data)
168 MODFUNC(mod_set_id, cf->can_id = mod->modframe.set.can_id)
169 MODFUNC(mod_set_dlc, cf->can_dlc = mod->modframe.set.can_dlc)
170 MODFUNC(mod_set_data, *(u64 *)cf->data = *(u64 *)mod->modframe.set.data)
212 static void cgw_csum_xor_rel(struct can_frame *cf, struct cgw_csum_xor *xor) in cgw_csum_xor_rel() argument
214 int from = calc_idx(xor->from_idx, cf->can_dlc); in cgw_csum_xor_rel()
215 int to = calc_idx(xor->to_idx, cf->can_dlc); in cgw_csum_xor_rel()
216 int res = calc_idx(xor->result_idx, cf->can_dlc); in cgw_csum_xor_rel()
225 val ^= cf->data[i]; in cgw_csum_xor_rel()
228 val ^= cf->data[i]; in cgw_csum_xor_rel()
231 cf->data[res] = val; in cgw_csum_xor_rel()
234 static void cgw_csum_xor_pos(struct can_frame *cf, struct cgw_csum_xor *xor) in cgw_csum_xor_pos() argument
240 val ^= cf->data[i]; in cgw_csum_xor_pos()
242 cf->data[xor->result_idx] = val; in cgw_csum_xor_pos()
245 static void cgw_csum_xor_neg(struct can_frame *cf, struct cgw_csum_xor *xor) in cgw_csum_xor_neg() argument
251 val ^= cf->data[i]; in cgw_csum_xor_neg()
253 cf->data[xor->result_idx] = val; in cgw_csum_xor_neg()
256 static void cgw_csum_crc8_rel(struct can_frame *cf, struct cgw_csum_crc8 *crc8) in cgw_csum_crc8_rel() argument
258 int from = calc_idx(crc8->from_idx, cf->can_dlc); in cgw_csum_crc8_rel()
259 int to = calc_idx(crc8->to_idx, cf->can_dlc); in cgw_csum_crc8_rel()
260 int res = calc_idx(crc8->result_idx, cf->can_dlc); in cgw_csum_crc8_rel()
269 crc = crc8->crctab[crc^cf->data[i]]; in cgw_csum_crc8_rel()
272 crc = crc8->crctab[crc^cf->data[i]]; in cgw_csum_crc8_rel()
282 crc = crc8->crctab[crc^crc8->profile_data[cf->data[1] & 0xF]]; in cgw_csum_crc8_rel()
286 crc = crc8->crctab[crc^(cf->can_id & 0xFF)^ in cgw_csum_crc8_rel()
287 (cf->can_id >> 8 & 0xFF)]; in cgw_csum_crc8_rel()
292 cf->data[crc8->result_idx] = crc^crc8->final_xor_val; in cgw_csum_crc8_rel()
295 static void cgw_csum_crc8_pos(struct can_frame *cf, struct cgw_csum_crc8 *crc8) in cgw_csum_crc8_pos() argument
301 crc = crc8->crctab[crc^cf->data[i]]; in cgw_csum_crc8_pos()
310 crc = crc8->crctab[crc^crc8->profile_data[cf->data[1] & 0xF]]; in cgw_csum_crc8_pos()
314 crc = crc8->crctab[crc^(cf->can_id & 0xFF)^ in cgw_csum_crc8_pos()
315 (cf->can_id >> 8 & 0xFF)]; in cgw_csum_crc8_pos()
319 cf->data[crc8->result_idx] = crc^crc8->final_xor_val; in cgw_csum_crc8_pos()
322 static void cgw_csum_crc8_neg(struct can_frame *cf, struct cgw_csum_crc8 *crc8) in cgw_csum_crc8_neg() argument
328 crc = crc8->crctab[crc^cf->data[i]]; in cgw_csum_crc8_neg()
337 crc = crc8->crctab[crc^crc8->profile_data[cf->data[1] & 0xF]]; in cgw_csum_crc8_neg()
341 crc = crc8->crctab[crc^(cf->can_id & 0xFF)^ in cgw_csum_crc8_neg()
342 (cf->can_id >> 8 & 0xFF)]; in cgw_csum_crc8_neg()
346 cf->data[crc8->result_idx] = crc^crc8->final_xor_val; in cgw_csum_crc8_neg()
353 struct can_frame *cf; in can_can_gw_rcv() local
415 cf = (struct can_frame *)nskb->data; in can_can_gw_rcv()
419 (*gwj->mod.modfunc[modidx++])(cf, &gwj->mod); in can_can_gw_rcv()
424 (*gwj->mod.csumfunc.crc8)(cf, &gwj->mod.csum.crc8); in can_can_gw_rcv()
427 (*gwj->mod.csumfunc.xor)(cf, &gwj->mod.csum.xor); in can_can_gw_rcv()
525 memcpy(&mb.cf, &gwj->mod.modframe.and, sizeof(mb.cf)); in cgw_put_job()
532 memcpy(&mb.cf, &gwj->mod.modframe.or, sizeof(mb.cf)); in cgw_put_job()
539 memcpy(&mb.cf, &gwj->mod.modframe.xor, sizeof(mb.cf)); in cgw_put_job()
546 memcpy(&mb.cf, &gwj->mod.modframe.set, sizeof(mb.cf)); in cgw_put_job()
660 canframecpy(&mod->modframe.and, &mb.cf); in cgw_parse_attr()
676 canframecpy(&mod->modframe.or, &mb.cf); in cgw_parse_attr()
692 canframecpy(&mod->modframe.xor, &mb.cf); in cgw_parse_attr()
708 canframecpy(&mod->modframe.set, &mb.cf); in cgw_parse_attr()