"latent_entropy"はLinuxカーネルの機能をどのように修正しますか?

したがって、Linuxカーネルでは、/kernel/fork.cに次の関数のメソッド署名があります。

static __latent_entropy struct task_struct *copy_process(
                    struct pid *pid,
                    int trace,
                    int node,
                    struct kernel_clone_args *args)

この関数を変更するために__latent_entropy "プロパティ"(またはそれは何ですか?)を使用できるC言語機能は何ですか?

Latent_entropyが何をしているのかを具体的に尋ねる必要はありません。 Googleが検索した結果、Cメソッドの署名構文がもっと疑問に思うからです。 Latent_entropyのようなメソッド署名に追加のフラグを追加できることを知りませんでした。これはどのような言語機能ですか?/この機能をよりよく理解するには、Googleで何を検索できますか?

ありがとうございます。

ベストアンサー1

これはマクロであり、基本的に何もないものに置き換え:

#ifndef __latent_entropy
# define __latent_entropy
#endif

GCCの場合それは財産になる:

#if defined(LATENT_ENTROPY_PLUGIN) && !defined(__CHECKER__)
#define __latent_entropy __attribute__((latent_entropy))
#endif

これはGCCで使用されますエントロピープラグイン

おすすめ記事