Lines Matching refs:rproc

17 	struct rproc *rproc;  member
26 void rproc_coredump_cleanup(struct rproc *rproc) in rproc_coredump_cleanup() argument
30 list_for_each_entry_safe(entry, tmp, &rproc->dump_segments, node) { in rproc_coredump_cleanup()
47 int rproc_coredump_add_segment(struct rproc *rproc, dma_addr_t da, size_t size) in rproc_coredump_add_segment() argument
58 list_add_tail(&segment->node, &rproc->dump_segments); in rproc_coredump_add_segment()
78 int rproc_coredump_add_custom_segment(struct rproc *rproc, in rproc_coredump_add_custom_segment() argument
80 void (*dumpfn)(struct rproc *rproc, in rproc_coredump_add_custom_segment() argument
97 list_add_tail(&segment->node, &rproc->dump_segments); in rproc_coredump_add_custom_segment()
113 int rproc_coredump_set_elf_info(struct rproc *rproc, u8 class, u16 machine) in rproc_coredump_set_elf_info() argument
118 rproc->elf_class = class; in rproc_coredump_set_elf_info()
119 rproc->elf_machine = machine; in rproc_coredump_set_elf_info()
151 static void rproc_copy_segment(struct rproc *rproc, void *dest, in rproc_copy_segment() argument
159 segment->dump(rproc, segment, dest, offset, size); in rproc_copy_segment()
161 ptr = rproc_da_to_va(rproc, segment->da + offset, size, &is_iomem); in rproc_copy_segment()
163 dev_err(&rproc->dev, in rproc_copy_segment()
183 struct rproc *rproc = dump_state->rproc; in rproc_coredump_read() local
200 &rproc->dump_segments, in rproc_coredump_read()
204 dev_info(&rproc->dev, "Ramdump done, %lld bytes read", in rproc_coredump_read()
211 rproc_copy_segment(rproc, buffer, seg, seg->size - seg_data, in rproc_coredump_read()
234 void rproc_coredump(struct rproc *rproc) in rproc_coredump() argument
242 u8 class = rproc->elf_class; in rproc_coredump()
245 enum rproc_dump_mechanism dump_conf = rproc->dump_conf; in rproc_coredump()
247 if (list_empty(&rproc->dump_segments) || in rproc_coredump()
252 dev_err(&rproc->dev, "Elf class is not set\n"); in rproc_coredump()
257 list_for_each_entry(segment, &rproc->dump_segments, node) { in rproc_coredump()
281 elf_hdr_set_e_machine(class, ehdr, rproc->elf_machine); in rproc_coredump()
283 elf_hdr_set_e_entry(class, ehdr, rproc->bootaddr); in rproc_coredump()
293 list_for_each_entry(segment, &rproc->dump_segments, node) { in rproc_coredump()
305 rproc_copy_segment(rproc, data + offset, segment, 0, in rproc_coredump()
312 dev_coredumpv(&rproc->dev, data, data_size, GFP_KERNEL); in rproc_coredump()
317 dump_state.rproc = rproc; in rproc_coredump()
321 dev_coredumpm(&rproc->dev, NULL, &dump_state, data_size, GFP_KERNEL, in rproc_coredump()
343 void rproc_coredump_using_sections(struct rproc *rproc) in rproc_coredump_using_sections() argument
353 u8 class = rproc->elf_class; in rproc_coredump_using_sections()
356 unsigned int dump_conf = rproc->dump_conf; in rproc_coredump_using_sections()
359 if (list_empty(&rproc->dump_segments) || in rproc_coredump_using_sections()
364 dev_err(&rproc->dev, "Elf class is not set\n"); in rproc_coredump_using_sections()
379 list_for_each_entry(segment, &rproc->dump_segments, node) { in rproc_coredump_using_sections()
399 elf_hdr_set_e_machine(class, ehdr, rproc->elf_machine); in rproc_coredump_using_sections()
401 elf_hdr_set_e_entry(class, ehdr, rproc->bootaddr); in rproc_coredump_using_sections()
432 list_for_each_entry(segment, &rproc->dump_segments, node) { in rproc_coredump_using_sections()
445 rproc_copy_segment(rproc, data + offset, segment, 0, in rproc_coredump_using_sections()
452 dev_coredumpv(&rproc->dev, data, data_size, GFP_KERNEL); in rproc_coredump_using_sections()
457 dump_state.rproc = rproc; in rproc_coredump_using_sections()
461 dev_coredumpm(&rproc->dev, NULL, &dump_state, data_size, GFP_KERNEL, in rproc_coredump_using_sections()