メモリ割り当て - memset()
概要
任意の大きさのメモリを初期化する
詳細
- CONFIG_X86_32が有効(32bitモード)
- __KERNEL__が定義済み(カーネル内の呼び出し)
- __GNUC__のバージョンが4以上
- コンパイラのデフォルト関数である__builtin_memset()を実行
- 4未満
- __builtin_constant_p()でセットする文字列が定数か確認し、定数なら__constant_c_x_memset()を、定数でなければ__memset()を実行する
- 定数の場合は初期化する値は0x01010101UL*1をかけた値を使用する
- __GNUC__のバージョンが4以上
- カーネル以外からの呼び出し __memset() を実行しEXPORT_SYMBOL()によりモジュールからアクセス可能なシンボルとなる
- __KERNEL__が定義済み(カーネル内の呼び出し)
- CONFIG_X86_32が無効(64bitモード)
- __KERNEL__が定義済み
- CONFIG_KASANが有効で、かつ__SANITIZE_ADDRESS__が無効な場合に処理が異なるように見えるが、64bitの場合はこの関数と __memset() は全く同じ処理となる
- __KERNEL__が定義済み