dump() and print() Entry Points
This section discusses the dump(9E) and print(9E) entry points.
dump() Entry Point (Block Drivers)
The dump(9E) entry point is used to copy a portion of virtual address
space directly to the specified device in the case of a system failure.
dump() is also used to copy the state of the kernel out to
disk during a checkpoint operation. See the cpr(7) and dump(9E) man pages
for more information. The entry point must be capable of performing this operation
without the use of interrupts, because interrupts are disabled during the checkpoint
operation.
int dump(dev_t dev, caddr_t addr, daddr_t blkno, int nblk)
where:
- dev
Device number of the device to receive the dump.
- addr
Base kernel virtual address at which to start the dump.
- blkno
Block at which the dump is to start.
- nblk
Number of blocks to dump.
The dump depends upon the existing driver working properly.
print() Entry Point (Block Drivers)
int print(dev_t dev, char *str)
The print(9E) entry point is called by the system to display a message
about an exception that has been detected. print(9E) should call cmn_err(9F) to
post the message to the console on behalf of the system. The following
example demonstrates a typical print() entry point.
static int
xxprint(dev_t dev, char *str)
{
cmn_err(CE_CONT, “xx: %s\n”, str);
return (0);
}