dmp_eaddr, dmp_context, dmp_tid, dmp_pid, dmp_errbuf, dmp_mtrc, dmp_systrace, and dmp_ct Kernel Services

Purpose

Provides functions for common dump tasks.

Syntax

#include <sys/dump.h>

kerrno_t dmp_eaddr (flags, anchor, name, addr, sz)
long flags;
void *anchor;
char *name;
long addr;
long sz;

kerrno_t dmp_context (flags, anchor, name, ctx_type, p2)
long flags;
void *anchor;
char *name;
long ctx_type;
long p2;

kerrno_t dmp_tid (flags, anchor, name, tid, unused)
long flags;
void *anchor;
char *name;
tid_t tid;
void *unused;

kerrno_t dmp_pid (flags, anchor, name, pid, unused)
long flags;
void *anchor;
char *name;
pid_t pid;
void *unused;

kerrno_t dmp_errbuf (flags, anchor, name, erridx, unused)
long flags;
void *anchor;
char *name;
ulong erridx;
long unused;

kerrno_t dmp_mtrc (flags, anchor, name, com_sz, rare_sz)
long flags;
void *anchor;
char *name;
size_t com_sz;
size_t rare_sz;

kerrno_t dmp_systrace (flags, anchor, name, sz, unused)
long flags;
void *anchor;
char *name;
long sz;
long unused;

kerrno_t dmp_ct (flags, anchor, name, rasb, sz)
long flags;
void *anchor;
char *name;
ras_block_t rasb;
size_t sz;

Parameters

Item Description
anchor Points to the associated ldmp_parms_t data structure or to an ldmp_prepare_t data structure.
flags The flags parameter can be one or more of the following values:
DCF_FIRST
Specifies that this component is to be dumped first. Normally components are dumped in the order specified.
Note: The last component specified to be dumped first is the one dumped first.
DCF_LEVEL0 - DCF_LEVEL9
Dumps the component at the specified detail level, 0 through 9. If none of these flags are set, the component is dumped at CD_LVL_NORMAL, detail level 3.
name Specifies the name of the pseudo-component's dump table in the dump. The name parameter is only valid for the dmp_eaddr kernel service. You must specify the name parameter to NULL for the dmp_context, dmp_tid, dmp_pid, dmp_errbuf, dmp_mtrc, dmp_systrace, and dmp_ct kernel services.
unused You must specify this parameter to NULL or 0.
The remaining parameters are pseudo-component dependent: dmp_eaddraddr Specifies the effective address of the memory to be dumped.
sz Specifies the length of the memory in bytes.
dmp_contextctx_type Specifies the context to dump. It can be one of the following values:
DMP_CTX_CUR
To dump the current context.
DMP_CTX_PREV
To dump the previous context.
DMP_CTX_SPEC
To dump the context specified by the p2 parameter. The p2 parameter must contain the address of the ksmtsave structure for the context.
DMP_CTX_RWA
To dump the context from the supplied recovery work area. The p2 parameter must contain the address of the recovery work area, rwa.
DMP_CTX_BID or DMP_CTX_LCPUID
To dump the context for the processor specified by the p2 parameter. You can specify the processor either by the bind ID or by the logical ID.
DMP_CTX_TID
To dump the context of the thread specified by the p2 parameter, which must contain the thread ID.
p2 Specifies the address of the context, the logical processor ID, the bind ID, or the thread ID dependent on the value of the ctx_type parameter.
dmp_tidtid Specifies the ID of the thread to dump.
dmp_pidpid Specifies the ID of the process to dump.
dmp_errbuferridx Specifies the kernel workload partition (WPAR) ID of the partition's error logging buffer to dump. The value of 0 stands for the global buffer.
dmp_mtrccom_sz Specifies the amount of common to dump.
rare_sz Specifies the amount of rare data to dump.
dmp_systracesz Specifies the amount of system trace data to dump.If the sz parameter is set to 0, all the buffered trace data is dumped, up to the amount allowed by the detail level.
dmp_ctrasb Specifies the ras_block_t of the component whose component trace is to be dumped.
sz Specifies the amount of data to dump. If the sz parameter is set to 0, all the components' trace data is dumped, up to the limit for the detail level.

Description

The dmp_eaddr kernel service dumps memory by effective address.

The dmp_context kernel service dumps the specified thread context.

The dmp_tid kernel service dumps the kernel data for a thread.

The dmp_pid kernel service dumps the kernel data for a process.

The dmp_errbuf kernel service dumps the error logging buffer for the specified partition.

The dmp_mtrc kernel service dumps entries from the lightweight memory trace buffers.

The dmp_systrace dumps entries from the system trace buffers.

The dmp_ct dumps component trace entries.

Execution Environment

The dmp_eaddr, dmp_context, dmp_tid, dmp_pid, dmp_errbuf, dmp_mtrc, dmp_systrace, and dmp_ct kernel services can be called from either the process or interrupt environment.

Return Values

Item Description
0 Indicates a successful completion.
EINVAL_DMP_PSEUDO Indicates that the name parameter is not valid.
EINVAL_DMP_CHECK_ANCHOR Indicates that no anchor was specified, or the anchor parameter does not point to an area of ldmp_parms_t or ldmp_prepare_t type.
EFAULT_DMP_CHECK_ANCHOR Indicates that the storage specified by the anchor parameter is not valid.
EINVAL_RAS_DMP_COMPSPEC_FLAGS Indicates that the flags specification is not valid. This error also occurs if the DCF_FIRST flag is specified when the anchor is an ldmp_prepare_t data item.
EINVAL_RAS_DMP_COMPSPEC_NOADD Indicates that components cannot be added to this dump.
ENOMEM_RAS_DMP_COMPSPEC Indicates that the storage is not sufficient.
EINVAL_RAS_DMP_EADDR Indicates that the flags parameter is not valid.
EINVAL_RAS_DMP_CONTEXT Indicates that the parameter of the dmp_context kernel service is not valid. This is also returned if the p2 parameter is not used, but is not NULL.
ENOENT_RAS_DMP_CONTEXT_CTX_NOTFOUND Indicates that the specified context was not found.
EFAULT_RAS_DMP_CONTEXT Indicates that the storage the specified context pointer points to is not valid.
EINVAL_RAS_DMP_TID Indicates that the parameter of the dmp_tid kernel service is not valid.
EINVAL_RAS_DMP_PID Indicates that the parameter of the dmp_pid kernel service is not valid.
EINVAL_RAS_DMP_ERRBUF Indicates that the parameter of the dmp_errbuf kernel service is not valid.
ECHRNG_RAS_DMP_ERRBUF Indicates that the erridx parameter is out of range.
EINVAL_RAS_DMP_MTRC Indicates that the parameter of the dmp_mtrc kernel service is not valid.
ENOENT_RAS_DMP_MTRC Indicates that the lightweight memory trace is not active.
EINVAL_RAS_DMP_SYSTRACE Indicates that the parameter of the dmp_systrace kernel service is not valid.
ENOENT_RAS_DMP_SYSTRACE Indicates that the system trace is not active.
EINVAL_RAS_DMP_CT Indicates that the parameter of the dmp_ct kernel service is not valid.
ENOMEM_RAS_DMP_CT Indicates that the storage is not sufficient.
EINVAL_RAS_DMP_CT_GETPATH Indicates that the specified component is not valid.
EINVAL_RAS_DMP_CT_LOOKUP Indicates that an error occurred while this component was being validated.
ENOTSUP_RAS_DMP_CT Indicates that the specified component does not have a component trace.

Related Information

The livedump kernel service and dmp_kernext kernel service.