В 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 ().
В каком мире «различение вызывающего» объясняет семантику функции? В любом случае, это, кажется, не отвечает на вопрос, но может быть подсказкой.