#include <syscall.h> #include <perfmon.h> long perfmonctl(int fd, int cmd, void *arg, int narg);注: このシステムコールには glibc のラッパー関数は存在しない。「注意」の節を参照。
perfmonctl() は、 操作 cmd を arg で指定された入力引数で行う。 引数の数は narg で規定される。 fd 引数は操作対象の perfmon コンテキストを指定する。
cmd に指定できる値は以下のとおりである。
perfmonctl(int fd, PFM_CREATE_CONTEXT, pfarg_context_t *ctxt, 1);コンテキストを用意する。
perfmonctl(int fd, PFM_WRITE_PMCS, pfarg_reg_t *pmcs, n);PMC レジスターを設定する。
perfmonctl(int fd, PFM_WRITE_PMDS, pfarg_reg_t *pmds, n);PMD レジスターを設定する。
perfmonctl(int fd, PFM_READ_PMDS, pfarg_reg_t *pmds, n);PMD レジスターを読み出す。
perfmonctl(int fd, PFM_START, NULL, 0);監視を開始する。
perfmonctl(int fd, PFM_STOP, NULL, 0);監視を停止する。
perfmonctl(int fd, PFM_LOAD_CONTEXT, pfarg_load_t *largs, 1);指定したコンテキストをスレッドに接続する。
perfmonctl(int fd, PFM_UNLOAD_CONTEXT, NULL, 0);指定したコンテキストをスレッドが切り離す。
perfmonctl(int fd, PFM_RESTART, NULL, 0);オーバーフロー通知を受信した後、 監視を再開する。
perfmonctl(int fd, PFM_GET_FEATURES, pfarg_features_t *arg, 1);
perfmonctl(int fd, PFM_DEBUG, val, 0);val が 0 以外の場合、デバッグモードを有効にする。 そうでない場合、 無効にする。
perfmonctl(int fd, PFM_GET_PMC_RESET_VAL, pfarg_reg_t *req, n);PMC レジスターをデフォルト値にリセットする。
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]