Linuxカーネルのコンパイルヘッダーの中に、
#define __acquire(x) __context__(1)
や
#define __release(x) __context__(-1)
みたいな記述があるのですが、スケジューラの本体の中で、
static inline void task_rq_unlock(runqueue_t *rq, unsigned long *flags)
__releases(rq->lock)
{
spin_unlock_irqrestore(&rq->lock, *flags);
}
や
static inline runqueue_t *task_rq_lock(task_t *p, unsigned long *flags)
__acquires(rq->lock)
{
struct runqueue *rq;
repeat_lock_task:
local_irq_save(*flags);
rq = task_rq(p);
spin_lock(&rq->lock);
if (unlikely(rq != task_rq(p))) {
spin_unlock_irqrestore(&rq->lock, *flags);
goto repeat_lock_task;
}
return rq;
}
のような使われ方をしている所があるのですが、
コンテキスト1の中に入ったり、そこから出たりと言うことをしていると思うのですが、
それらの記述を上記のように呼び出される関数定義のブラケット{}の外側(最初)に書いた場合、
動作的にはどのような意味があるのでしょうか?
Linuxカーネルに詳しく方、ご教示願えればと思います。
No.1ベストアンサー
- 回答日時:
sparseというC用のコードチェッカのための記述のようです。
ロックとアンロックが対応しているか確認するようです。
https://linux.die.net/man/1/sparse の中の -Wcontext の項目を参照
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- iPod・ウォークマン・音楽プレーヤー ナショナルのRQ-382の取扱説明書がどこに載っているか教えてください! 2 2023/05/31 10:52
- iPod・ウォークマン・音楽プレーヤー ナショナルのRQ-382のテープ走行を反にしたらモーターが動き続けるようになってしまいました どうに 6 2023/05/31 11:50
- 数学 数的推理の解答解説でわからないことがあります。 解説中に『△CFQと△CGRは相似。CR=RQで、四 3 2022/04/02 23:26
- その他(ホビー) 飛行機の尾翼形状について 5 2022/05/18 15:21
- その他(AV機器・カメラ) モバイルバッテリー(USB出力)でラジオを動かす方法 7 2022/05/31 11:17
- Java Java 南京錠 2 2023/02/04 11:46
- マウス・キーボード キーボードのCaps Lockキーと変換キーの挙動がおかしくなりました。 4 2022/09/04 22:44
- 物理学 このような問題でいくつか質問があります。 ①導体球が帯電している=導体球内に電荷がある (帯電してい 2 2023/04/12 14:48
- ノートパソコン chromebookのcaps lockが外れなくなった 5 2022/07/14 19:23
- ダンス・バレエ ラジオ体操第1のリミックス系で、Lockダンスが踊れそうな音源ありませんか……?? 1 2023/02/05 17:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
/dev/nvme0n1p2 clean と表示さ...
-
/proc/sys/net/ipv4/route/flus...
-
パフォーマンスモニタの%Proces...
-
違いを教えください!!
-
どうしてwindowsはMacと比べ動...
-
telnetの設定ファイルの場所が...
-
割り込み不可能?なプロセスを...
-
Centos5.3にVmwareインストール
-
「ブロックデバイスが...」HDの...
-
gettidについて
-
カーネルバッファとは何でしょうか
-
OSやアンチウイルスソフト
-
Linuxカーネルのコンパイルヘッ...
-
インターフェイスが認識しない
-
OSの割り込みについて
-
CentOSのデスクトップ画面が立...
-
SunOS5.x と Solarisの違いは?
-
エラー”Illegal seek”はどんな...
-
Linux 32Bitと64Bitのメモリー...
-
Windows Vistaは本当にゴミOSな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パフォーマンスモニタの%Proces...
-
mac OSは、何のプログラミング...
-
/proc/sys/net/ipv4/route/flus...
-
どうしてwindowsはMacと比べ動...
-
カーネルバッファとは何でしょうか
-
LinuxのDMA転送でのメモリ操作...
-
違いを教えください!!
-
カーネルアップグレード後、una...
-
/dev/nvme0n1p2 clean と表示さ...
-
DATが使えなくなった??
-
魔改造版Windows 2000をインス...
-
Windowsのソースコードって非公...
-
ブルースクリーンの原因が「ntk...
-
romfsってなんですか?
-
CentOS6 の画面サイズの設定
-
UNIXとBSDとLinuxの違いを小学...
-
PCカードが認識しない・・・
-
RedHat Ferora2とは?
-
Linuxでcrcエラー?
-
割り込み不可能?なプロセスを...
おすすめ情報