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);
155 #define MODFUNC(func, op) static void func(struct can_frame *cf, \
158 MODFUNC(mod_and_id, cf->can_id &= mod->modframe.and.can_id)
159 MODFUNC(mod_and_dlc, cf->can_dlc &= mod->modframe.and.can_dlc)
160 MODFUNC(mod_and_data, *(u64 *)cf->data &= *(u64 *)mod->modframe.and.data)
161 MODFUNC(mod_or_id, cf->can_id |= mod->modframe.or.can_id)
162 MODFUNC(mod_or_dlc, cf->can_dlc |= mod->modframe.or.can_dlc)
163 MODFUNC(mod_or_data, *(u64 *)cf->data |= *(u64 *)mod->modframe.or.data)
164 MODFUNC(mod_xor_id, cf->can_id ^= mod->modframe.xor.can_id)
165 MODFUNC(mod_xor_dlc, cf->can_dlc ^= mod->modframe.xor.can_dlc)
166 MODFUNC(mod_xor_data, *(u64 *)cf->data ^= *(u64 *)mod->modframe.xor.data)
167 MODFUNC(mod_set_id, cf->can_id = mod->modframe.set.can_id)
168 MODFUNC(mod_set_dlc, cf->can_dlc = mod->modframe.set.can_dlc)
169 MODFUNC(mod_set_data, *(u64 *)cf->data = *(u64 *)mod->modframe.set.data)
211 static void cgw_csum_xor_rel(struct can_frame *cf, struct cgw_csum_xor *xor) in cgw_csum_xor_rel() argument
213 int from = calc_idx(xor->from_idx, cf->can_dlc); in cgw_csum_xor_rel()
214 int to = calc_idx(xor->to_idx, cf->can_dlc); in cgw_csum_xor_rel()
215 int res = calc_idx(xor->result_idx, cf->can_dlc); in cgw_csum_xor_rel()
224 val ^= cf->data[i]; in cgw_csum_xor_rel()
227 val ^= cf->data[i]; in cgw_csum_xor_rel()
230 cf->data[res] = val; in cgw_csum_xor_rel()
233 static void cgw_csum_xor_pos(struct can_frame *cf, struct cgw_csum_xor *xor) in cgw_csum_xor_pos() argument
239 val ^= cf->data[i]; in cgw_csum_xor_pos()
241 cf->data[xor->result_idx] = val; in cgw_csum_xor_pos()
244 static void cgw_csum_xor_neg(struct can_frame *cf, struct cgw_csum_xor *xor) in cgw_csum_xor_neg() argument
250 val ^= cf->data[i]; in cgw_csum_xor_neg()
252 cf->data[xor->result_idx] = val; in cgw_csum_xor_neg()
255 static void cgw_csum_crc8_rel(struct can_frame *cf, struct cgw_csum_crc8 *crc8) in cgw_csum_crc8_rel() argument
257 int from = calc_idx(crc8->from_idx, cf->can_dlc); in cgw_csum_crc8_rel()
258 int to = calc_idx(crc8->to_idx, cf->can_dlc); in cgw_csum_crc8_rel()
259 int res = calc_idx(crc8->result_idx, cf->can_dlc); in cgw_csum_crc8_rel()
268 crc = crc8->crctab[crc^cf->data[i]]; in cgw_csum_crc8_rel()
271 crc = crc8->crctab[crc^cf->data[i]]; in cgw_csum_crc8_rel()
281 crc = crc8->crctab[crc^crc8->profile_data[cf->data[1] & 0xF]]; in cgw_csum_crc8_rel()
285 crc = crc8->crctab[crc^(cf->can_id & 0xFF)^ in cgw_csum_crc8_rel()
286 (cf->can_id >> 8 & 0xFF)]; in cgw_csum_crc8_rel()
291 cf->data[crc8->result_idx] = crc^crc8->final_xor_val; in cgw_csum_crc8_rel()
294 static void cgw_csum_crc8_pos(struct can_frame *cf, struct cgw_csum_crc8 *crc8) in cgw_csum_crc8_pos() argument
300 crc = crc8->crctab[crc^cf->data[i]]; in cgw_csum_crc8_pos()
309 crc = crc8->crctab[crc^crc8->profile_data[cf->data[1] & 0xF]]; in cgw_csum_crc8_pos()
313 crc = crc8->crctab[crc^(cf->can_id & 0xFF)^ in cgw_csum_crc8_pos()
314 (cf->can_id >> 8 & 0xFF)]; in cgw_csum_crc8_pos()
318 cf->data[crc8->result_idx] = crc^crc8->final_xor_val; in cgw_csum_crc8_pos()
321 static void cgw_csum_crc8_neg(struct can_frame *cf, struct cgw_csum_crc8 *crc8) in cgw_csum_crc8_neg() argument
327 crc = crc8->crctab[crc^cf->data[i]]; in cgw_csum_crc8_neg()
336 crc = crc8->crctab[crc^crc8->profile_data[cf->data[1] & 0xF]]; in cgw_csum_crc8_neg()
340 crc = crc8->crctab[crc^(cf->can_id & 0xFF)^ in cgw_csum_crc8_neg()
341 (cf->can_id >> 8 & 0xFF)]; in cgw_csum_crc8_neg()
345 cf->data[crc8->result_idx] = crc^crc8->final_xor_val; in cgw_csum_crc8_neg()
352 struct can_frame *cf; in can_can_gw_rcv() local
414 cf = (struct can_frame *)nskb->data; in can_can_gw_rcv()
418 (*gwj->mod.modfunc[modidx++])(cf, &gwj->mod); in can_can_gw_rcv()
423 (*gwj->mod.csumfunc.crc8)(cf, &gwj->mod.csum.crc8); in can_can_gw_rcv()
426 (*gwj->mod.csumfunc.xor)(cf, &gwj->mod.csum.xor); in can_can_gw_rcv()
524 memcpy(&mb.cf, &gwj->mod.modframe.and, sizeof(mb.cf)); in cgw_put_job()
531 memcpy(&mb.cf, &gwj->mod.modframe.or, sizeof(mb.cf)); in cgw_put_job()
538 memcpy(&mb.cf, &gwj->mod.modframe.xor, sizeof(mb.cf)); in cgw_put_job()
545 memcpy(&mb.cf, &gwj->mod.modframe.set, sizeof(mb.cf)); in cgw_put_job()
653 canframecpy(&mod->modframe.and, &mb.cf); in cgw_parse_attr()
669 canframecpy(&mod->modframe.or, &mb.cf); in cgw_parse_attr()
685 canframecpy(&mod->modframe.xor, &mb.cf); in cgw_parse_attr()
701 canframecpy(&mod->modframe.set, &mb.cf); in cgw_parse_attr()