Lines Matching refs:cur
293 static void ser8(struct cursor *cur, uint val) in ser8() argument
295 *cur->buf = val; in ser8()
296 cur->buf += sizeof(u8); in ser8()
299 static void ser16(struct cursor *cur, uint val) in ser16() argument
301 put_unaligned_le16(val, cur->buf); in ser16()
302 cur->buf += sizeof(u16); in ser16()
305 static void ser32(struct cursor *cur, uint val) in ser32() argument
307 put_unaligned_le32(val, cur->buf); in ser32()
308 cur->buf += sizeof(u32); in ser32()
311 static void serblob(struct cursor *cur, void *from, size_t sz) in serblob() argument
313 memcpy(cur->buf, from, sz); in serblob()
314 cur->buf += sz; in serblob()
318 struct cursor *cur) in serialise_specific_config() argument
320 log_debug("%zx\n", cur->buf - cur->start); in serialise_specific_config()
321 ser32(cur, cfg->size); in serialise_specific_config()
322 serblob(cur, cfg->capabilities, cfg->size); in serialise_specific_config()
325 static void serialise_waveform(struct nhlt_waveform *wave, struct cursor *cur) in serialise_waveform() argument
327 log_debug("%zx\n", cur->buf - cur->start); in serialise_waveform()
328 ser16(cur, wave->tag); in serialise_waveform()
329 ser16(cur, wave->num_channels); in serialise_waveform()
330 ser32(cur, wave->samples_per_second); in serialise_waveform()
331 ser32(cur, wave->bytes_per_second); in serialise_waveform()
332 ser16(cur, wave->block_align); in serialise_waveform()
333 ser16(cur, wave->bits_per_sample); in serialise_waveform()
334 ser16(cur, wave->extra_size); in serialise_waveform()
335 ser16(cur, wave->valid_bits_per_sample); in serialise_waveform()
336 ser32(cur, wave->channel_mask); in serialise_waveform()
337 ser32(cur, wave->sub_format.data1); in serialise_waveform()
338 ser16(cur, wave->sub_format.data2); in serialise_waveform()
339 ser16(cur, wave->sub_format.data3); in serialise_waveform()
340 serblob(cur, wave->sub_format.data4, sizeof(wave->sub_format.data4)); in serialise_waveform()
343 static void serialise_format(struct nhlt_format *fmt, struct cursor *cur) in serialise_format() argument
345 log_debug("%zx\n", cur->buf - cur->start); in serialise_format()
346 serialise_waveform(&fmt->waveform, cur); in serialise_format()
347 serialise_specific_config(&fmt->config, cur); in serialise_format()
350 static void serialise_endpoint(struct nhlt_endpoint *endp, struct cursor *cur) in serialise_endpoint() argument
354 log_debug("%zx\n", cur->buf - cur->start); in serialise_endpoint()
355 ser32(cur, endp->length); in serialise_endpoint()
356 ser8(cur, endp->link_type); in serialise_endpoint()
357 ser8(cur, endp->instance_id); in serialise_endpoint()
358 ser16(cur, endp->vendor_id); in serialise_endpoint()
359 ser16(cur, endp->device_id); in serialise_endpoint()
360 ser16(cur, endp->revision_id); in serialise_endpoint()
361 ser32(cur, endp->subsystem_id); in serialise_endpoint()
362 ser8(cur, endp->device_type); in serialise_endpoint()
363 ser8(cur, endp->direction); in serialise_endpoint()
364 ser8(cur, endp->virtual_bus_id); in serialise_endpoint()
365 serialise_specific_config(&endp->config, cur); in serialise_endpoint()
366 ser8(cur, endp->num_formats); in serialise_endpoint()
369 serialise_format(&endp->formats[i], cur); in serialise_endpoint()
372 static void nhlt_serialise_endpoints(struct nhlt *nhlt, struct cursor *cur) in nhlt_serialise_endpoints() argument
376 ser8(cur, nhlt->num_endpoints); in nhlt_serialise_endpoints()
379 serialise_endpoint(&nhlt->endpoints[i], cur); in nhlt_serialise_endpoints()
386 struct cursor cur; in nhlt_serialise_oem_overrides() local
414 cur.buf = (void *)(header + 1); in nhlt_serialise_oem_overrides()
415 cur.start = (void *)header; in nhlt_serialise_oem_overrides()
416 nhlt_serialise_endpoints(nhlt, &cur); in nhlt_serialise_oem_overrides()
420 assert(cur.buf - cur.start == sz); in nhlt_serialise_oem_overrides()