systemcfg.h 文件
用途
定义
_system_configuration 结构。注: 有关系统配置字段的完整列表,请参见 /usr/include/sys 目录中的 systemcfg.h 头文件。 要以编程方式检索系统配置字段的值,请使用以下接口:
- 访问配置参数的首选系统调用
getsystemcfg()
- 性能更佳的宏
GET_SYSCFG()
描述
systemcfg.h 文件定义了 _system_configuration 结构,这是一个标识系统特征的全局结构。 只读的系统内存提供 _system_configuration 结构。 _system_configuration 结构属性包含以下值:
| 项 | 描述 |
|---|---|
| architecture | 标识处理器的架构。 以下是版本 4 的有效值:
|
| implementation | 标识处理器的特定版本。 为每个执行分配一个唯一的位,以便有效地检查执行集。 以下是有效值的示例:
注: 头文件包含更多数值。
定义了两个特殊值, POWER_RS_ALL 和 POWER_PC_ALL。 这些标签定义为其体系结构的所有成员的位 OR。 |
| version | 标识中央处理器 (CPU) 的版本号。 以下是有效值的示例:
注: 头文件包含更多数值。
|
| width | 包含处理器数据字大小。 有效值为 32 或 64。 该值为最大数据字大小,不会与当前执行模式混淆。 |
| ncpus | 标识系统中激活的 CPU 数量。 单处理器(UP)系统以 1 标识。 数值大于 1 表示多处理器 (MP) 系统。 |
| cache_attr | 指定高速缓存属性。
|
| 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) 属性的类型。
|
| 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。 |