[发明专利]一种支持多设备的密码卡驱动实现方法和系统在审
| 申请号: | 202210105557.6 | 申请日: | 2022-01-28 |
| 公开(公告)号: | CN114546500A | 公开(公告)日: | 2022-05-27 |
| 发明(设计)人: | 雷宗华;彭金辉;李鑫;刘武忠;王凯霖 | 申请(专利权)人: | 郑州信大捷安信息技术股份有限公司 |
| 主分类号: | G06F9/4401 | 分类号: | G06F9/4401 |
| 代理公司: | 郑州德勤知识产权代理有限公司 41128 | 代理人: | 张微微 |
| 地址: | 450000 河南省*** | 国省代码: | 河南;41 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 支持 设备 密码 驱动 实现 方法 系统 | ||
1.一种支持多设备的密码卡驱动实现方法,其特征在于,所述方法包括:
在Linux系统驱动的module_init模块中创建字符设备和设备节点,然后使用pci_register_driver在系统中注册pci-e设备驱动,并由pci-e设备驱动在系统中注册pci设备结构体pci_dev;
由所述pci-e设备驱动的探测函数probe对至少一个pci-e密码卡进行逐一初始化,为每个pci-e密码卡申请一个对应的设备资源结构体;
针对每个pci-e密码卡分别获取I/O资源和DMA资源,并保存在对应的设备资源结构体中;
使用函数list_add把各个设备资源结构体链接到预设的全局链表struct list_headaccel_table中;
设置各个设备资源结构体为pci设备结构体pci_dev的私有数据。
2.根据权利要求1所述的一种支持多设备的密码卡驱动实现方法,其特征在于,所述设备资源结构体包括struct list_head list以及pci-e密码卡的属性、名称、编号、占用内存信息。
3.根据权利要求2所述的一种支持多设备的密码卡驱动实现方法,其特征在于,在设置各个设备资源结构体为pci设备结构体pci_dev的私有数据之后,所述方法还包括:
在pci-e设备驱动的移除函数remove中,通过pci设备结构体pci_dev的私有数据获取目标设备资源结构体;
使用函数list_for_each_entry_safe查找目标设备资源结构体在全局链表structlist_head accel_table中的位置;
基于找到的位置,使用函数list_del在全局链表struct list_head accel_table中删除所述目标设备资源结构体。
4.根据权利要求2所述的一种支持多设备的密码卡驱动实现方法,其特征在于,在设置各个设备资源结构体为pci设备结构体pci_dev的私有数据之后,所述方法还包括:
调用字符设备的open函数,打开字符设备文件,获取字符设备文件的句柄fd;
使用句柄fd调用字符设备的ioctl函数,传入pci-e密码卡的属性、名称、编号中的任意一个需求信息;
使用函数list_for_each_entry_safe遍历全局链表struct list_head accel_table中的设备资源结构体,从中取出与传入的需求信息相匹配的设备资源结构体并保存到字符设备文件的私有数据中。
5.根据权利要求4所述的一种支持多设备的密码卡驱动实现方法,其特征在于,从中取出与传入的需求信息相匹配的设备资源结构体并保存到字符设备文件的私有数据之后,所述方法还包括:
通过字符设备文件的句柄fd调用字符设备的ioctl、write、read函数;
由Linux系统驱动在字符设备文件的私有数据中取出对应pci-e密码卡的设备资源结构体;
通过所述设备资源结构体实现对pci-e密码卡的读写访问。
6.根据权利要求1所述的一种支持多设备的密码卡驱动实现方法,其特征在于,所述pci-e密码卡支持国密加解密算法和签名算法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于郑州信大捷安信息技术股份有限公司,未经郑州信大捷安信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210105557.6/1.html,转载请声明来源钻瓜专利网。





