container_of()宏的简要解析[转载!!!]

作者: 和c/c++相关 2010/11/16 简介:这是container_of()宏的简要解析的详细页面,介绍了和c/c++,有关的知识、技巧、经验,和一些c/c++源码等。 在学习linux驱动的过程中,遇到一个宏叫做container_of。 该宏定义在include/linux/kernel.h中,首先来贴出它的代码: 1. 439/** 2. 440 * container_of - cast a member of a structure out to the containing structure 3. 44...

作者: lxp-linux 发布时间: 01-06

编译内核模块 .ko文件的注意事项 缺少:mmzone.h..

前两天新到手一个6410的板子,按照说明在上面跑了一下android和QT,都成了。今天想试试helloworld模块的装载发现了一些需要注意的问题。 出现的问题:编译的时候提示缺少头文件 mmzone.h ....bounds.h...等 include/linux/mmzone.h:18:26: error: linux/bounds.h: No such file or directory include/linux/mmzone.h:197:5: warning: "MAX_NR_ZONES" is not defined 原因:b...

作者: pauleric 发布时间: 01-06

Ubuntu网卡驱动

编译&安装 需求 1、目标机的linux内核版本,该实例的内核版本是:2.6.28-11-server 2、在开发机安装与目标机一致的linux内核版本,如果内核版本一致可不比编译内核,直接安装所需的内核头文件,如下命令: $>sudo apt-get install linux-headers-2.6.28-11-server 3、在开发机上安装编译环境 $>sudo apt-get install build-essential 4、最新的网卡驱动程序,该实例使用Real...

作者: reesun 发布时间: 01-06

crontab 详解

crontab 详解 文章分类:操作系统 cron 是一个可以用来根据时间、日期、月份、星期的组合来调度对重复任务的执行的守护进程。 cron 假定系统持续运行。如果当某任务被调度时系统不在运行,该任务就不会被执行。 要使用 cron 服务,你必须安装了 vixie-cron RPM 软件包,而且必须在运行 crond 服务。要判定该软件包是否已安装,使用 rpm -q vixie-cron 命令。要判定该服务是否...

作者: 极北之北 发布时间: 01-06

arm汇编语言调用C函数之参数传递

arm汇编语言调用C函数之参数传递 于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure Call Standard),ATPCS主要是定义了函数呼叫时参数的传递规则以及如何从函数返回,关于ATPCS的详细内容可以查看ADS1.2 Online Books ——Developer Guide的2.1节。这篇文档要讲的是 汇编代码中对C函数调用时如何进行参数的传递以及如何从C函...

作者: ljjmissu 发布时间: 01-05

miniGui 移植遇到的一个问题configure: error: C..

今天下午按照既定配置交叉编译miniGui 的时候遇到了一个问题: error: C compiler cannot create executables [root]@libminigui-1.6.10#./buildlib-uclinux-44b0x.sh checking build system type... i386-pc-linux-gnu checking host system type... arm-elf-linux-gnu checking target system type... arm-elf-linux-gnu checking for arm-elf-linux-gcc... arm-elf-gcc c...

作者: swet123 发布时间: 01-05

Netfilter源码分析--7、内核空间与用户空间的数据交互

七、内核空间与用户空间的数据交互 内核空间与用户空间的数据交互通过getsockopt和setsockopt来完成,这个两个函数用来控制相关socket文件描述符的的选项值,先来看这两个函数的原型: set/getsockopt(2)函数的基本使用格式为: int setsockopt(int sockfd, int proto, int cmd, void *data, int datalen) int getsockopt(int sockfd, int proto, int cmd, void *data, int d...

作者: jazy333 发布时间: 01-05

nginx配合puppet实现大负载下的负载均衡

当client数量越来越多的情况下,但puppetmaster是无法满足需求的,会导致较高的失败率,类似如time out之类的,这时候就可以做成master群集。步骤如下: 1、相信到了这一步,基本的puppetmaster之类的包肯定都安装完毕了,做成集群还需要一个特殊的包:rubygem-mongrel,安装yum install rubygem-mongrel 2、编辑/etc/sysconfig/puppetmaster,添加下面2行 PUPPETMASTER_POR...

作者: serwei 发布时间: 01-05

Netfilter源码分析--6、NAT

六、NAT 6.1、简介 网络地址转换源(NAT)分为(Source NAT,SNAT)和目的NAT(Destination NAT, DNAT)2种不同的类型。SNAT是指修改数据包的源地址(改变连接的源IP)。SNAT会在数据包送出之前的最后一刻做好转工作。地址伪装 (Masquerading)是SNAT的一种特殊形式。DNAT 是指修改数据包的目标地址(改变连接的目的IP)。DNAT 总是在数据包进入以后立即转发,端口转发,负载平衡和透明...

作者: jazy333 发布时间: 01-05

解决: 动态 MMap 没有空间了。请增大 APT::Cache..

装完ubuntu 10.04后就无法更新了,出现如下问题E: 动态 MMap 没有空间了。请增大 APT::Cache-Limit 的大小。当前值:25165824。(man 5 apt.conf)E: 处理 linux-headers-2.6.24-25 (NewVersion1)时出错E: Problem with MergeList /var/lib/apt/lists/debian.ustc.edu.cn_ubuntu_dists_hardy-updates_main_binary-i386_PackagesE: 无法解析或打开软件包列表或状态文件。E: _ca...

作者: lin_13824307069 发布时间: 01-05