Lines Matching refs:cur

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