Что делает флаг "kern" в Linux net.h proto_ops принимает - PullRequest
0 голосов
/ 09 июля 2019

В linux / net.h для Linux 4.18:

int     (*accept)    (struct socket *sock,
      struct socket *newsock, int flags, bool kern);

Эта функция используется в TCP-серверах пространства ядра, таких как этот . Однако этот пример не предоставляет значение для флага kern. (В чем преимущество того, что Linux не имеет обратной совместимости с самим собой?)

Документирована ли эта функция? Как мы можем понять, что означает kern

Обновление - возможный совет?

Я наткнулся на следующее, ища что-то еще:

http://lkml.iu.edu/hypermail/linux/kernel/1703.1/00970.html

(3) Добавить параметр 'kern' в -> accept (), аналогичный параметру передается в -> create (), который различает, является ли kernel_accept () или sys_accept4 () была вызывающей и может быть передана sk_alloc ().

В каком мире «различение вызывающего» объясняет семантику функции? В любом случае, это, кажется, не отвечает на вопрос, но может быть подсказкой.

...