cpuinfo_t 構造体は、CPU を定義します。表 26–2 からわかるように、enqueue プローブと dequeue プローブは、どちらも引数として cpuinfo_t のポインタをとります。また、現在の CPU の cpuinfo_t は、curcpu 変数でポイントされています。以下に、cpuinfo_t 構造体の定義を示します。
typedef struct cpuinfo { processorid_t cpu_id; /* CPU identifier */ psetid_t cpu_pset; /* processor set identifier */ chipid_t cpu_chip; /* chip identifier */ lgrp_id_t cpu_lgrp; /* locality group identifer */ processor_info_t cpu_info; /* CPU information */ } cpuinfo_t;
cpu_id メンバーは、psrinfo(1M) と p_online(2) から返されるプロセッサ識別子です。
cpu_pset メンバーは、CPU を含む (CPU がある場合) プロセッサセットです。プロセッサセットの詳細については、psrset(1M) のマニュアルページを参照してください。
cpu_chip メンバーは、物理チップの識別子です。物理チップには、複数の CPU が搭載されていることがあります。詳細については、psrinfo(1M) のマニュアルページを参照してください。
cpu_lgrp メンバーは、CPU の遅延グループの識別子です。遅延グループの詳細については、liblgrp(3LIB) のマニュアルページを参照してください。
cpu_info メンバーは、processor_info(2) から返される CPU の processor_info_t 構造体です。