systemcfg.h 文件

用途

定义 _system_configuration 结构。
注: 有关系统配置字段的完整列表,请参见 /usr/include/sys 目录中的 systemcfg.h 头文件。 要以编程方式检索系统配置字段的值,请使用以下接口:
访问配置参数的首选系统调用
getsystemcfg()
性能更佳的宏
GET_SYSCFG()
更多信息,请参阅 getsystemcfg 子程序。

描述

systemcfg.h 文件定义了 _system_configuration 结构,这是一个标识系统特征的全局结构。 只读的系统内存提供 _system_configuration 结构。 _system_configuration 结构属性包含以下值:

表 1. 系统配置属性
描述
architecture 标识处理器的架构。 以下是版本 4 的有效值:
POWER_RS
表示 POWER 家庭系统。
POWER_PC
表示基于 POWER 处理器
implementation 标识处理器的特定版本。 为每个执行分配一个唯一的位,以便有效地检查执行集。 以下是有效值的示例:
POWER_RS1
POWER_RS2
POWER_RSC
POWER_601
注: 头文件包含更多数值。

定义了两个特殊值, POWER_RS_ALLPOWER_PC_ALL。 这些标签定义为其体系结构的所有成员的位 OR。

version 标识中央处理器 (CPU) 的版本号。 以下是有效值的示例:
PV_RS1
识别 POWER 系列 RS1 系统。
PV_RS2
识别 POWER 系列 RS2 系统。
PV_RS2G
识别带有图形辅助功能的 POWER 系列 RS2 系统。
PV_RSC
识别 POWER 系列 RSC 系统。
PV_601
确定 PowerPC 601 RISC 微处理器系统。
注: 头文件包含更多数值。
width 包含处理器数据字大小。 有效值为 3264。 该值为最大数据字大小,不会与当前执行模式混淆。
ncpus 标识系统中激活的 CPU 数量。 单处理器(UP)系统以 1 标识。 数值大于 1 表示多处理器 (MP) 系统。
cache_attr 指定高速缓存属性。
位 31
确定缓存是否存在。
第 31 位为 1
存在缓存。
第 31 位为 0
缓存不存在。 其他高速缓存特性为 0
第 30 位
表示高速缓存的类型。
第 30 位为 1
缓存合并
第 30 位为 0
指令缓存和数据缓存是分开的
icache_size 包含 L1 指令缓存的大小,单位为字节。 对于组合高速缓存,此值是总高速缓存大小。
dcache_size 包含 L1 数据高速缓存大小 (以字节为单位)。 对于组合缓存,该值即为总缓存大小。
icache_asc 包含 L1 指令-高速缓存关联性。 对于组合高速缓存,该值就是组合高速缓存的关联性。
dcache_asc 包含 L1 数据高速缓存关联性。 对于组合高速缓存,该值就是组合高速缓存的关联性。
icache_line 包含 L1 指令高速缓存的行大小 (以字节计)。
dcache_line 包含 L1 数据高速缓存的行大小 (以字节计)。
L2_cache_size 包含 L2 缓存的大小(字节)。 值为 0 表示 L2 缓存不存在。
L2_cache_asc 标识 L2 高速缓存的关联性。
tlb_comb 标识事务后备缓冲区 (TLB) 属性的类型。
位 31
确定是否存在 TLB。
第 31 位为 1
存在 TLB。
第 31 位小于 0
TLB 不存在。 所有其他 TLB 特性均为 0
第 30 位
表示 TLB 的类型。
第 30 位为 1
TLB 合并
第 30 位为 0
指令缓存和数据缓存的 TLB 是分开的
itlb_size 指定指令 TLB 中的条目数。 对于组合 TLB,该值是组合 TLB 的大小。
dtlb_size 指定数据 TLB 中的条目数。 对于组合 TLB,该值是组合 TLB 的大小。
itlb_asc 包括指令 TLB 的关联性。 如果系统是完全关联的,则属性值等于 itlb_size 属性。
dtlb_asc 包括指令 TLB 的关联性。 如果系统是完全关联的,则属性值等于 dtlb_size 属性。
resv_size 包括基于 POWER 处理器的预留颗粒大小。 该领域是 POWER 家庭系统的 0
priv_ick_cnt 包括在监控模式下阻塞 AP 进程或线程之前,锁服务尝试锁定自旋锁的次数。 该字段在 UP 系统中为 0。 系统锁定服务使用 priv_ick_cnt 参数。
prob_lck_cnt 包括在阻塞处于问题状态的进程或线程之前,锁服务尝试锁定自旋锁的次数。 在 UP 系统中,该字段为 0。 系统锁定服务使用 prob_lck_cnt 参数。
virt_alias 指示虚拟内存别名判别。 如果值为 1 ,则硬件可用于虚拟内存别名,并被系统使用。 虚拟内存别名将一个实际地址映射到多个虚拟地址。
cach_cong 包括导致缓存同义词的页面索引位数。 对于没有高速缓存同义词的系统,该字段为 0