| 1716 | } |
| 1717 | |
| 1718 | void |
| 1719 | dump_init_header(const struct dumperinfo *di, struct kerneldumpheader *kdh, |
| 1720 | const char *magic, uint32_t archver, uint64_t dumplen) |
| 1721 | { |
| 1722 | size_t dstsize; |
| 1723 | |
| 1724 | bzero(kdh, sizeof(*kdh)); |
| 1725 | strlcpy(kdh->magic, magic, sizeof(kdh->magic)); |
| 1726 | strlcpy(kdh->architecture, MACHINE_ARCH, sizeof(kdh->architecture)); |
| 1727 | kdh->version = htod32(KERNELDUMPVERSION); |
| 1728 | kdh->architectureversion = htod32(archver); |
| 1729 | kdh->dumplength = htod64(dumplen); |
| 1730 | kdh->dumpextent = kdh->dumplength; |
| 1731 | kdh->dumptime = htod64(time_second); |
| 1732 | #ifdef EKCD |
| 1733 | kdh->dumpkeysize = htod32(kerneldumpcrypto_dumpkeysize(di->kdcrypto)); |
| 1734 | #else |
| 1735 | kdh->dumpkeysize = 0; |
| 1736 | #endif |
| 1737 | kdh->blocksize = htod32(di->blocksize); |
| 1738 | strlcpy(kdh->hostname, prison0.pr_hostname, sizeof(kdh->hostname)); |
| 1739 | dstsize = sizeof(kdh->versionstring); |
| 1740 | if (strlcpy(kdh->versionstring, version, dstsize) >= dstsize) |
| 1741 | kdh->versionstring[dstsize - 2] = '\n'; |
| 1742 | if (panicstr != NULL) |
| 1743 | strlcpy(kdh->panicstring, panicstr, sizeof(kdh->panicstring)); |
| 1744 | if (di->kdcomp != NULL) |
| 1745 | kdh->compression = di->kdcomp->kdc_format; |
| 1746 | kdh->parity = kerneldump_parity(kdh); |
| 1747 | } |
| 1748 | |
| 1749 | #ifdef DDB |
| 1750 | DB_SHOW_COMMAND(panic, db_show_panic) |
no test coverage detected