Chinaunix首页 | 论坛 | 博客
  • 博客访问: 320504
  • 博文数量: 41
  • 博客积分: 857
  • 博客等级: 准尉
  • 技术积分: 614
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-11 12:42
文章分类

全部博文(41)

文章存档

2016年(1)

2015年(2)

2012年(6)

2011年(32)

分类: LINUX

2011-10-13 09:29:21

下面是我学习过程中遇到的对于我来说是新知识点的地方或比较新颖的知识,故作以笔记记之以便巩固学习.
 
 
1. 学习设备的主次设备号时,从源代码中了解到如下内容:
因为主设备号为31~20位,次设备号为0~19位.
 
/*include/linux/kdev_t.h*/
 
#define MINORBITS  20
#define MINORMASK  ((1U<
 
#define MAJOR(dev) (unsigned int) ((dev)>>MINORBITS)
#define MINOR(dev) (unsigned int) ((dev)&MINORMASK)
#define MKDEV(ma,mi) (((ma)<
 
我要说的是
#define MINORMASK  ((1U<
此句的意思是屏蔽高12位为0,低20位为1,然而我是第一次见这种写法.
 
0xffffffff >> 12 = 0x000fffff;
 
0x01<<20 - 1 = 0x00100000 - 1 = 0x000fffff;
阅读(1000) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~