<div class="dp-highlighter bg_cpp">
<div class="bar">
<div class="tools">
[cpp]?<a class="ViewSource" title="view plain" href="http://blog.csdn.net/geekcome/article/details/7488828">view plain<a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/geekcome/article/details/7488828">copy
?
- {??
-
- ??
-
- ????(i?=?0;?i?
-
- ?????????(pops[i]?!=?NULL)???
-
- ????????pops[i]?=?ops;??
- family?=?family;??
- ????????sti();??
-
- ????}??
-
- ????(-ENOMEM);??
-
参数中的inet_proto_ops定义如下:
<div class="dp-highlighter bg_cpp">
<div class="bar">
<div class="tools">
[cpp]?<a class="ViewSource" title="view plain" href="http://blog.csdn.net/geekcome/article/details/7488828">view plain<a class="CopyToClipboard" title="copy" href="http://blog.csdn.net/geekcome/article/details/7488828">copy
?
- ????AF_INET,??
-
- ????inet_create,??
-
- ????inet_release,??
-
- ????inet_connect,??
-
- ????inet_accept,??
-
- ????inet_read,??
-
- ????inet_select,??
-
- ????inet_listen,??
-
- ????inet_recv,??
-
- ????inet_recvfrom,??
-
- ????inet_setsockopt,??
-
- ????inet_fcntl,??
-
其中AF_INET宏定义为2,即INET协议族号为2,后面是函数指针,INET域的操作函数。
然后
[cpp]?
?
- (p?=?inet_protocol_base;?p?!=?NULL;)???
-
- ?????inet_protocol?*tmp?=?(?inet_protocol?*)?p->next;??
-
- ????printk(,p->name,tmp?:);??
-
- }??
-
- ?
-
- arp_init();??
-
- ?
-
- ip_init();??
协议初始化完成后再执行dev_init()设备的初始化。
这是大体的一个初始化流程,讨论的不是很详细,后续会进行Linux内核网络栈源代码的详细分析。 (编辑:淮北站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|