On Wed Oct 28 16:44:36 EDT 2009, [email protected] wrote:
> Hi, folks.
> I'm trying to understand how system interact with network protocols, such as
> tcp, udp and other.
> i'm look through sources in /sys/src/9/ip/ and saw follow:
> - protocol header struct
> - protocl init function
> and so on.
> But i'm grep in plan9.iso and don't find any files, when Tcp4hdr or tcpinit
> used. How it could be
> used?
> Where i can read about it or, better, where i can see at code, used such
> functions.
>
> Sorry for english and maybe foolish question.
excellent question. you're running into a little magic
built into the kernel build scripts. port/makedevc
is a script called from the kernel mkfile (these days,
usually pc/mkfile) that builds $kernelconfig.c. this
file has an array called ipprotoinit. if you specifiy
tcp in your kernel config, this array will contain a
reference to tcpinit. here's the array from my kernel
void (*ipprotoinit[])(Fs*) = {
ilinit,
tcpinit,
udpinit,
ipifcinit,
icmpinit,
icmp6init,
nil,
};
this array is referenced in ip/ipgetfs where tcpinit
would typically be called.
i hope that answers the question. it is a bit confusing.
- erik