CTFUNC_HOOKx 宏

用途

将不常记录的跟踪事件记录到组件跟踪 (CT) ,轻量级内存跟踪 (LMT) 或系统跟踪缓冲区中。

语法

#include <sys/ras_trace.h>
CTFUNC_HOOK0(ras_block_t cb, char level, int mem_dest, ulong hw);
CTFUNC_HOOK1(ras_block_t cb, char level, int mem_dest, ulong hw, ulong d1);
CTFUNC_HOOK2(ras_block_t cb, char level, int mem_dest, ulong hw, ulong d1, ulong d2);
CTFUNC_HOOK3(ras_block_t cb, char level, int mem_dest, ulong hw, ulong d1, ulong d2, ulong d3);
CTFUNC_HOOK4(ras_block_t cb, char level, int mem_dest, ulong hw, ulong d1, ulong d2, ulong d3, ulong d4);
CTFUNC_HOOK5(ras_block_t cb, char level, int mem_dest, ulong hw, ulong d1, ulong d2, ulong d3, ulong d4, 
ulong d5);

描述

CTFUNC_HOOKx 宏记录跟踪挂钩。 这些宏经过优化以记录很少记录的事件,例如错误路径跟踪。 CTFUNC_HOOKx 宏可以用于任何类型的跟踪序列化。 除了针对稀有事件进行优化外, CTFUNC_HOOKx 宏等同于 CT_HOOKx 宏。

CTFUNC_HOOKx 宏记录的所有跟踪都带有时间戳记。

如果 cb 输入参数包含值 RAS_BLOCK_NULL ,那么将不执行跟踪。

参数

描述
ras_block_t cb cb 参数是引用此跟踪条目所属组件的 RAS 控制块。
char 级别 level 参数允许过滤不同的跟踪条目。 此级别越高,此跟踪就越被视为调试或详细信息。 仅当跟踪条目的级别小于或等于为内存或系统跟踪方式选择的跟踪级别时,才会显示此跟踪条目。 提供了 10 个级别的跟踪 (CT_LEVEL_0 到 CT_LEVEL_9,对应于值 0 到 9) ,具有以下四个特殊级别:
  • 最小 (CT_LVL_MINIMAL (=CT_LEVEL_1))
  • 正常 (CT_LVL_NORMAL (=CT_LEVEL_3))
  • 详细信息 (CT_LVL_DETAIL (=CT_LEVEL_7))
  • 默认值(AIX® 6.1 中 CT_LVL_DEFAULT = CT_LVL_NORMAL。 否则,它是 CT_LVL_MINIMAL)

将现有驱动程序或子系统从现有系统跟踪移植到组件跟踪时,应在 CT_LVL_DEFAULT 上跟踪现有条目。

整数 mem_dest mem_dest 参数指示此跟踪条目的内存目标。 它是具有以下可能设置的 ORed 值:
MT_RARE
如果满足此控制块的内存跟踪方式的级别条件,那么跟踪条目将保存在轻量级内存跟踪的稀有缓冲区中,这意味着内存跟踪方式的当前跟踪级别大于或等于此跟踪条目的级别。
MT_COMMON
如果满足此控制块的内存跟踪方式的级别条件,那么跟踪条目将保存在轻量级内存跟踪的公共缓冲区中。
MT_PRIV
如果满足此控制块的内存跟踪方式的级别条件,那么跟踪条目将保存在组件的专用内存缓冲区中。
MT_SYSTEM
如果满足以下所有条件,那么跟踪条目将保存在现有系统跟踪中:
  • 满足此控制块的系统跟踪方式的级别条件。
  • 系统跟踪正在运行。
  • 挂钩满足在系统跟踪过程中指定的任何其他条件。
如果未设置 MT_SYSTEM ,那么跟踪条目不会保存在现有系统跟踪中。

只能使用其中一个 MT_RAREMT_COMMONMT_PRIV 值,但可以将 ORed 与 MT_SYSTEM组合使用。 否则,跟踪条目在多个内存缓冲区中重复。

mem_dest 参数对于 CT_GEN 宏不是必需的,因为轻量级内存跟踪无法容纳通用条目。 CT_GEN 宏检查内存跟踪和系统跟踪级别,以确定通用条目是否应分别进入专用内存缓冲区和系统跟踪缓冲区。

hkwdd1d2d3d4d5 参数与用于现有 TRCHKx 宏的参数相同。 TRCHKx 宏链接到 TRCHKLnT 宏,其中 n 从 0 到 5。 例如, TRCHKL1T (hkwd , d1)。