日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
BITSET(9) FreeBSD カーネル開発者マニュアル BITSET(9) 名称 bitset(9) -- BITSET_DEFINE, BITSET_T_INITIALIZER, BITSET_FSET, BIT_CLR, BIT_COPY, BIT_ISSET, BIT_SET, BIT_ZERO, BIT_FILL, BIT_SETOF, BIT_EMPTY, BIT_ISFULLSET, BIT_FFS, BIT_FLS, BIT_COUNT, BIT_SUBSET, BIT_OVERLAP, BIT_CMP, BIT_OR, BIT_OR2, BIT_AND, BIT_AND2, BIT_NAND, BIT_NAND2, BIT_XOR, BIT_XOR2, BIT_CLR_ATOMIC, BIT_SET_ATOMIC, BIT_SET_ATOMIC_ACQ, BIT_AND_ATOMIC, BIT_OR_ATOMIC, BIT_COPY_STORE_REL -- ビット集合 (bitset) 操作マクロ 書式 #include <sys/_bitset.h> #include <sys/bitset.h> BITSET_DEFINE(STRUCTNAME, const SETSIZE); BITSET_T_INITIALIZER(ARRAY_CONTENTS); BITSET_FSET(N_WORDS); BIT_CLR(const SETSIZE, size_t bit, struct STRUCTNAME *bitset); BIT_COPY(const SETSIZE, struct STRUCTNAME *from, struct STRUCTNAME *to); bool BIT_ISSET(const SETSIZE, size_t bit, struct STRUCTNAME *bitset); BIT_SET(const SETSIZE, size_t bit, struct STRUCTNAME *bitset); BIT_ZERO(const SETSIZE, struct STRUCTNAME *bitset); BIT_FILL(const SETSIZE, struct STRUCTNAME *bitset); BIT_SETOF(const SETSIZE, size_t bit, struct STRUCTNAME *bitset); bool BIT_EMPTY(const SETSIZE, struct STRUCTNAME *bitset); bool BIT_ISFULLSET(const SETSIZE, struct STRUCTNAME *bitset); int BIT_FFS(const SETSIZE, struct STRUCTNAME *bitset); int BIT_FLS(const SETSIZE, struct STRUCTNAME *bitset); int BIT_COUNT(const SETSIZE, struct STRUCTNAME *bitset); bool BIT_SUBSET(const SETSIZE, struct STRUCTNAME *haystack, struct STRUCTNAME *needle); bool BIT_OVERLAP(const SETSIZE, struct STRUCTNAME *bitset1, struct STRUCTNAME *bitset2); bool BIT_CMP(const SETSIZE, struct STRUCTNAME *bitset1, struct STRUCTNAME *bitset2); BIT_OR(const SETSIZE, struct STRUCTNAME *dst, struct STRUCTNAME *src); BIT_OR2(const SETSIZE, struct STRUCTNAME *dst, struct STRUCTNAME *src1, struct STRUCTNAME *src2); BIT_AND(const SETSIZE, struct STRUCTNAME *dst, struct STRUCTNAME *src); BIT_AND2(const SETSIZE, struct STRUCTNAME *dst, struct STRUCTNAME *src1, struct STRUCTNAME *src2); BIT_NAND(const SETSIZE, struct STRUCTNAME *dst, struct STRUCTNAME *src); BIT_NAND2(const SETSIZE, struct STRUCTNAME *dst, struct STRUCTNAME *src1, struct STRUCTNAME *src2); BIT_XOR(const SETSIZE, struct STRUCTNAME *dst, struct STRUCTNAME *src); BIT_XOR2(const SETSIZE, struct STRUCTNAME *dst, struct STRUCTNAME *src1, struct STRUCTNAME *src2); BIT_CLR_ATOMIC(const SETSIZE, size_t bit, struct STRUCTNAME *bitset); BIT_SET_ATOMIC(const SETSIZE, size_t bit, struct STRUCTNAME *bitset); BIT_SET_ATOMIC_ACQ(const SETSIZE, size_t bit, struct STRUCTNAME *bitset); BIT_AND_ATOMIC(const SETSIZE, struct STRUCTNAME *dst, struct STRUCTNAME *src); BIT_OR_ATOMIC(const SETSIZE, struct STRUCTNAME *dst, struct STRUCTNAME *src); BIT_COPY_STORE_REL(const SETSIZE, struct STRUCTNAME *from, struct STRUCTNAME *to); 解説 マクロの bitset(9) ファミリは、コンパイルの時に、集合の最大のサイズが知ら れているなら、柔軟性があり、効率的な bitset の実装を提供しています。この マニュアルページを通して、名前 SETSIZE は、ビット単位の bitset のサイズを 参照します。bitset の個別のビットは、インデックス 0 から SETSIZE - 1 を通 して参照されます。<sys/bitset.h> の 1 つの例用例は、<sys/cpuset.h> です。 BITSET_DEFINE() マクロは、SETSIZE ビットを表すために空間で bitset の struct STRUCTNAME を定義しています。 BITSET_T_INITIALIZER() マクロは、それがコンパイル時のリテラル値で bitset の struct を初期化することができます。 BITSET_FSET() マクロは、BITSET_T_INITIALIZER() によって使用可能な、コンパ イル時のリテラルを生成し、完全な bitset (すべてのビットの集合) を表してい ます。BITSET_T_INITIALIZER() と BITSET_FSET() の使用法の例については、 「BITSET_T_INITIALIZER の例」セクションを参照してください。BITSET_FSET() への N_WORDS パラメータは、次のようになるべきです: __bitset_words(SETSIZE) BIT_CLR() マクロは、bitset によって指された bitset のビット bit をクリア します。BIT_CLR_ATOMIC() マクロは、同一ですが、ビットは、不可分にクリアさ れます。 BIT_COPY() マクロは、bitset from の内容を bitset to にコピーします。 BIT_COPY_STORE_REL() と同様ですが、from から構成要素のマシン語をコピー し、リリースのセマンティックスで不可分に格納されるとともに to までそれら を書き込みます。(すなわち、to が、複数のマシン語からなるなら、 BIT_COPY_STORE_REL() は、複数の個別に不可分な操作を実行します。) BIT_SET() マクロは、bitset によって指された bitset のビット bit を設定し ます。BIT_SET_ATOMIC() マクロは、同一ですが、ビットは、不可分に設定されま す。BIT_SET_ATOMIC_ACQ() マクロは、獲得されたセマンティックスでビットを設 定します。 BIT_ZERO() マクロは、bitset のすべてのビットをクリアします。 BIT_FILL() マクロは、bitset のすべてのビットを設定します。 BIT_SETOF() マクロは、ビット bit だけを設定する前に、bitset のすべての ビットをクリアします。 BIT_EMPTY() マクロは、bitset が空であるなら、true (真) を返します。 BIT_ISFULLSET() マクロは、bitset が (すべてのビットが設定される) full で あるなら、true (真) を返します。 BIT_FFS() マクロは、bitset の最初 (下位) に設定されたビットの 1-index を 返し、bitset が空であるなら、0 を返します。ffs(3) でのように、あらゆる他 の bitset(9) マクロへの bit インデックスのパラメータとして BIT_FFS() の 0 でない結果を使用するために、利用者は、結果からそれを取り去らなければなり ません。 BIT_FLS() マクロは、bitset の最後の (最上位) に設定されたビットの 1-index を返し、bitset が空であるなら、0 を返します。あらゆる他の bitset(9) マク ロへの bit index パラメータとして BIT_FLS() の 0 でない結果を使用するため の fls(3) でのように、利用者は、結果からそれを差し引かなければなりませ ん。 BIT_COUNT() マクロは、bitset の設定されたビットの合計の数を返します。 BIT_SUBSET() マクロは、needle が haystack のサブセットであるなら、true (真) を返します。 BIT_OVERLAP() マクロは、bitset1 と bitset2 にあらゆる共通のビットがあるな ら、true (真) を返します。(すなわち、bitset1 AND (論理積) bitset2 が空集 合ではないなら。) BIT_CMP() マクロは、bitset1 が bitset2 と等しく「ない」なら、true (真) を 返します。 BIT_OR() マクロは、src に存在するビットを dst に設定します。(それは、スカ ラの bitset(9) の同等のものです: dst |= src。) BIT_OR_ATOMIC() と同様です が、dst の構成要素のマシン語で不可分にビットを設定します。(すなわち、dst が複数のマシン語から成るなら、BIT_OR_ATOMIC() は、複数の個別の不可分の操 作を実行します。) BIT_OR2() マクロは、src1 と src2 のビット単位の論理和 (OR) を計算し、結果 を dst に代入します。(それは、スカラの bitset(9) の同等のものです: dst = src1 | src2。) BIT_AND() マクロは、dst から src の存在しないビットをクリアします。(それ は、スカラの bitset(9) の同等のものです: dst &= src。) BIT_AND_ATOMIC() は、BIT_OR_ATOMIC() と同じ不可分のセマンティックスと同様です。 BIT_AND2() マクロは、src1 と src2 のビット単位の論理積 (AND) を計算し、結 果を dst に代入します。(それは、スカラの bitset(9) の同等のものです: dst = src1 & src2。) BIT_NAND() マクロは、dst から src の設定されたビットをクリアします。(それ は、スカラの bitset(9) の同等のものです: dst &= ~ src。) BIT_NAND2() マクロは、src1 と src2 のビット単位の論理積の否定 (AND NOT) を計算し、結果を dst に代入します。(それは、スカラの bitset(9) の同等のも のです: dst = src1 & ~ src2。) BIT_XOR() マクロは、dst の src に設定されたビットを切り替えます。(それ は、スカラの bitset(9) の同等のものです: dst ^= src。) BIT_XOR2() マクロは、src1 と src2 のビット単位の排他的論理和 (EXCLUSIVE OR) を計算し、結果を dst に代入します。(それは、スカラの bitset(9) の同等 のものです: dst = src1 ^ src2。) BITSET_T_INITIALIZER の例 BITSET_DEFINE(_myset, MYSETSIZE); struct _myset myset; /* 満たすために myset を初期化する (すべてのビットセット) */ myset = BITSET_T_INITIALIZER(BITSET_FSET(__bitset_words(MYSETSIZE))); /* 最下位ビットセットのみ myset を初期化します */ myset = BITSET_T_INITIALIZER(0x1); 関連項目 bitstring(3), cpuset(9) 歴史 bitset(9) マクロは、2014 年 1 月に FreeBSD 10.0 ではじめて登場しました。 それらは、2014 年 7 月にリリースされた FreeBSD 9.3 に MFC 化されました。 このマニュアルページは、FreeBSD 11.0 ではじめて登場しました。 作者 bitset(9) マクロは、Attilio Rao <attilio@FreeBSD.org> によって一般化さ れ、<sys/_bitset.h> と <sys/bitset.h> として、<sys/cpuset.h> から取り出さ れました。このマニュアルページは、Conrad Meyer <cem@FreeBSD.org> によって 書かれました。 警告 これらのマクロのすべての SETSIZE 引数は、BITSET_DEFINE() に与えられた値と 一致しなければなりません。 0 でインデックス付けられた個別に設定されたメンバへのすべての他の参照と 違って、BIT_FFS() と BIT_FLS() は、1 でインデックス付けられた結果を返しま す、(または、設定が空であるなら、0 を返します)。 FreeBSD 11.4 July 7, 2017 FreeBSD 11.4