*参照元 [#i0635b50]
#backlinks

*説明 [#eb6166fe]
-パス: [[linux-2.6.33/include/linux/compiler-gcc.h]]

-FIXME: これは何?
--説明
-メモリバリアを作成する。
--コンパイラの最適化による命令の移動、省略を防ぎ、
下記の効果をもたらす。
---メモリバリアの前に実行された命令の結果は、
メモリバリアに到達後に全て反映される。
---メモリバリアの後に実行される命令は、
メモリバリアに到達する前に実行した命令の結果を参照できる。
--ただしハードウェアレベルでは保証されない。
すなわちキャッシュコヒーレンシ、バスの内部バッファなどは考慮されない。


**引数 [#mb263ffc]
-なし


**返り値 [#u5359184]
-なし


**参考 [#je868cee]


*実装 [#l1e3e9c8]
 /* Optimization barrier */
 /* The "volatile" is due to gcc bugs */
 #define barrier() __asm__ __volatile__("": : :"memory")
-
--
-メモリバリア
--__volatile__ キーワードにより、
gcc の最適化による命令の移動、省略などを防ぐ。
--memory 指定により、
入出力リストに書かれていないレジスタやメモリが変更されたり、
予期せぬメモリの破壊があることをコンパイラに伝える。


*コメント [#ca6254d9]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS