linux iminor imajor dev_t
来源:互联网 发布:淘宝店模板免费下载 编辑:程序博客网 时间:2024/05/24 23:13
linux内核中提供下面两个内建函数用来通过inode节点返回设备的主次设备号:
static inline unsigned iminor(const struct inode *inode)
{
return MINOR(inode->i_rdev);
}
static inline unsigned imajor(const struct inode *inode)
{
return MAJOR(inode->i_rdev);
}
另外需要注意的是:
<linux/kdev_t.h>文件提供了处理设备号相关的宏:
MKDEV(major, minor) // 设备的dev_t
MAJOR(dev_t) // 主设备号
MINOR(dev_t) // 次设备号
需要注意的是这三个宏在在内核和用户态有不同的解释,下面截取kdev_t.h的相关片段:
#ifndef _LINUX_KDEV_T_H
#define _LINUX_KDEV_T_H
#ifdef __KERNEL__
#define MINORBITS 20
#define MINORMASK ((1U << MINORBITS) - 1)
#define MAJOR(dev) ((unsigned int) ((dev) >> MINORBITS))
#define MINOR(dev) ((unsigned int) ((dev) & MINORMASK))
#define MKDEV(ma,mi) (((ma) << MINORBITS) | (mi))
//...........................................
#else /* __KERNEL__ */
/*
Some programs want their definitions of MAJOR and MINOR and MKDEV
from the kernel sources. These must be the externally visible ones.
*/
#define MAJOR(dev) ((dev)>>8)
#define MINOR(dev) ((dev) & 0xff)
#define MKDEV(ma,mi) ((ma)<<8 | (mi))
#endif /* __KERNEL__ */
#endif
可以看到如果定义了__KERNEL__宏,主次设备号占据的位数不同。
- linux iminor imajor dev_t
- dev_t
- dev_t、mode_t
- dev_t类型
- device number(dev_t)
- device number(dev_t)
- struct block_device *bdget(dev_t dev)
- conflicting types for 'dev_t'的原因
- file-fops-inode-dev_t之间一些关系
- int cdev_add(struct cdev *p, dev_t dev, unsigned count)
- int kobj_map(struct kobj_map *domain, dev_t dev, unsigned long range, struct module *module, k
- struct device *device_create(struct class *class, struct device *parent, dev_t devt, void *drvdata,
- linux
- linux
- Linux
- Linux
- LINUX!
- Linux
- 关闭 php X-Powered-By 信息
- 配置nginx好了,html能打开,index.php打不开?
- 启动mysql错误ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
- ZIP打包解包
- QT5.5.0版本添加icon图标步骤
- linux iminor imajor dev_t
- 归并排序
- linux centos6.5 ftp网页vsftpd配置
- Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表
- macbook使用“终端”远程登录linux主机
- KEIL MDK STM32如何建立工程
- stm32 加入 USE_STDPERIPH_DRIVER、STM32F10X_HD的原因
- IOS Dev Intro - Blocks Programming Series 02
- java体系结构介绍-----项目编译到启动服务