구조체 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에서 제거됨.

관련 정보