liunx
jnwangcan
这个作者很懒,什么都没留下…
展开
-
this module
结构体struct module在内核中代表一个内核模块,通过insmod(实际执行init_module系统调用)把自己编写的内核模块插入内核时,模块便与一个struct module结构体相关联,并成为内核的一部分。下面是结构体struct module的完整定义,接下来会逐个解释:struct module{enum module_state state;struct lis转载 2012-10-07 21:44:02 · 455 阅读 · 0 评论 -
u-boot主要的数据结构
u-boot的主要功能是用于引导OS的,但是本身也提供许多强大的功能,可以通过输入命令行来完成许多操作。所以它本身也是一个很完备的系统。u-boot的大部分操作都是围绕它自身的数据结构,这些数据结构是通用的,但是不同的板子初始化这些数据就不一样了。所以u-boot的通用代码是依赖于这些重要的数据结构的。这里说的数据结构其实就是一些全局变量。 1)gd 全局数据变量指针,它保存了u-boot运行转载 2012-10-15 20:20:23 · 1051 阅读 · 0 评论 -
linux 内核定时器编程
1.linux内核定时器基本结构和函数1)struct timer_list 一个struct timer_list对应了一个定时器。#include 以下列出常用的接口:struct timer_list { /*....*/ unsigned long expires;//定时器服务函数开始执行时间 void (*function)(unsigne转载 2012-11-09 11:00:48 · 965 阅读 · 0 评论 -
linux内核中断和时钟初步整理及其问题解答
Linux的中断和时钟对于linux学习中,一般是中断和时钟一起学习。在linux内核中,时钟的处理也是采用中断的方式,内核软件的定时也是最终要依赖于时钟,时钟要依赖于中断,所以中断是首先要学习的。中断服务程序的执行是不需要存在于进程上下文的,所以这也要求中断是越短越好,也就是说我们不希望打扰原来的程序很长时间, 要尽快返回刚才的中断位置继续执行原来的程序。中断源分类是很多的:1 可屏原创 2012-11-11 21:45:20 · 759 阅读 · 0 评论 -
自动变量的潜在问题
关于C语言自动变量的一个基本规则是:声明自动变量的函数已经返回后,不能再引用这些自动变量。 下面就此问题进行测试。 测试环境: 编译器:GCC 4.2.4 OS:Ubuntu 8.04 LTS 首先编写一个简单的C程序,暂且命名为test_auto_val.c。 [cpp] view plaincopyprint?#inc转载 2013-03-03 16:53:14 · 630 阅读 · 0 评论 -
setjmp和longjmp 再议
setjmp和longjmp是C语言独有的,只有将它们结合起来使用,才能达到程序控制流有效转移的目的,按照程序员的预先设计的意图,去实现对程序中可能出现的异常进行集中处理。先来看一下这两个函数的定义吧:setjmp和longjmp的函数原型在setjmp.h中函数原型:int setjmp(jmp_buf envbuf);setjmp函数用缓冲区envbuf保存系统堆栈的内容,转载 2013-03-03 15:58:17 · 369 阅读 · 0 评论 -
进程及其进程环境
6.1.1 基本概念程序是保存在磁盘上的可执行代码和数据的映像. 进程是正在运行的程序. 一个程序可以同时有多个进程实例, 它们互相没有关系.6.1.2 main 函数main 函数 C/C++ 程序的入口函数, 但并不是进程真正开始执行的地方. main 函数的参数包括命令行参数个数以及参数数组.====================================转载 2013-03-03 15:11:38 · 1270 阅读 · 0 评论