函数概述
inet_create
函数是Linux内核中用于创建Internet协议族(PF_INET)套接字的核心函数。它负责根据用户请求的套接字类型和协议,分配并初始化相应的套接字结构,同时进行必要的协议配置和资源分配。
函数参数
-
struct net *net
:指向网络命名空间的指针。 -
struct socket *sock
:指向用户请求创建的套接字结构。 -
int protocol
:指定使用的协议(如IPPROTO_TCP、IPPROTO_UDP等)。 -
int kern
:标识是否为内核空间创建套接字。
函数返回值
-
成功时返回0。
-
失败时返回相应的错误码(如-ESOCKTNOSUPPORT、-EPROTONOSUPPORT、-EPERM等)。
主要逻辑流程
参数检查与初始化
if (protocol < 0 || protocol >= IPPROTO_MAX)
return -EINVAL;
sock-