linuxのメモ

Linux kernelの実装を解説していきます (対象ver 4.5)

bit操作 - BITOP_ADDR()

概要

拡張インラインアセンブラ命令の引数を指定する命令を生成する

詳細

引数として受け取った値をvolatile long型のポインタとしてキャストし、ポインタの値を拡張インラインアセンブラの引数として指定する命令を生成するが、GCCのバージョンによってメモリへのマッピングの制約修飾子が異なる

  • GCC4.1以上
    • 制約修飾子に+を使用し、読み書き可能メモリとして使用する
  • それ以外
    • 制約修飾子に=を使用し、書込み専用メモリとして使用する