Chinaunix首页 | 论坛 | 博客
  • 博客访问: 46179
  • 博文数量: 7
  • 博客积分: 95
  • 博客等级: 民兵
  • 技术积分: 47
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-12 17:28
文章分类

全部博文(7)

文章存档

2013年(5)

2010年(2)

发布时间:2013-01-10 15:15:59

__attribute__机制为GNU C的一大特色,__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__语法格式为:__attribute__ ((attribute-list)) 其位置约束为:放于声明的尾部“;”之前。 packed是类型属性(Type Attribute)的一个参数,使用packed可以减小对象占用的空间。需要注意的是,attribute属性的效力与你的连接器也有关,如果你的连接器最大只支持16字节对齐,那么你此时定......【阅读全文】

阅读(1669) | 评论(0) | 转发(0)

发布时间:2013-01-10 15:15:53

      Netlink在2.6版本的内核中变化也是很大的,在最新的2.6.37内核中,其定义已经改成下面这种形式,传递的参数已经达到6个。其中第一个参数和mutex参数都是最新添加的。Mutex也可以为空。这里主要是关于内核空间中的netlink函数的使用。 extern struct sock *netlink_kernel_create(struct net *net,           &nbs......【阅读全文】

阅读(2405) | 评论(0) | 转发(0)

发布时间:2013-01-10 15:15:42

  这里我以路由中的netlink为例,看一下内核中的处理流程是怎么样的!在/kernel/net/core/rtnetlink.c文件中,有一个接收从用户空间过来的Netlink消息的函数。static void rtnetlink_rcv(struct sock *sk, int len) {     unsigned int qlen = 0;     do {         rtnl_lock(); &......【阅读全文】

阅读(2298) | 评论(0) | 转发(0)

发布时间:2013-01-10 15:15:31

   前面有一篇文章其实已经介绍过Netlink方面的知识,还有一个内核和用户空间之间的一个交互例子,这篇文章主要是更细节和基础的知识介绍! Netlink 是一种特殊的 socket,它是 Linux 所特有的,由于传送的消息是暂存在socket接收缓存中,并不被接收者立即处理,所以netlink是一种异步通信机制。 系统调用和 ioctl 则是同步通信机制。用户空间进程可以通过标准socket API来实现消息的发送、接收,在Linux中,有很多用户空间和内核空间的交互都是通过Netlink机制完成的,在Linux3.0的内核版本中定义......【阅读全文】

阅读(1828) | 评论(0) | 转发(0)
给主人留下些什么吧!~~
留言热议
请登录后留言。

登录 注册