排序:
默认
按更新时间
按访问量

linux C判断内核版本号

当设备驱动需要同时支持不同版本内核时,在编译阶段,内核模块需要知道当前使用的内核源码的版本,从而使用相应的内核 API。 头文件 linux/version.h : **LINUX_VERSION_CODE 内核版本的二进制表示,主、从、修订版本号各对应一个字节; KERNEL_VERSI...

2015-09-02 17:49:25

阅读数:6834

评论数:0

linux内核中的__read_mostly变量

linux内核中的__read_mostly变量   内核版本:2.6.14 在阅读socket源码的时候,有如下一句(net/socket.c): [plain]  static struct vfsmount *sock_mnt __read_mostly;   ...

2015-03-12 10:39:35

阅读数:1644

评论数:0

linux scsi sd设备文件名的生成

scsi sd设备的设备文件名,如sda等,是在sd驱动加载时自动生成的。他在生成设备文件时,有一套文件名的生成规则。具体生成算法总的来说就是首先向系统申请一个ida,也就是唯一id。然后把id映射成设备文件名sdxxx。在设备释放时,该ida会被释放,以便以后使用。由于ida是由系统维护的全局量...

2014-11-13 20:39:07

阅读数:1622

评论数:0

linux下netlink详解

Netlink 是一种特殊的 socket,它是 Linux 所特有的,类似于 BSD 中的AF_ROUTE 但又远比它的功能强大,目前在最新的 Linux 内核(2.6.14)中使用netlink 进行应用与内核通信的应用很多,包括:路由 daemon(NETLINK_ROUTE),1-wire...

2014-09-16 10:42:39

阅读数:1380

评论数:0

warning: function declaration isn’t a prototype的解决方法

 今天写内核态程序遇见个问题,在一个很简单的函数上编译时提示了这个警告 warning: function declaration isn’t a prototype 百度了下,有人说是参数传参的问题,在内核态不应该是空的,应该加上void int flashid_check() ...

2014-03-14 15:10:10

阅读数:1081

评论数:0

linux内核中常用函数API

 转载自:http://blog.chinaunix.net/uid-20321537-id-1966892.html 当编写驱动程序时,一般情况下不能使用C标准库的函数。Linux内核也提供了与标准库函数功能相同的一些函数,但二者还是稍有差别。   类别 函...

2014-03-14 13:57:04

阅读数:3310

评论数:0

netfilter内核态与用户态 通信 之 sockopt

用户态与内核态交互通信的方法不止一种,sockopt是比较方便的一个,写法也简单. 缺点就是使用 copy_from_user()/copy_to_user()完成内核和用户的通信, 效率其实不高, 多用在传递控制 选项 信息,不适合做大量的数据传输 用户态函数: 发送:int se...

2013-03-06 14:40:28

阅读数:3740

评论数:0

struct--iphdr -- IP头部

sk_buff->iphdr /usr/src/linux-2.6.19/include/linux/ip.h struct iphdr { #if defined(__LITTLE_ENDIAN_BITFIELD) __u8 ihl:4, version:4; #eli...

2012-12-24 16:01:50

阅读数:888

评论数:0

jiffies溢出与时间先后比较-time_after,time_before

注:本文并非原创,我只是在原来的基础上稍微修改了点东西,原网址:http://decimal.blog.51cto.com/1484476/410673,但是想让更多的朋友们看到这篇文章,所以用了原创,很不错的! 1. 概述 在Linux内核中,TCP/IP协议栈在很多用到时间比较的地方都使用...

2012-11-13 10:00:02

阅读数:14957

评论数:3

谈EXPORT_SYMBOL使用

谈EXPORT_SYMBOL使用 EXPORT_SYMBOL只出现在2.6内核中,在2.4内核默认的非static 函数和变量都会自动导入到kernel 空间的, 都不用EXPORT_SYMBOL() 做标记的。 2.6就必须用EXPORT_SYMBOL() 来导出来(因为2.6默认不到处...

2012-09-05 16:51:33

阅读数:816

评论数:0

大端小端转换,le32_to_cpu 和cpu_to_le32

大端小端转换,le32_to_cpu 和cpu_to_le32  字节序 http://oss.org.cn/kernel-book/ldd3/ch11s04.html         小心不要假设字节序. PC 存储多字节值是低字节为先(小端为先, 因此是小端), 一些高级的平台以...

2012-08-16 11:58:32

阅读数:17102

评论数:0

netlink socket 用户态和内核态的通信

原文地址:http://blog.csdn.net/lovekatherine/article/details/1539267 Why and How to Use Netlink Socket 作者:Kevin He,2005-01-05 原文地址:http://www.linuxjo...

2012-06-26 17:04:05

阅读数:9355

评论数:0

in_aton和in4_pton的内核编程用法

in_aton和in4_pton用法 http://biancheng.dnbcw.info/linux/303366.html #includelinux/netfilter.h> #include linux/netfilter_ipv4.h> #include #inc...

2012-04-26 17:35:03

阅读数:4882

评论数:0

一个参考实现 netfilter中注册钩子函数

在netfilter中注册钩子函数即可,一个参考实现  #include     #include     #include     #include     #include     #include     #include     #include     #inclu...

2012-04-24 12:06:54

阅读数:2608

评论数:0

Linux spinlock_t

Linux spinlock_t 我的经验:       如果出现死锁的情况,检查: 1. lock 和 unlock是否成对出现了,检查所有的程序分支。 2.是否有同时需要2个和2个以上的锁的情况,避免掉这种情况。 3.如果在timer等软中断中出现死锁,可能是没有使用spin_l...

2012-04-24 12:04:31

阅读数:2331

评论数:0

sk_buff详解

1.sk_buff  sk_buff是linux内核TCP/IP协议栈最重要的结构,它是网络数据报在内核中的表现形式。sk_buff的定义在$KERN_DIR/incude/linux/skbuff.h中。  1.1 sk_buff最重要的几个成员:  1.sk_buff  sk_...

2012-04-24 10:50:30

阅读数:10960

评论数:1

提示
确定要删除当前文章?
取消 删除
关闭
关闭