Lines Matching full:ps
231 static void try_merge_runs(struct pa_space *ps, in try_merge_runs() argument
238 for (size_t idx = 0; idx < ps->block_nr; idx++) { in try_merge_runs()
239 struct pa_block *blk = ps->block + idx; in try_merge_runs()
244 if (idx + 1 != ps->block_nr && blk->paddr + blk->size == next->paddr) { in try_merge_runs()
267 static bool fill_header(WinDumpHeader64 *hdr, struct pa_space *ps, in fill_header() argument
310 .NumberOfRuns = ps->block_nr, in fill_header()
316 for (size_t idx = 0; idx < ps->block_nr; idx++) { in fill_header()
318 ps->block[idx].size / ELF2DMP_PAGE_SIZE; in fill_header()
320 .BasePage = ps->block[idx].paddr / ELF2DMP_PAGE_SIZE, in fill_header()
321 .PageCount = ps->block[idx].size / ELF2DMP_PAGE_SIZE, in fill_header()
325 try_merge_runs(ps, &h.PhysicalMemoryBlock); in fill_header()
416 static bool write_dump(struct pa_space *ps, in write_dump() argument
435 for (i = 0; i < ps->block_nr; i++) { in write_dump()
436 struct pa_block *b = &ps->block[i]; in write_dump()
439 ps->block_nr, b->size); in write_dump()
513 struct pa_space ps; in main() local
540 pa_space_create(&ps, &qemu_elf); in main()
545 va_space_create(&vs, &ps, state->cr[3]); in main()
611 if (!fill_header(&header, &ps, &vs, KdDebuggerDataBlock, kdbg, in main()
618 if (!write_dump(&ps, &header, argv[2])) { in main()
632 pa_space_destroy(&ps); in main()