小鱼儿游啊游啊。。。。
全部博文(338)
发布时间:2013-01-08 13:42:34
一、简介2.6内核上一个新的特性就是per-CPU变量。顾名思义,就是每个处理器上有此变量的一个副本。per-CPU的最大优点就是,对它的访问几乎不需要锁,因为每个CPU都在自己的副本上工作。tasklet、timer_list等机制都使用了per-CPU技术。二、API使用注意,2.6内核是抢占式的。所以在访问per-CPU变量时,应使用特定的API来避免抢占,即避免它被切换到另一个CPU上被处理。per-CPU变量可以在编译时声明,也可以在系统运行时动态生成实例一:编译期间创建一个per-CPU变量: DEFINE_PER_CPU(int,......【阅读全文】
发布时间:2013-01-08 10:58:20
在模块的编写过程中,我们经常使用定时器来等待一段时间之后再来执行某一个操作。为方便分析,写了下列一段测试程序:#include <linux/config.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/interrupt.h>#include <linux/delay.h>#include <linux/timer.h> MODULE_LICENSE("GPL");......【阅读全文】
发布时间:2013-01-08 10:41:46
在模块的编写过程中,我们经常使用定时器来等待一段时间之后再来执行某一个操作。为方便分析,写了下列一段测试程序:#include <linux/config.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/interrupt.h>#include <linux/delay.h>#include <linux/timer.h> MODULE_LICENSE("GPL");......【阅读全文】
发布时间:2013-01-07 14:39:16
swap(int *p1,int *2){int temp; temp=*p1; *p1=*p2; *p2=temp;}main(){int a,b; int *pointer_1,*pointer_2; scanf("%d%d",&a,&b); pointer_1=&a;pointer_2=&b; if(a<b)swap(pointer_1,pointer_2); printf("%d,%d\n",a,b);}进入函数后,函数创建几个空间给形参,再把实参数值拷过来。退出函数时,把形参空间释放,则影响不到实参。这就是值传递。 swap(int *p1,in......【阅读全文】
发布时间:2013-01-05 17:12:35
一、使用指针做函数返回值:1、当使用指针做为函数的返回值时,主函数处的char *p;将获得调用函数char *pf;的值,即一个地址值,如oxAE72。此时需要我们注意的是该地址值所指向的空间是否存在(即已向操作系统声明注册,不会被释放,即可能被其他操作修改);2、使用栈内存返回指针是明显错误的,因为栈内存将在调用结束后自动释放,从而主函数使用该地址空间将很危险。 例如: char* GetMemory() &nbs......【阅读全文】