当前位置: 首页 > news >正文

福州火车站最新消息建设银行沈阳分行网站

福州火车站最新消息,建设银行沈阳分行网站,福田祥菱m,室内设计自学网站alloc_chrdev_region 原型如下,该函数向内核申请一个空闲的主设备号。 alloc_chrdev_region(&g_aputriger_dev, 0, APUTRIGER_MAX_NUM, "aputriger0"); 第四个参数是我们使用cat /proc/devices 看到的名称 /*** alloc_chrdev_region() - register a…

alloc_chrdev_region 原型如下,该函数向内核申请一个空闲的主设备号。

alloc_chrdev_region(&g_aputriger_dev, 0, APUTRIGER_MAX_NUM, "aputriger0");

第四个参数是我们使用cat /proc/devices 看到的名称

/*** alloc_chrdev_region() - register a range of char device numbers* @dev: output parameter for first assigned number* @baseminor: first of the requested range of minor numbers* @count: the number of minor numbers required* @name: the name of the associated device or driver** Allocates a range of char device numbers.  The major number will be* chosen dynamically, and returned (along with the first minor number)* in @dev.  Returns zero or a negative error code.*/
int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count,const char *name)
{struct char_device_struct *cd;cd = __register_chrdev_region(0, baseminor, count, name);if (IS_ERR(cd))return PTR_ERR(cd);*dev = MKDEV(cd->major, cd->baseminor);return 0;
}

如果我们的设备不止一个,次设备号我们也希望是自动申请而不是人为指定的,那么可以使用ida_simple_get来申请,原型如下:

minor = ida_simple_get(&g_aputriger_dev, 0, APUTRIGER_MAX_NUM, GFP_KERNEL);

#define ida_simple_get(ida, start, end, gfp)	\ida_alloc_range(ida, start, (end) - 1, gfp)/*** ida_alloc_range() - Allocate an unused ID.* @ida: IDA handle.* @min: Lowest ID to allocate.* @max: Highest ID to allocate.* @gfp: Memory allocation flags.** Allocate an ID between @min and @max, inclusive.  The allocated ID will* not exceed %INT_MAX, even if @max is larger.** Context: Any context.* Return: The allocated ID, or %-ENOMEM if memory could not be allocated,* or %-ENOSPC if there are no free IDs.*/
int ida_alloc_range(struct ida *ida, unsigned int min, unsigned int max,gfp_t gfp)
{int id = 0;unsigned long flags;if ((int)min < 0)return -ENOSPC;if ((int)max < 0)max = INT_MAX;again:xa_lock_irqsave(&ida->ida_rt, flags);id = ida_get_new_above(ida, min);if (id > (int)max) {ida_remove(ida, id);id = -ENOSPC;}xa_unlock_irqrestore(&ida->ida_rt, flags);if (unlikely(id == -EAGAIN)) {if (!ida_pre_get(ida, gfp))return -ENOMEM;goto again;}return id;
}

创建设备示例:

	if (cdev_add(&cur_dev->cdev, MKDEV(g_aputriger_dev, minor), 1)) {pr_err("%s cdev add failed\n", cdev_name);goto err_class_destr;}/* devices create */cur_dev->dev = device_create(cur_dev->class, NULL, MKDEV(cur_dev->major, minor), NULL, cdev_name);

http://www.bjxfkj.com.cn/article/110496.html

相关文章:

  • 网站备案有哪些费用企业网站制作 西安
  • 商城型网站的概念免费生成图片的网站
  • 宁波网站制作建设wordpress英文变中文版
  • 兰州市城乡建设及网站网站建设合同交什么印花税
  • 广州网站建设首选快优如何做学校的网站
  • 昆山推广用什么网站比较好餐饮网站开发毕业设计模板
  • 承德公司网站建设高端网站制作网站建设
  • 成都成华网站建设成都网络营销策划
  • 企业网站建设遵循的原则开发游戏的软件有哪些
  • 做企业网站域名wordpress有趣代码
  • 网站建设域名注册wordpress文章分页插件
  • 网站平台建设工作汇报本地电脑做服务器建网站
  • 江苏搜索引擎优化太原网站制作优化seo公司
  • 网站制作技术支持如何将网站上传到空间
  • 香水网站设计网页推广文章的步骤
  • 宁波附近的seo推广购物网站seo关键词定位
  • 兰州做网站哪家好python基础教程电子版书籍
  • 京东网站建设流程向网站服务器上传网页文件下载
  • 东莞网络推广网站邢台网站建设邢台
  • 哈尔滨网站建设维护深圳有名的品牌设计公司
  • 部门网站建设注意事项室内效果图代做网站
  • 海淀网站建设枣庄白银网站建设公司
  • 餐饮手机微网站怎么做wordpress 国外在访问
  • 房地产开发建设网站开发微信小程序商城
  • 猪八戒做网站怎么赚钱Pk10网站建设多少钱
  • vps怎么添加网站网站模板下载
  • 贵州省建设厅官网网站心雨在线高端网站建设创新
  • 门户网站建设构架郑州电商网站建设
  • 网站建设电话销售技巧网页源代码提取文件
  • 蓝色的网站为什么选择做汉服网站