構造体map_segmentの使用/目的は何ですか

構造体map_segmentの使用/目的は何ですか

Linuxカーネル(バージョンv2.6.38)のソースコードを見ていましたが、未定義の定義がstruct map_segment誤って見つかりましたexec_domain

struct exec_domain {
    const char      *name;      /* name of the execdomain */
    handler_t       handler;    /* handler for syscalls */
    unsigned char       pers_low;   /* lowest personality */
    unsigned char       pers_high;  /* highest personality */
    unsigned long       *signal_map;    /* signal mapping */
    unsigned long       *signal_invmap; /* reverse signal mapping */
    struct map_segment  *err_map;   /* error mapping */
    struct map_segment  *socktype_map;  /* socket type mapping */
    struct map_segment  *sockopt_map;   /* socket option mapping */
    struct map_segment  *af_map;    /* address family mapping */
    struct module       *module;    /* module context of the ed. */
    struct exec_domain  *next;      /* linked list (internal) */
};

exec_domain使用thread_info

私の質問:

  1. どこでmap_segment定義されていますか? (メンバー変数はすべて何ですか?これまでに私が推測した最善の推測は、下位レベルのアーキテクチャ関連構造を指すことです。)
  2. その目的は何で、どこで使用されますか? (コメントはソケットタイプマップ内で動作することを示していますが、私はあまり慣れていません。ソケットタイプマップとは何ですか?)

このトピックに関する情報をお寄せいただきありがとうございます。

ベストアンサー1

  1. struct map_segment少なくともバージョン2.6.38では、カーネルのどこにも定義されていません。 Cでは問題ありません。メンバーの内容がまったく必要ない限り、コンパイラが知る必要があるすべてはフィールドのサイズであり、これはポインタなので、ポインタのサイズだけです。

  2. これらのstruct map_segmentフィールドは使用されません。私は彼らの意図が人格にマッピングを定義させることだと思います。errno値はerr_mapアウトレットタイプ存在するsocktype_mapアウトレットオプションsockopt_map一緒にするホームアドレス存在するaf_map

このexec_domain構造カーネルバージョン4.1から削除されました

おすすめ記事