- 论坛徽章:
- 0
|
我将tcp/ip协议栈抽取了出来,在他的基础之上做了一些修改,做了一个专门针对我的服务的协议栈。我的协议栈是采用的ko来实现的,现在出现的问题是:我在编译的时候没有报错,但是我在加载我的ko时,报sysctl__net_inet_divert_children 没有定义。
发生错误的文件是ip_divert.c(sys/netinet中的一个文件,我的协议栈实现直接采用的他)
错误的位置在
SYSCTL_DECL(_net_inet_divert);
SYSCTL_PROC(_net_inet_divert, OID_AUTO, pcblist, CTLFLAG_RD, 0, 0,
div_pcblist, "S,xinpcb", "List of active divert sockets" ;
其中SYSCTL_DECL宏的原型为:
/* Declare a static oid to allow child oids to be added to it. */
#define SYSCTL_DECL(name)\
extern struct sysctl_oid_list sysctl_##name##_children
我想请教高手,sysctl__net_inet_divert_children在哪个模块中定义过,我在内核中没有找到。我想肯定是存在这个变量的,因为系统的tcp/ip同样有这个文件,但他没有报错。
我初步认为可能使我没有将我得模块依赖于某个模块导致了错误,清高手指教!
另还想请问:
/* Declare a static oid to allow child oids to be added to it. */中的oid是什么东东!!!
还有SYSCTL_PROC的功能是什么??? |
|