自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Makefile中$@,$^,$<

$@——目标文件;$^——所有依赖文件;$&lt;——第一个依赖文件。例如:下面是一个Makefile:main:main.o mytool1.o mytool2.o gcc -o main main.o mytool1.o mytool2.o main.o:main.c mytool1.h mytool2.h gcc -c main.c mytool1.o:mytool1.c m...

2018-05-17 17:07:41 2636

原创 makefile

1、语法:$(if   condition, then,else then)例子:LOCAL_DIR :=SUBDIR := $(if $(LOCAL_DIR) , $(LOCAL_DIR), /home/temp)$(info $(LOCAL_DIR))$(info $(SUBDIR))解释:如果LOCAL_DIR不为空,则将LOCAL_DIR赋值给SUBDIR,如果为空则将/home/temp...

2018-05-16 18:14:28 196

原创 linux kernel 3.18.0 Makefile注释

VERSION = 3                     #kernel 主版本号PATCHLEVEL = 18             #kernel 次版本号SUBLEVEL = 0                    #kernel 修改版本号EXTRAVERSION =              #自定义NAME = Diseased Newt    #代号# *DOCUMENTA...

2018-05-14 16:05:02 1530

原创 Makefile 中:= ?= += =的区别

在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VRE    VRE = “Hello World!”elseendififeq ($(OPT),define)    VRE ?= “Hello World! First!”endififeq ($(OPT),add)   ...

2018-05-14 16:02:57 136

原创 #, ##,...,__VA_ARGS__,##__VA_ARGS__

1、ANSI C允许在c字符串中包含宏参数,如下例子:#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#define POSI(x)  printf("the square of "#x     "is : %d\n", (x) * (x))int main(){        int y = 4;        POSI(4);        P...

2018-05-14 10:20:32 265

原创 汇编

    .fill     语法:.fill repeat, size, value    含义是反复拷贝 size个字节,重复 repeat 次,        其中 size 和 value 是可选的,默认值分别为 1 和 0.

2018-05-08 18:04:03 105

原创 Linux cpumask分析

首先我们来分析一下定义在cpumask.h中 结构体cpumask_t[cpp] view plain copy typedef struct cpumask { DECLARE_BITMAP(bits, NR_CPUS); } cpumask_t;#define DECLARE_BITMAP(name,bits) \ unsigned long name[BITS_TO_LONGS(bits)]...

2018-05-08 17:29:32 1291

原创 linux内核中的likely()和unlikely()宏的作用

在看linux内核代码的时候,经常会看到likely(x)和unlikely(x)宏的使用。那这两个宏有什么作用呢?这两个宏在内核中的定义如下:# define likely(x)  __builtin_expect(!!(x), 1)# define unlikely(x) __builtin_expect(!!(x), 0)可见这里使用了gcc的内建函数__builtin_expect()。_...

2018-05-08 12:44:18 145

原创 内核抢占与中断返回

1、上下文一般来说,CPU在任何时刻都处于以下三种情况之一:(1)运行于用户空间,执行用户进程;(2)运行于内核空间,处于进程上下文;(3)运行于内核空间,处于中断上下文。应用程序通过系统调用陷入内核,此时处于进程上下文。现代几乎所有的CPU体系结构都支持中断。当外部设备产生中断,向CPU发送一个异步信号,CPU调用相应的中断处理程序来处理该中断,此时CPU处于中断上下文。在进程上下文中,可以通过...

2018-05-08 12:15:46 402

转载 从cgroup_init_early函数学习cgroup——初始化代码

前面分析了cgroup机制的框架及数据结构之间的关系,现在看代码就比较见简单了。 代码部分 在init/main.c的start_kernel函数中会调用cgroup_init_early函数进行cgroup的初始化。其实对cgroup的初始化分两次,分别是cgroup_init_early和cgroup_init。这么做的原因是,系统初始阶段需要使用一些 subsystem,先对这一部分进行初始...

2018-05-08 11:17:04 1469

转载 从cgroup_init_early函数学习cgroup——框架

一些概念的理解cgroup cgourp是一种机制 作用:集成各个进程,对进程分组实现进程组,分配或限制进程组使用的资源(这部分主要有个各个subsystem完成)。 另一个角度,在研究代码的时候,我们更愿意将cgroup理解为一种控制资源的行为。比如:我想要控制进程的CPU使用率为20%,那么我可以创建一个cgroup,这cgroup的作用就是控制指定进程的cpu...

2018-05-08 10:19:57 588

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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