发布时间:2013-08-27 11:15:54
操作系统:ubuntu 13.04工具:gcc, objdump, readelf参考:《程序员自我修养》代码编译后的机器指令经常被放在代码段里,代码段名为".text";已初始化的全局变量和已初始化的局部静态变量经常放在数据段里,数据段名为".data";未初始化的全局变量和未初始化局部静态变量一般放在“.bss”段里,.bss在文件中不占据空间。.........【阅读全文】
发布时间:2013-08-26 11:53:21
kernel:linux-2.6.18Packet_type数据结构包含协议类型、指向网络设备的指针、指向协议的接收数据处理例程的指针等。结构体:点击(此处)折叠或打开struct packet_type { __be16 &n.........【阅读全文】
发布时间:2013-08-08 13:46:51
kernel:linux-2.6.18点击(此处)折叠或打开/* net_rx_action会把剩下budget传递给process_backlog */static int process_backlog(struct net_device *backlog_dev, int *budget){ int work = 0; &nb.........【阅读全文】
发布时间:2013-08-06 14:55:07
kernel:linux-2.6.18点击(此处)折叠或打开static void net_rx_action(struct softirq_action *h){struct softnet_data *queue = &__get_cpu_var(softnet_data);unsigned long start_time = jiffies;int budget = netdev_budget;.........【阅读全文】
发布时间:2013-07-18 15:15:30
网卡驱动通过调用netif_rx函数,把数据送入到协议栈中。 代码中用到一个数据结构 softnet_data ,在网卡收发数据的时候,需要维护一个缓冲区队列,来缓存数据,在协议栈中用一个队列层来表示该缓冲区,队列层位于数据链路层和网络层之间。softnet_data 就是数据链路层中的数据结构,它是一个Per-CPU变量,每个CPU都.........【阅读全文】