PMC_GET_MSR(3) |
FreeBSD Library Functions Manual |
PMC_GET_MSR(3) |
名称
pmc_get_msr —
x86 アーキテクチャ特有の PMC 操作
ライブラリ
Performance Counters Library (libpmc, -lpmc)
書式
#include < pmc.h>
int
pmc_get_msr( pmc_id_t pmc, uint32_t *msr);
解説
関数
pmc_get_msr() は、RDPMC 命令でその後に使用される PMC に関連しているプロセッサモデル特有のレジスタ番号を返します。引数
pmc は、プロセス範囲カウンティング PMC を指定します。関数は、引数
msr によって指された位置に PMC に関連しているモデル特有のレジスタ番号を書き込みます。
この関数が成功して終了した後に、アプリケーションは、RDPMC 命令を使用して直接 PMC ハードウェアの内容を読み込むことができます。
戻り値
The
pmc_get_msr() function returns the value 0 if successful; otherwise the value -1 is returned and the global variable
errno is set to indicate the error.
エラー
pmc_get_msr() への呼び出しは、次のエラーで失敗します:
-
[
EINVAL]
-
指定された PMC ハンドルが、無効でした。
-
[
EINVAL]
-
指定された PMC には、プロセス範囲、またはカウンティングモードがありませんせんでした。
-
[
EINVAL]
-
指定された PMC が
PMC_F_DESCENDANTS フラグをつけて割り付けられました。
-
[
EINVAL]
-
指定された PMC が、所有者以外のターゲットプロセスに既にアタッチされています。
-
[
ENOSYS]
-
基本的なハードウェアが、RDPMC 命令をサポートしていません。