CN105740007B - 一种pci-e设备的插件装载方法及装置 - Google Patents

一种pci-e设备的插件装载方法及装置 Download PDF

Info

Publication number
CN105740007B
CN105740007B CN201610037596.1A CN201610037596A CN105740007B CN 105740007 B CN105740007 B CN 105740007B CN 201610037596 A CN201610037596 A CN 201610037596A CN 105740007 B CN105740007 B CN 105740007B
Authority
CN
China
Prior art keywords
plug
user
pci
code
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610037596.1A
Other languages
English (en)
Other versions
CN105740007A (zh
Inventor
周立
邹昕
李晓倩
张家琦
汪锐
周志雄
刘谦
邹学强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING HENGGUANG INFORMATION TECHNOLOGY Co Ltd
National Computer Network and Information Security Management Center
Original Assignee
BEIJING HENGGUANG INFORMATION TECHNOLOGY Co Ltd
National Computer Network and Information Security Management Center
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING HENGGUANG INFORMATION TECHNOLOGY Co Ltd, National Computer Network and Information Security Management Center filed Critical BEIJING HENGGUANG INFORMATION TECHNOLOGY Co Ltd
Priority to CN201610037596.1A priority Critical patent/CN105740007B/zh
Publication of CN105740007A publication Critical patent/CN105740007A/zh
Application granted granted Critical
Publication of CN105740007B publication Critical patent/CN105740007B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种PCI‑E设备的插件装载方法及装置,涉及PCI‑E总线接口技术领域。方法包括:获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中;读取所述PCI BAR共享内存中的用户插件代码,并根据所述用户插件代码编译生成PCI‑E文件系统中的共享库文件;通过PCI‑E设备中的动态链接库动态加载所述共享库文件,并运行所述用户插件。本发明能够使得PCI‑E设备能够加载用户自定义的用户插件代码,避免了目前用户自己定义和编写的用户插件程序无法装载到PCI‑E设备上进行,PCI‑E设备功能较为单一的问题。

Description

一种PCI-E设备的插件装载方法及装置
技术领域
本发明涉及PCI-E总线接口技术领域,尤其涉及一种PCI-E设备的插件装载方法及装置。
背景技术
当前,新一代的总线接口(PCI-Express,简称PCI-E)采用了目前流行的点对点串行连接,比起PCI总线以及更早期的计算机总线的共享并行架构,每个设备都有自己的专用连接,不需要向整个总线请求带宽,而且可以把数据传输率提高到一个很高的频率,达到PCI所不能提供的高带宽。PCI-Express v3.0版本的协议规范中,单通道的PCI-E总线即可达到8Gbp/s的理论带宽,16通道的PCI-E总线可高达128Gbps的理论带宽。此外,PCI-E还具有主机访问方便的特点。以PCI-E总线和主机(通用CPU设备、服务器、个人计算机等)相连接的计算机外设,通常称为PCI-E设备,PCI-E设备作为主机的一种重要外设,各种操作系统对PCI-E设备的支持非常成熟。
由于PCI-E具有以上众多优点,当前可以通过PCI-E设备的形式来解决各种图像处理、并行计算、网络应用加速等应用需求。当前,在PCI-E设备上运行的程序一般均为预先设置的固定程序。而目前用户自己定义和编写的用户插件程序无法装载到PCI-E设备上进行,致使当前的PCI-E设备的功能单一。
发明内容
本发明的实施例提供一种PCI-E设备的插件装载方法及装置,以解决目前用户自己定义和编写的用户插件程序无法装载到PCI-E设备上进行,致使当前的PCI-E设备的功能单一的问题。
为达到上述目的,本发明采用如下技术方案:
一种PCI-E设备的插件装载方法,包括:
获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中;
读取所述PCI BAR共享内存中的用户插件代码,并根据所述用户插件代码编译生成PCI-E文件系统中的共享库文件;
通过PCI-E设备中的动态链接库动态加载所述共享库文件;
根据所需调用的函数名称,在所述动态链接库中获取所需调用的函数的指针;
通过所述所需调用的函数的指针,调用所需调用的函数,通过所述所需调用的函数装载并运行所述用户插件。
进一步的,在获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中之前,包括:
初始化PCI-E设备,设置预设状态标志位为插件未写入完成状态;
在获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中之后,包括:
设置所述预设状态标志位为插件写入完成状态。
具体的,所述获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中,包括:
获取主机设备中描述用户插件具体功能的用户插件代码,并将所述用户插件代码及所述用户插件代码的长度数据写入到PCI BAR共享内存中的一预设大小的区域中。
具体的,读取所述PCI BAR共享内存中的用户插件代码,并根据所述用户插件代码编译生成PCI-E文件系统中的共享库文件,包括:
监测所述预设状态标志位;
在监测到所述预设状态标志位为插件写入完成状态时,读取所述PCI BAR共享内存中的用户插件代码;
生成所述用户插件代码在PCI-E文件系统中的保存路径和文件名,并根据所述用户插件代码编译生成所述共享库文件。
具体的,通过PCI-E设备中的动态链接库动态加载所述共享库文件,包括:
将用户插件代码在PCI-E文件系统中的保存路径和文件名发送到所述动态链接库,以将根据所述用户插件代码编译生成的共享库文件动态加载到PCI-E设备的内存空间中。
进一步的、该PCI-E设备的插件装载方法,还包括:
将所述用户插件运行的结果信息数据发送给所述主机设备;所述结果信息包括运行状况信息和错误警告信息。
一种PCI-E设备的插件装载装置,包括:
用户插件代码存储单元,用于获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中;
用户插件代码读取单元,用于读取所述PCI BAR共享内存中的用户插件代码,并根据所述用户插件代码编译生成PCI-E文件系统中的共享库文件;
用户插件运行单元,用于通过PCI-E设备中的动态链接库动态加载所述共享库文件,根据所需调用的函数名称,在所述动态链接库中获取所需调用的函数的指针;通过所述所需调用的函数的指针,调用所需调用的函数,通过所述所需调用的函数装载并运行所述用户插件。
进一步的,该PCI-E设备的插件装载装置,还包括:
状态标志位设置单元,用于在获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中之前初始化PCI-E设备,设置预设状态标志位为插件未写入完成状态;
所述状态标志位设置单元,还用于在获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中之后,设置所述预设状态标志位为插件写入完成状态。
此外,所述用户插件代码存储单元,具体用于:
获取主机设备中描述用户插件具体功能的用户插件代码,并将所述用户插件代码及所述用户插件代码的长度数据写入到PCI BAR共享内存中的一预设大小的区域中。
此外,所述用户插件代码读取单元,包括:
监测模块,用于监测所述预设状态标志位;
读取模块,用于在监测到所述预设状态标志位为插件写入完成状态时,读取所述PCI BAR共享内存中的用户插件代码;
生成模块,用于生成所述用户插件代码在PCI-E文件系统中的保存路径和文件名,并根据所述用户插件代码编译生成所述共享库文件。
此外,所述用户插件运行单元,包括:
加载模块,用于将用户插件代码在PCI-E文件系统中的保存路径和文件名发送到所述动态链接库,以将根据所述用户插件代码编译生成的共享库文件动态加载到PCI-E设备的内存空间中。
进一步的,该PCI-E设备的插件装载装置,还包括:
结果信息反馈单元,用于将所述用户插件运行的结果信息数据发送给所述主机设备;所述结果信息包括运行状况信息和错误警告信息。
本发明实施例提供的一种PCI-E设备的插件装载方法及装置,通过PCI BAR共享内存能够从主机设备中获取用户自定义的用户插件代码,从而根据用户插件代码编译生成PCI-E文件系统中的共享库文件,并通过PCI-E设备中的动态链接库动态加载所述共享库文件,运行该用户插件。可见,本发明避免了目前用户自己定义和编写的用户插件程序无法装载到PCI-E设备上进行,当前的PCI-E设备的功能单一的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种PCI-E设备的插件装载方法的流程图一;
图2为本发明实施例提供的一种PCI-E设备的插件装载方法的流程图二;
图3为本发明实施例提供的一种PCI-E设备的插件装载装置的结构示意图一;
图4为本发明实施例提供的一种PCI-E设备的插件装载装置的结构示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供一种PCI-E设备的插件装载方法,包括:
步骤101、获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中。
步骤102、读取PCI BAR共享内存中的用户插件代码,并根据用户插件代码编译生成PCI-E文件系统中的共享库文件。
步骤103、通过PCI-E设备中的动态链接库动态加载共享库文件;根据所需调用的函数名称,在所述动态链接库中获取所需调用的函数的指针;通过所述所需调用的函数的指针,调用所需调用的函数,通过所述所需调用的函数装载并运行所述用户插件。
本发明实施例提供的一种PCI-E设备的插件装载方法,通过PCI BAR共享内存能够从主机设备中获取用户自定义的用户插件代码,从而根据用户插件代码编译生成PCI-E文件系统中的共享库文件,并通过PCI-E设备中的动态链接库动态加载共享库文件,运行该用户插件。可见,本发明避免了目前用户自己定义和编写的用户插件程序无法装载到PCI-E设备上进行,当前的PCI-E设备的功能单一的问题。
为了使本领域的技术人员更好的了解本发明,下面列举一个更为详细的实施例,如图2所示,本发明实施例提供一种PCI-E设备的插件装载方法,包括:
步骤201、在主机设备上生成描述用户插件具体功能的用户插件代码。
值得说明的是,上述的用户插件代码是由用户根据自身的业务需求,使用多应用开放接口平台所提供的接口,自主定制开发形成的PCI-E设备程序代码片段。由于PCI-E设备上的资源有限,不能携带编译环境,因此用户插件代码必须通过主机设备(例如服务器)上的编译环境进行编译,形成可被PCI-E设备程序动态链接的共享库文件。
步骤202、将用户插件代码编译为共享库文件。
例如,用户插件代码为user_plugin.c(值得说明的是,用户插件可以包含多个文件,这里用一个文件表示,仅是一个示例)。通过主机设备出的编译工具,可以将用户插件代码编译为共享库文件user_plugin.so,其是与位置无关的可加载的动态库文件。
步骤203、初始化PCI-E设备,设置预设状态标志位为插件未写入完成状态。
此处,为了使主机设备和PCI-E设备同步到相同的时间点上,需要设置一预设状态标志位。在用户插件代码未完全写入到PCI BAR共享内存时,设置预设状态标志位为插件未写入完成状态;而当用户插件代码完全写入到PCI BAR共享内存时,设置预设状态标志位为插件写入完成状态。
步骤204、获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码及用户插件代码的长度数据写入到PCI BAR共享内存中的一预设大小的区域中。
其中,PCI BAR共享内存是指由基地址寄存器(Base Address Register,简称BAR)指定的共享内存,可以作为PCI-E设备与主机设备之间的通信渠道。具体的,在PCI BAR共享内存中可以划分一个预设大小的区域,例如该区域大小为32Mb,这样既不会占用过多的PCIBAR空间从而影响到其他的交互过程,同时对于绝大多数用户插件代码又有足够的空间,不会因大小限制过紧导致用户插件代码难以传输。此处,将用户插件代码写入到PCI BAR共享内存中的一预设大小的区域中可以通过标准C库提供的文件操作接口fread来完成。另外,还需要写入用户插件代码的长度数据,以避免PCI-E设备无法获取到所读取的用户插件代码的长度而无法停止。
步骤205、设置预设状态标志位为插件写入完成状态。
步骤206、监测预设状态标志位。
此处的监测预设状态标志位可以是由PCI-E设备循环监测该预设状态标志位的值,以等待其变为插件写入完成状态。
步骤207、在监测到预设状态标志位为插件写入完成状态时,读取PCI BAR共享内存中的用户插件代码。
步骤208、生成用户插件代码在PCI-E文件系统中的保存路径和文件名,并根据用户插件代码编译生成共享库文件。
通过标准C库的文件操作接口,可以将用户插件代码从PCI BAR共享内存中读取出来,并编译生成共享库文件。
步骤209、将用户插件代码在PCI-E文件系统中的保存路径和文件名发送到动态链接库,以将根据用户插件代码编译生成的共享库文件动态加载到PCI-E设备的内存空间中。
步骤210、根据所需调用的函数名称,在动态链接库中获取所需调用的函数的指针。
此处需要从共享库文件中找到所需调用的函数。因此,首先可以根据所需调用的函数名称,在动态链接库中获取所需调用的函数的指针。
步骤211、通过所需调用的函数的指针,调用所需调用的函数,通过所需调用的函数运行用户插件。
例如,在将根据用户插件代码编译生成的共享库文件加载到PCI-E设备的内存空间之后,可以装载PCI-E设备开放接口平台原有的固件firmware程序,和用户插件一起运行。用户开发插件时所使用的各种接口API都包含在该固件firmware中。firmware和上述的user_plugin.so插件一起运行,从而PCI-E设备进入到工作状态,开始工作。
步骤212、将用户插件运行的结果信息数据发送给主机设备。
该结果信息包括运行状况信息、错误警告信息。在主机设备中可以设置有调试模块,可以对用户插件程序进行调试。在用户插件运行后,其运行状况信息、错误警告信息可以反馈到调试模块,由该调试模块进行展现给用户,使得用户通过调试模块进行用户插件的跟踪和执行状态查看等。
本发明实施例提供的PCI-E设备的插件装载方法可以适用于Windows、Linux等多种操作系统。而PCI-E设备开发平台可以采用Tilera GX36处理器为处理核心,以网络分析类应用为加速目标,采用PCI-E v2.0 8xlane接口和四个千兆网络接口。
本发明实施例提供的一种PCI-E设备的插件装载方法,通过PCI BAR共享内存能够从主机设备中获取用户自定义的用户插件代码,从而根据用户插件代码编译生成PCI-E文件系统中的共享库文件,并通过PCI-E设备中的动态链接库动态加载共享库文件,运行该用户插件。可见,本发明避免了目前用户自己定义和编写的用户插件程序无法装载到PCI-E设备上进行,当前的PCI-E设备的功能单一的问题。
对应于上述图1和图2所示的方法实施例,如图3所示,本发明实施例提供一种PCI-E设备的插件装载装置,包括:
用户插件代码存储单元31,可以获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中。
用户插件代码读取单元32,可以读取PCI BAR共享内存中的用户插件代码,并根据用户插件代码编译生成PCI-E文件系统中的共享库文件。
用户插件运行单元33,可以通过PCI-E设备中的动态链接库动态加载共享库文件,并运行用户插件;根据所需调用的函数名称,在所述动态链接库中获取所需调用的函数的指针;通过所述所需调用的函数的指针,调用所需调用的函数,通过所述所需调用的函数装载并运行所述用户插件。
进一步的,如图4所示,该PCI-E设备的插件装载装置,还可以包括:
状态标志位设置单元34,可以在获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中之前初始化PCI-E设备,设置预设状态标志位为插件未写入完成状态。
该状态标志位设置单元34,还可以在获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中之后,设置预设状态标志位为插件写入完成状态。
此外,该用户插件代码存储单元31,具体可以获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码及用户插件代码的长度数据写入到PCI BAR共享内存中的一预设大小的区域中。
此外,如图4所示,该用户插件代码读取单元32,可以包括:
监测模块321,可以监测预设状态标志位。
读取模块322,可以在监测到预设状态标志位为插件写入完成状态时,读取PCIBAR共享内存中的用户插件代码。
生成模块323,可以生成用户插件代码在PCI-E文件系统中的保存路径和文件名,并根据用户插件代码编译生成共享库文件。
此外,如图4所示,该用户插件运行单元33,可以包括:
加载模块331,可以将用户插件代码在PCI-E文件系统中的保存路径和文件名发送到动态链接库,以将根据所述用户插件代码编译生成的共享库文件动态加载到PCI-E设备的内存空间中。
进一步的,如图4所示,该PCI-E设备的插件装载装置,还包括:
结果信息反馈单元35,可以将用户插件运行的结果信息数据发送给主机设备;其中,该结果信息包括运行状况信息和错误警告信息。
值得说明的是,本发明实施例提供的一种PCI-E设备的插件装载装置的具体实现方式可以参见图1和图2对应的方法实施例,此处不再赘述。
本发明实施例提供的一种PCI-E设备的插件装载装置,通过PCI BAR共享内存能够从主机设备中获取用户自定义的用户插件代码,从而根据用户插件代码编译生成PCI-E文件系统中的共享库文件,并通过PCI-E设备中的动态链接库动态加载共享库文件,运行该用户插件。可见,本发明避免了目前用户自己定义和编写的用户插件程序无法装载到PCI-E设备上进行,当前的PCI-E设备的功能单一的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种PCI-E设备的插件装载方法,其特征在于,包括:
获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中;
读取所述PCI BAR共享内存中的用户插件代码,并根据所述用户插件代码编译生成PCI-E文件系统中的共享库文件;
通过PCI-E设备中的动态链接库动态加载所述共享库文件;
根据所需调用的函数名称,在所述动态链接库中获取所需调用的函数的指针;
通过所述所需调用的函数的指针,调用所需调用的函数,通过所述所需调用的函数装载并运行所述用户插件。
2.根据权利要求1所述的PCI-E设备的插件装载方法,其特征在于,在获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中之前,包括:
初始化PCI-E设备,设置预设状态标志位为插件未写入完成状态;
在获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中之后,包括:
设置所述预设状态标志位为插件写入完成状态。
3.根据权利要求2所述的PCI-E设备的插件装载方法,其特征在于,所述获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中,包括:
获取主机设备中描述用户插件具体功能的用户插件代码,并将所述用户插件代码及所述用户插件代码的长度数据写入到PCI BAR共享内存中的一预设大小的区域中。
4.根据权利要求3所述的PCI-E设备的插件装载方法,其特征在于,读取所述PCI BAR共享内存中的用户插件代码,并根据所述用户插件代码编译生成PCI-E文件系统中的共享库文件,包括:
监测所述预设状态标志位;
在监测到所述预设状态标志位为插件写入完成状态时,读取所述PCI BAR共享内存中的用户插件代码;
生成所述用户插件代码在PCI-E文件系统中的保存路径和文件名,并根据所述用户插件代码编译生成所述共享库文件。
5.根据权利要求4所述的PCI-E设备的插件装载方法,其特征在于,通过PCI-E设备中的动态链接库动态加载所述共享库文件,包括:
将用户插件代码在PCI-E文件系统中的保存路径和文件名发送到所述动态链接库,以将根据所述用户插件代码编译生成的共享库文件动态加载到PCI-E设备的内存空间中。
6.根据权利要求5所述的PCI-E设备的插件装载方法,其特征在于,还包括:
将所述用户插件运行的结果信息数据发送给所述主机设备;所述结果信息包括运行状况信息和错误警告信息。
7.一种PCI-E设备的插件装载装置,其特征在于,包括:
用户插件代码存储单元,用于获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中;
用户插件代码读取单元,用于读取所述PCI BAR共享内存中的用户插件代码,并根据所述用户插件代码编译生成PCI-E文件系统中的共享库文件;
用户插件运行单元,用于通过PCI-E设备中的动态链接库动态加载所述共享库文件,根据所需调用的函数名称,在所述动态链接库中获取所需调用的函数的指针;通过所述所需调用的函数的指针,调用所需调用的函数,通过所述所需调用的函数装载并运行所述用户插件。
8.根据权利要求7所述的PCI-E设备的插件装载装置,其特征在于,还包括:
状态标志位设置单元,用于在获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中之前初始化PCI-E设备,设置预设状态标志位为插件未写入完成状态;
所述状态标志位设置单元,还用于在获取主机设备中描述用户插件具体功能的用户插件代码,并将用户插件代码存储到PCI BAR共享内存中之后,设置所述预设状态标志位为插件写入完成状态。
9.根据权利要求8所述的PCI-E设备的插件装载装置,其特征在于,所述用户插件代码存储单元,具体用于:
获取主机设备中描述用户插件具体功能的用户插件代码,并将所述用户插件代码及所述用户插件代码的长度数据写入到PCI BAR共享内存中的一预设大小的区域中。
10.根据权利要求9所述的PCI-E设备的插件装载装置,其特征在于,所述用户插件代码读取单元,包括:
监测模块,用于监测所述预设状态标志位;
读取模块,用于在监测到所述预设状态标志位为插件写入完成状态时,读取所述PCIBAR共享内存中的用户插件代码;
生成模块,用于生成所述用户插件代码在PCI-E文件系统中的保存路径和文件名,并根据所述用户插件代码编译生成所述共享库文件。
11.根据权利要求10所述的PCI-E设备的插件装载装置,其特征在于,所述用户插件运行单元,包括:
加载模块,用于将用户插件代码在PCI-E文件系统中的保存路径和文件名发送到所述动态链接库,以将根据所述用户插件代码编译生成的共享库文件动态加载到PCI-E设备的内存空间中。
12.根据权利要求11所述的PCI-E设备的插件装载装置,其特征在于,还包括:
结果信息反馈单元,用于将所述用户插件运行的结果信息数据发送给所述主机设备;所述结果信息包括运行状况信息和错误警告信息。
CN201610037596.1A 2016-01-20 2016-01-20 一种pci-e设备的插件装载方法及装置 Active CN105740007B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610037596.1A CN105740007B (zh) 2016-01-20 2016-01-20 一种pci-e设备的插件装载方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610037596.1A CN105740007B (zh) 2016-01-20 2016-01-20 一种pci-e设备的插件装载方法及装置

Publications (2)

Publication Number Publication Date
CN105740007A CN105740007A (zh) 2016-07-06
CN105740007B true CN105740007B (zh) 2019-03-19

Family

ID=56246285

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610037596.1A Active CN105740007B (zh) 2016-01-20 2016-01-20 一种pci-e设备的插件装载方法及装置

Country Status (1)

Country Link
CN (1) CN105740007B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113157335B (zh) * 2021-03-31 2023-06-06 北京临近空间飞行器系统工程研究所 一种可扩展插件化体系架构的软件系统设计方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156827A (zh) * 2011-01-14 2011-08-17 无锡市同威科技有限公司 基于fpga的远程漏洞高速扫描主机及扫描方法
CN103914368A (zh) * 2012-12-31 2014-07-09 百度国际科技(深圳)有限公司 一种安全软件性能的测试方法、系统及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7526799B2 (en) * 2004-06-30 2009-04-28 International Business Machines Corporation Method for tracking security attributes along invocation chain using secure propagation token

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156827A (zh) * 2011-01-14 2011-08-17 无锡市同威科技有限公司 基于fpga的远程漏洞高速扫描主机及扫描方法
CN103914368A (zh) * 2012-12-31 2014-07-09 百度国际科技(深圳)有限公司 一种安全软件性能的测试方法、系统及装置

Also Published As

Publication number Publication date
CN105740007A (zh) 2016-07-06

Similar Documents

Publication Publication Date Title
US11055082B2 (en) Unified update tool for multi-protocol network adapter
CN106557340B (zh) 一种配置方法及装置
US7992132B2 (en) Server side application integration framework
CN108830720A (zh) 智能合约运行方法、装置、系统和计算机可读存储介质
CN111865708B (zh) 物联网系统的性能测试方法、平台、设备及存储介质
CN104965757A (zh) 虚拟机热迁移的方法、虚拟机迁移管理装置及系统
CN104486234A (zh) 一种将业务交换机卸载到物理网卡的方法及服务器
CN109656646B (zh) 一种远程桌面控制方法、装置、设备及虚拟化芯片
CN103440111B (zh) 虚拟机磁盘空间的扩展方法、宿主机和平台
CN102955698A (zh) 基于多终端的软件开发的处理方法和装置
WO2018236691A1 (en) SYSTEMS AND METHODS FOR PERFORMING SOFTWARE APPLICATIONS ON DISTRIBUTED APPLICATION DEVELOPMENT ENVIRONMENTS
US9710575B2 (en) Hybrid platform-dependent simulation interface
CN108052449B (zh) 操作系统运行状态检测方法和装置
CN113127361A (zh) 应用程序的开发方法、装置、电子设备和存储介质
KR20180061589A (ko) 소프트웨어 빌드 시스템 및 이를 이용한 소프트웨어 빌드 방법
CN107844410A (zh) 一种分布式集群系统的调试方法和装置
CN111078353A (zh) 存储设备的操作方法及物理服务器
CN109656675A (zh) 总线设备、计算机设备及实现物理主机云存储的方法
CN105677560B (zh) 一种测试方法、装置及系统
CN105740007B (zh) 一种pci-e设备的插件装载方法及装置
CN102567071A (zh) 一种虚拟串口系统及其通信方法
CN108694052A (zh) 一种固件升级方法、固件升级装置及固件升级系统
WO2014000299A1 (zh) 串口重定向处理方法、设备和系统
CN104850015B (zh) 一种软件封装方法及一种汽车电子控制器
CN102411312A (zh) 敏感器模拟器及具有该敏感器模拟器的卫星闭环仿真系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant