安排主编号

本文介绍了一种在Linux设备驱动程序中高效分配主设备编号的方法。该方法允许开发者选择使用动态分配或预先设定的主编号,并提供了如何通过编译时宏定义、insmod命令行参数或加载脚本等方式设置主编号的具体示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安排主编号最好的方式, 我们认为, 是缺省使用动态分配, 而留给自己在加载时指定主编号的选项权, 或者甚至在编译时. scull 实现以这种方式工作; 它使用一个全局变量, scull_major, 来持有选定的编号(还有一个 scull_minor 给次编号). 这个变量初始化为 SCULL_MAJOR, 定义在 scull.h. 发布的源码中的 SCULL_MAJOR 的缺省值是 0, 意思是"使用动态分配". 用户可以接受缺省值或者选择一个特殊主编号, 或者在编译前修改宏定义或者在 insmod 命令行指定一个值给 scull_major. 最后, 通过使用 scull_load 脚本, 用户可以在 scull_load 的命令行传递参数给 insmod.

这是我们用在 scull 的源码中获取主编号的代码:

if (scull_major) {  dev = MKDEV(scull_major, scull_minor);  result = register_chrdev_region(dev, scull_nr_devs, "scull"); } else {  result = alloc_chrdev_region(&dev, scull_minor, scull_nr_devs, "scull");  scull_major = MAJOR(dev); } if (result < 0) {  printk(KERN_WARNING "scull: can't get major %d\n", scull_major);  return result; } 

本书使用的几乎所有例子驱动使用类似的代码来分配它们的主编号.

转载于:https://www.cnblogs.com/elect-fans/archive/2011/12/06/2408746.html

关系模式规范化是将一个大的关系模式拆分成多个小的关系模式,达到消除冗余和提高数据完整性的目的。 具体步骤如下: 第一步:将关系模式转化为关系模式图。 第二步:通过函数依赖性、属性、属性集、码等方法,对模式进行评估,提取出所有的函数依赖关系。 第三步:通过消除冗余和提高数据完整性的目的,将规范化满足第一、二范式要求的小的关系模式逐步分解。 第四步:通过消除数据冗余,提高数据完整性的目的,将规范化满足第三范式的小的关系模式进一步分解。 对于给定的关系模式: 放映厅(放映厅编号,座位数,类别,影院编号) 座位(座位号,放映厅编号) 员工(员工编号,员工姓名,性别,工资,影院编号) 工作(放映厅编号,员工编号,工作时间) 电影票(电影票编号,电影编号,电影名称,座位号,放映时间,放映厅编号) 放映(放映厅编号,电影编号,放映时间) 放映安排(电影票编号,放映时间,放映厅编号,身份证号,座位号) 评价(身份证号,电影编号,分值) 购买(身份证号,电影票编号,电影编号,订单编号) 第一步:将关系模式转化为关系模式图,如下图所示: ![image.png](attachment:image.png) 第二步:通过函数依赖性、属性、属性集、码等方法,对模式进行评估,提取出所有的函数依赖关系。 放映厅编号 -> 座位数,类别,影院编号 座位号,放映厅编号 -> NULL 员工编号 -> 员工姓名,性别,工资,影院编号 放映厅编号,员工编号,工作时间 -> NULL 电影票编号 -> 电影编号,电影名称,座位号,放映时间,放映厅编号 放映厅编号,电影编号,放映时间 -> NULL 电影票编号 -> 电影编号,电影名称,座位号,放映时间,放映厅编号 放映厅编号,电影编号,放映时间 -> NULL 身份证号,放映厅编号,座位号,放映时间 -> 电影票编号 身份证号,电影编号 -> 分值 身份证号,电影票编号,电影编号 -> 订单编号 第三步:通过消除冗余和提高数据完整性的目的,将规范化满足第一、二范式要求的小的关系模式逐步分解。 经过评估,我们发现关系模式已经满足第一、二范式,不需要进一步分解。 第四步:通过消除数据冗余,提高数据完整性的目的,将规范化满足第三范式的小的关系模式进一步分解。 经过评估,我们发现关系模式已经满足第三范式,不需要进一步分解。 最终规范化后的关系模式如下: 放映厅(放映厅编号,座位数,类别,影院编号) 座位(座位号,放映厅编号) 员工(员工编号,员工姓名,性别,工资,影院编号) 工作(放映厅编号,员工编号,工作时间) 电影票(电影票编号,电影编号,座位号,放映时间,放映编号) 放映(放映编号,放映厅编号,电影编号,放映时间) 顾客(身份证号,顾客姓名,性别) 评价(身份证号,电影编号,分值) 订单(订单编号,身份证号,电影票编号,电影编号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值