Changeset View
Changeset View
Standalone View
Standalone View
sys/arm/arm/minidump_machdep.c
Show First 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | |||||
static int | static int | ||||
blk_flush(struct dumperinfo *di) | blk_flush(struct dumperinfo *di) | ||||
{ | { | ||||
int error; | int error; | ||||
if (fragsz == 0) | if (fragsz == 0) | ||||
return (0); | return (0); | ||||
error = dump_append(di, dump_va, 0, fragsz); | error = dump_append(di, dump_va, fragsz); | ||||
fragsz = 0; | fragsz = 0; | ||||
return (error); | return (error); | ||||
} | } | ||||
static int | static int | ||||
blk_write(struct dumperinfo *di, char *ptr, vm_paddr_t pa, size_t sz) | blk_write(struct dumperinfo *di, char *ptr, vm_paddr_t pa, size_t sz) | ||||
{ | { | ||||
size_t len; | size_t len; | ||||
Show All 28 Lines | while (sz) { | ||||
len = maxdumpsz - fragsz; | len = maxdumpsz - fragsz; | ||||
if (len > sz) | if (len > sz) | ||||
len = sz; | len = sz; | ||||
dumpsys_pb_progress(len); | dumpsys_pb_progress(len); | ||||
wdog_kern_pat(WD_LASTVAL); | wdog_kern_pat(WD_LASTVAL); | ||||
if (ptr) { | if (ptr) { | ||||
error = dump_append(di, ptr, 0, len); | error = dump_append(di, ptr, len); | ||||
if (error) | if (error) | ||||
return (error); | return (error); | ||||
ptr += len; | ptr += len; | ||||
sz -= len; | sz -= len; | ||||
} else { | } else { | ||||
for (i = 0; i < len; i += PAGE_SIZE) | for (i = 0; i < len; i += PAGE_SIZE) | ||||
dump_va = pmap_kenter_temporary(pa + i, | dump_va = pmap_kenter_temporary(pa + i, | ||||
(i + fragsz) >> PAGE_SHIFT); | (i + fragsz) >> PAGE_SHIFT); | ||||
▲ Show 20 Lines • Show All 201 Lines • Show Last 20 Lines |