CN113127397A - 设备层级结构的处理方法、装置、电子设备及存储介质 - Google Patents
设备层级结构的处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113127397A CN113127397A CN201911402807.7A CN201911402807A CN113127397A CN 113127397 A CN113127397 A CN 113127397A CN 201911402807 A CN201911402807 A CN 201911402807A CN 113127397 A CN113127397 A CN 113127397A
- Authority
- CN
- China
- Prior art keywords
- pci
- pci bus
- bus
- bridges
- parameters corresponding
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0024—Peripheral component interconnect [PCI]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
Abstract
本公开提供的设备层级结构的处理方法、装置、电子设备及存储介质,通过获取当前扫描到的PCI总线上连接的各PCI设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;根据所述PCI总线所经过桥的数目,对需要打印的所述PCI总线的总线号、以及所述PCI总线上连接的各设备对应的设备参数进行换行位移操作,并进行打印操作;将所述PCI总线的下游PCI总线作为新的当前扫描到的PCI总线,并重复上述操作直至完成对全部PCI总线的打印操作,从而实现将PCI总线树的中各设备的信息按照其层级结构进行输出,提高了其信息输出的可视化的程度,便于技术人员查看和使用。
Description
技术领域
本公开涉及一种计算机技术,尤其涉及一种设备层级结构的处理方法、装置、电子设备及存储介质。
背景技术
在处理器系统中,存在HOST主桥以及与该主桥直接连接的PCI(PeripheralComponent Interconnect;外设部件互连标准)总线。一般的,基于不同处理器系统的需求,PCI总线的另一端还将连接有其他设备,如PCI设备、PCI桥片,PCI桥片还可以进一步连接其他设备,等等。
PCI总线树为反映PCI设备连接情况的树状结构,即通过该PCI总线树能够确定主桥下通过PCI总线连接的各个设备的具体连接情况。为了便于获知PCI总线树情况,一般会采用遍历的方式,将PCI总线树上的设备一一打印出来,具体可先采用深度优先算法遍历PCI总线树,再将扫描到的PCI桥片或者PCI设备对应的信息直接输出到界面上。
但是,现有输出在界面上的信息并不能体现PCI总线树中的层级结构,仅能简单罗列PCI总线树上包含的设备,不利于技术人员的查看和使用。
发明内容
针对上述技术问题,本公开提供了一种设备层级结构的处理方法、装置、电子设备及存储介质。
第一方面,本公开提供了一种PCI总线树的处理方法,包括:
当接收到PCI总线树显示请求时,获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;
根据所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作;
当所述PCI总线包含下游PCI总线时,将所述下游PCI总线作为新的当前扫描到的PCI总线,并返回获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目的步骤,直至完成对全部PCI总线的打印操作。
可选的实例中,获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目之前,还包括:
调用PCI设备信息处理函数;
其中,所述PCI设备信息处理函数中包括数组;所述数组记录有参数信息,所述参数信息包括当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;
根据所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作,包括:
判断获取的所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数与所述PCI设备信息处理函数中的数组中记录的参数信息是否均相同;
当任一参数信息不相同时,根据获取的所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数对所述数组进行更新,并基于所述数组采用树状图的形式进行打印操作。
可选的实例中,该方法还包括:
在确定获取的所述PCI总线所经过桥的数目,所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数与所述PCI设备信息处理函数中的数组中记录的参数信息均相同时,所述根据所述PCI总线所经过桥的数目,对需要打印的所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作,包括:
基于所述数组记录的参数信息,采用树状图的形式进行打印操作。
可选的实例中,所述调用PCI设备信息处理函数,还包括:
确定当前扫描到的PCI总线的总线号是否为零,并在确定所述PCI总线的总线号为零时,将所述PCI设备信息处理函数包含的数组中记录所述PCI总线所经过桥的数目设置为0;
执行所述判断获取的所述PCI总线所经过桥的数目,所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数与所述PCI设备信息处理函数中的数组中记录的参数信息是否均相同的步骤。
可选的实例中,该方法还包括:获取所述PCI总线的下游PCI总线的总线号;
判断所述下游PCI总线所经过桥的数目是否为零;并
在确定所述下游PCI总线所经过桥的数目为零时,将所述PCI设备信息处理函数包含的数组中记录所述下游PCI总线所经过桥的数目的变量加1;以及
记录所述下游PCI总线已扫描,并设置所述PCI总线上扫描到的设备号为0,以更新所述数组。
可选的实例中,所述获取PCI总线树显示请求,还包括:
根据所述PCI总线树显示请求,调用PCI总线树设备显示函数,以确定所述PCI总线上控制器标识是否为空;
在确定所述PCI总线上控制器标识不为空时,执行获取所述当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目的步骤。
第二方面,本公开提供了一种PCI总线树的处理装置,包括:
通信模块,用于获取PCI总线树显示请求;
处理模块,用于获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;根据所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作;当所述PCI总线包含下游PCI总线时,将所述下游PCI总线作为新的当前扫描到的PCI总线,并返回获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目的步骤,直至完成对全部PCI总线的打印操作。
第三方面,一种PCI总线树的处理装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
当接收到PCI总线树显示请求时,获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;
根据所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作;
当所述PCI总线包含下游PCI总线时,将所述下游PCI总线作为新的当前扫描到的PCI总线,并返回获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目的步骤,直至完成对全部PCI总线的打印操作。
第五方面,本公开提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如前任一所述的方法。
本公开提供的设备层级结构的处理方法、装置、电子设备及存储介质,当接收到PCI总线树显示请求时,获取当前扫描到的所述PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;根据所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作;当所述PCI总线包含下游PCI总线时,将所述下游PCI总线作为新的当前扫描到的PCI总线,并并返回获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目的步骤,直至完成对全部PCI总线的打印操作;本发明实施例中,通过获取PCI总线所经过桥的数目和PCI总线的总线号,确定PCI设备所处层级,并根据确定的层级进行移位操作,从而实现将PCI总线树的中各设备的信息按照其层级结构进行输出,提高了其信息输出的可视化程度,便于技术人员查看和使用。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的示例,并与说明书一起用于解释本公开的原理。
图1是本公开基于的系统架构结构示意图;
图2为本公开示例一提供的一种设备层级结构的处理方法的流程示意图;
图3为本公开示例一提供的设备层级结构的处理方法的界面示意图;
图4为本公开示例二提供的又一种设备层级结构的处理方法的流程示意图;
图5为本公开示例三提供的一种设备层级结构的处理装置的结构示意图;
图6为本公开示例四提供的一种设备层级结构的处理装置的硬件结构示意图;
图7为本公开示例五提供的一种电子设备的结构示意图。
通过上述附图,已示出本公开明确的示例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定示例为本领域技术人员说明本公开的概念。
具体实施例
这里将详细地对示例性示例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性示例中所描述的示例并不代表与本公开相一致的所有示例。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在处理器系统的PCI体系结构中,包含两类桥片,分别为HOST主桥和PCI桥片;PCI体系结构中的每一个PCI设备和PCI桥片中都包含一个配置空间,该配置空间由HOST主桥管理,而PCI桥片可以转发来自HOST主桥的配置访问。从PCI总线树图上来看,HOST主桥可以视为PCI总线树的根节点,而与HOST主桥通过PCI总线连接的PCI设备和PCI桥片可以视为PCI总线树的子节点;处理器系统中可以包含一条或多条PCI总线。
一般的,基于不同处理器系统的需求,PCI总线的另一端还将连接有其他设备,如PCI设备、PCI桥片,等等。图1是本公开基于的系统架构结构示意图,如图1所示的,一般将与每一个HOST主桥直接相连的PCI总线命名为PCI总线0,然后系统软件使用深度优先算法,依次对各PCI总线进行编号。其中一条PCI总线上可能会挂接各种各样的PCI设备,而且每一个PCI设备在PCI总线下具有唯一的设备号。
为了便于获知PCI总线的总线树情况,一般会采用遍历的方式将PCI总线树上的设备一一打印出来,具体可先采用深度优先算法遍历PCI总线树,再将扫描到的PCI桥片或者PCI设备对应的信息直接输出到界面上。
下面以具体地示例对本公开的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的示例可以相互结合,对于相同或相似的概念或过程可能在某些示例中不再赘述。下面将结合附图,对本公开的示例进行描述。
针对现有输出在界面上的信息并不能体现PCI总线树中层级结构,不利于技术人员查看和使用的技术问题,图2为本公开示例一提供的一种设备层级结构的处理方法的流程示意图。
如图2所示,该方法包括:
步骤101、获取PCI总线树显示请求。
步骤102、基于该PCI总线树显示请求,获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所述PCI总线所经过桥的数目。
步骤103、根据所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作。
步骤104、判断是否还存在所述PCI总线的下游PCI总线。
若否,则执行步骤105;若是,则结束。
步骤105、当所述PCI总线包含下游PCI总线时,将所述下游PCI总线作为新的当前扫描到的PCI总线。并返回执行步骤102。
需要说明的是,本公开提供的设备层级结构的处理方法的执行主体为设备层级结构的处理装置,该设备层级结构的处理方法可以应用于PCI总线树的显示。
此外,设备层级结构的处理装置可包含采用C/C++、Java、Shell或Python等语言编写的装置;电子设备则可例如台式电脑、平板电脑、智能手机等;处理装置可以位于电子设备中,或者为一种电子设备;电子设备上可运行有操作系统;操作系统则可为Vxworks系统等可基于电子设备运行的系统,且本公开对电子设备以及操作系统不进行任何限定。
由于PCI总线树自上而下可以包含多个层级,因此,需要逐层进行扫描获取相应设备信息(也可称为参数信息);基于此,在步骤102中,自HOST主桥开始,沿直接连接该HOST主桥的PCI总线(如图1中PCI总线0)进行扫描,获取当前扫描到的PCI总线以及该PCI总线上连接的各设备对应的设备参数、所述PCI总线的总线号以及所述PCI总线所经过桥的数目。其中,所述PCI总线所经过桥的数目是指,该PCI总线与HOST主桥自上而下之间间隔的PCI桥片数量。例如,如图1所示,PCI总线0与HOST主桥之间间隔的PCI桥片的数量为0,则PCI总线0所经过桥的数目为0;而PCI总线1与HOST主桥之间间隔的PCI桥片的数量为1(即PCI桥片1),则PCI总线1所经过桥的数目为1。
本发明实施例中,仅以单HOST主桥(即一个HOST主桥)的PCI总线树处理方式为例进行描述,关于多HOST主桥(如两个HOST主桥等)的设备层级结构的处理方式可以参照本发明实施例中对单HOST主桥的PCI总线树处理方式进行逐一处理,在此不再赘述。
在本公开提供的设备层级结构的处理方法中,首先,处理装置将获取PCI总线树显示请求,与现有技术不同的是,处理装置逐层扫描,获取当前扫描到的PCI总线上连接的当前各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目等参数信息。特别的,为了便于对于层级结构的输出展示,本发明实施例需要获取所述PCI总线的总线号以及所经过桥的数目。该PCI总线的总线号以及所经过桥的数目可用于对于层级结构进行判定,以便与对显示信息中的显示形式进行调整。
在步骤103中,处理装置将根据所述PCI总线所经过桥的数目,对当前扫描到的PCI总线的总线号、以及所述PCI总线上连接的各设备对应的设备参数以及总线号等信息进行换行位移操作,并进行打印操作。
在具体实现时,步骤103可以通过调用PCI设备信息打印和获取函数(如printSpaceSet函数)实现。
在步骤104中,下游PCI总线即为任一PCI总线下通过PCI桥片连接的下一层级PCI总线;任意一PCI总线可以包含下游PCI总线,也可以不包含下游PCI总线;如图1所示,PCI总线0包含下游PCI总线,该下游PCI总线即为PCI总线1;而PCI总线1则不包含任何下游PCI总线。
在步骤103至步骤105中,每处理完一个层级即打印该处理完毕的层级;而当确定不存在下游PCI总线时,表明各个层级即打印完毕。本发明实施例中,也可以先对处理完毕的层级进行记录,当所有层级均处理完毕后,再统一打印,针对每一层级的处理过程如本发明实施例所述,此处不再赘述。
在可选实施方式中,可基于对PCI总线所经过桥的数目对PCI设备进行位置调整,即对PCI设备对应的设备信息进行换行位移操作,具体可以通过字符设置来实现。如参阅图3所示,在HOST主桥下,PCI总线0的设备信息可以记录为[00:xx:xx],当PCI总线所经过桥的数目为1时,可对于当前扫描到的所述PCI总线上的各设备对应的设备参数以及总线号的打印位置进行换行,并将首字符向后位移1位,如图3所示,PCI总线1的设备信息可以记录为[10:xx:xx],并执行打印操作。
需要说明的是,各设备对应的设备参数包括设备号和功能号;其中的设备号用于表示设备的身份标识,其功能号用于表示设备的功能类型;一般来说,针对同一设备号可对应有多个功能号,在执行本方案时,需要将设备号和功能号均进行换行以及位移并打印的操作。
步骤105中,处理装置将所述PCI总线的下游PCI总线作为新的当前扫描到的PCI总线,并返回执行获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目的步骤,直至完成对全部PCI总线的打印操作的步骤。具体的,由于在PCI总线树中包括有多层树结构,因此,当确定任一PCI总线存在下游总线时,即可确定当前扫描到的PCI总线的下游总线,并获取该下游PCI总线的总线号,并对该下游PCI总线以及对应的各设备进行相应处理。
重复上述的过程直至打印得到全部PCI总线树的层级结构以及相应的展示信息。图3为本公开示例一提供的设备层级结构的处理方法的界面示意图,如图3所示的,可采用上述方式打印得到具备树结构的PCI总线树信息。
此外,在可选实施例中,为了所述获取PCI总线树显示请求,还包括:
根据所述PCI总线树显示请求,调用PCI总线树设备显示函数(如pciTreeDevShow函数),以确定该PCI总线控制器标识(如busCtrlID)是否为空;在确定所述busCtrlID不为空时,执行调用printSpaceSet函数的操作,其中所述busCtrlID用于表示总线控制器的结构体,其用于记录连接在bus总线上的各个设备信息。
具体的,当busCtrlID为空时,其PCI总线树中将不存在PCI总线,相应的,处理装置将无法输出任何总线输的信息,此时,可不再调用任何函数,流程将直接结束。相反的,当busCtrlID不为空时,可采用前述的方式调用printSpaceSet函数,并执行相应的打印操作。
本公开示例一提供的设备层级结构的处理方法,获取当前扫描到的PCI总线上连接的各设备(PCI设备)对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;根据所述PCI总线所经过桥的数目,对需要打印的所述PCI总线的总线号、以及所述PCI总线上扫描到的当前各设备对应的设备参数进行换行位移操作,并进行打印操作;将所述PCI总线的下游PCI总线作为新的当前扫描到的PCI总线,并重复上述操作直至完成对全部PCI总线的打印操作,从而实现将PCI总线树的中各设备的信息按照其层级结构进行输出,提高了其信息输出的可视化的程度,便于技术人员查看和使用。
在上述示例一的各示例的基础上,为了进一步说明本公开提供的设备层级结构的处理方法,图4为本公开示例一提供的又一种设备层级结构的处理方法的流程示意图。如图4所示,该设备层级结构的处理方法,包括:
步骤201、调用PCI设备信息处理函数,其中,PCI设备信息处理函数中包括数组;所述数组记录有当前扫描到的PCI总线上连接的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目。
步骤202、获取PCI总线树显示请求。
步骤203、调用printSpaceSet函数,得到所述PCI总线上连接的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目。
步骤204、判断当前扫描得到的PCI总线所经过桥的数目,对PCI总线的总线号、以及PCI总线上连接的各设备对应的设备参数与pciTreeShow函数中的数组中记录的参数信息是否均相同。
若任一参数信息不相同,执行步骤205;若任一参数信息均相同,执行步骤206。
步骤205、根据当前扫描得到的所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述PCI总线上连接的各设备对应的设备参数对所述数组进行更新,并基于所述数组采用树状图的形式进行打印操作。执行步骤207。
步骤206、基于所述数组记录的参数信息,采用树状图的形式进行打印操作。执行步骤207。
步骤207、判断是否还存在所述PCI总线的下游PCI总线。
若是,则执行步骤208;若否,则结束。
步骤208、将所述PCI总线的下游PCI总线作为新的当前扫描到的PCI总线。并返回执行步骤203。
步骤208、将所述PCI总线的下游PCI总线作为新的当前扫描到的PCI总线。并返回执行步骤203。
需要说明的是,本公开提供的设备层级结构的处理方法的执行主体为设备层级结构的处理装置,该设备层级结构的处理方法可以应用于PCI总线树的显示。
在步骤201中,PCI设备信息处理可以通过pciTreeShow函数实现。进一步的,在调用PCI设备信息处理函数时,可以先对PCI设备信息处理函数进行初始化。
与前述实施例不同的是,为了提高对于PCI总线树的处理效率,本实施例中在调用printSpaceSet函数之前,还可调用pciTreeShow函数,其中,该pciTreeShow函数中包括数组;所述数组记录有扫描到的各个PCI总线上连接的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目。
进一步的,该数组可包括多个,相应的,各设备对应的参数信息可记录在不同的数组中;例如,用于记录PCI总线的总线号的第一数组、用于记录每条所述PCI总线上当前扫描的设备对应的设备号的第二数组、用于记录每个所述设备对应的功能号的第三数组,以及用于记录每条所述PCI总线所经过桥的数目的第四数组。本发明实施例中,根据所记载的数据对象的不同对数据进行分类,即将不同数据对象划分至不同的数组中,使同一个数组中仅记录同一个类别的数据对象,更加便于对所获取数据的管理。
相应的,处理装置在获取总线树显示请求之后,将执行调用printSpaceSet函数的步骤,此时,将对PCI总线进行扫描,并得到当前扫描到的PCI总线上连接的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目。
特别的,在本实施例中,还可对于数组进行更新;具体的,首先,可判断当前扫描到的PCI总线的总线号是否为零;
当确定所述PCI总线的总线号为零时,表明该PCI总线是直接连接HOST主桥的总线;此时,应对该数组中PCI总线所经过桥的数目进行重置,即可将所述pciTreeShow函数中的数组中记录所述PCI总线所经过桥的数目设置为0。以便后续执行根据所述PCI总线所经过桥的数目,对需要打印的所述PCI总线的总线号、以及所述PCI总线上连接的各设备对应的设备参数进行换行位移操作,并进行打印操作的步骤。
当确定所述PCI总线的总线号不为零时,表明该PCI总线不是直接连接HOST主桥的总线,由于数组的更新机制的存在,此时数组中的经过桥的数目应为非零,即可直接执行根据所述PCI总线所经过桥的数目,对需要打印的所述PCI总线的总线号、以及所述PCI总线上连接的各设备对应的设备参数进行换行位移操作,并进行打印操作的步骤。
此外,在本实施例中,由于数组的存在,在执行根据所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述PCI总线上连接的各设备对应的设备参数进行换行位移操作,并进行打印操作时,可基于数组中存储的参数进行。具体来说,可将得到的当前扫描到的所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述PCI总线上连接的各设备对应的设备参数,与前述pciTreeShow函数中的数组中记录的参数信息进行比对,以确定是否均相同。
当各参数信息均相同时,则可直接基于所述数组记录的参数信息,采用树状图的形式进行打印操作。
当任一参数信息不一致时,则需对数组中记录的参数信息进行更新,并在完成更新后基于更新后的数组记录的参数信息,采用树状图的形式进行打印操作。
当然,与前述示例类似的是,在完成打印之后,还将继续扫描以将前述PCI总线的下游PCI总线作为新的当前扫描到的PCI总线,并重复执行该过程。
需要说明的是,如前述示例所述的,在进行下游PCI总线的扫描时,由于其上游至少包括一条PCI总线,因此,该下游PCI总线的总线号一般不为0,即该下游PCI总线所经过桥的数目将不为0,即基于对于下游PCI总线进行处理时,无需执行将所述pciTreeShow函数中的数组中记录所述PCI总线所经过桥的数目设置为0的步骤。
重复上述的过程直至打印得到全部PCI总线树的层级结构以及相应的展示信息。
本发明实施例中,以数组为例保存扫描各个PCI总线得到的设备信息,此外,还可以通过链表来保存扫描各个PCI总线得到的设备信息。进一步的,每处理完一个层级即打印该处理完毕的层级;而当确定不存在下游PCI总线时,表明各个层级即打印完毕;此外,也可以先对处理完毕的层级进行记录,当所有层级均处理完毕后,再统一打印,针对每一层级的处理过程如本发明实施例所述;前一种方法相较于后一种方法,由于无需重新记录大量数据,将更加节约系统开销。
本公开示例二提供的设备层级结构的处理方法,通过设置数组,以存储对于PCI总线上连接的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;根据所述PCI总线所经过桥的数目,进而基于数组存储的信息对所述PCI总线的总线号、以及所述PCI总线上连接的各设备对应的设备参数进行换行位移操作,并进行打印操作,相对于前述示例,由于利用数组可对于本次扫描获得的PCI总线与前一次扫描获得的PCI总线的参数信息是否一致进行判定,并在其一致时直接打印,进而可实现对于PCI总线树结构的快速处理,提高了其信息输出效率。
图5为本公开示例三提供的一种设备层级结构的处理装置的结构示意图。如图5所示的,该PCI总线树的处理装置,包括:
通信模块,用于获取PCI总线树显示请求;
处理模块,用于获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;根据所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作;当所述PCI总线包含下游PCI总线时,将所述下游PCI总线作为新的当前扫描到的PCI总线,并返回获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目的步骤,直至完成对全部PCI总线的打印操作。
在可选示例中,该处理模块,还用于:
调用PCI设备信息处理函数;
其中,所述PCI设备信息处理函数中包括数组;所述数组记录有所述当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;
判断获取的所述PCI总线所经过桥的数目,所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数与所述PCI设备信息处理函数中的数组中记录的参数信息是否均相同;
当任一参数信息不相同时,根据获取的所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数对所述数组进行更新,并基于所述数组采用树状图的形式进行打印操作。
在可选示例中,该处理模块,还用于:
在确定获取的所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数与所述PCI设备信息处理函数中的数组中记录的参数信息均相同时,基于所述数组记录的参数信息,采用树状图的形式进行打印操作。
在可选示例中,该处理模块,还用于确定当前扫描到的PCI总线的总线号是否为零,并在确定所述PCI总线的总线号为零时,将所述PCI设备信息处理函数包含的数组中记录所述PCI总线所经过桥的数目设置为0;执行所述判断获取的所述PCI总线所经过桥的数目,所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数与所述PCI设备信息处理函数中的数组中记录的参数信息是否均相同的步骤。
在可选示例中,该处理模块,还用于获取所述PCI总线的下游PCI总线的总线号;判断所述下游PCI总线所经过桥的数目是否为零;并在确定所述下游PCI总线所经过桥的数目为零时,将所述PCI设备信息处理函数包含的数组中记录所述下游PCI总线所经过桥的数目的变量加1;以及记录所述下游PCI总线已扫描,并设置所述PCI总线上扫描到的设备号为0,以更新所述数组。
可选示例中,该通信模块,还用于根据所述PCI总线树显示请求,调用PCI总线树设备显示函数,以确定所述PCI总线上控制器标识是否为空;在确定所述PCI总线上控制器标识不为空时,执行获取所述当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程以及相应的有益效果,可以参考前述方法示例中的对应过程,在此不再赘述。
在其他示例中,图6为本公开示例四提供的一种PCI总线树的处理装置的硬件结构示意图。如图6所示,该PCI总线树的处理装置具体可包括:
处理器32;
用于存储处理器可执行指令的存储器31;
其中,处理器32被配置为:
当接收到PCI总线树显示请求时,获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;
根据所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作;
当所述PCI总线包含下游PCI总线时,将所述下游PCI总线作为新的当前扫描到的PCI总线,并返回获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目的步骤,直至完成对全部PCI总线的打印操作。
其中,上述的存储器31可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。而处理器32可由一个或多个应用专用集成电路(ASIC)、数字信号处理器架构(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器架构或其他电子元件实现。
上述指令可采用C/C++、Java、Shell或Python等语言编写,本示例对此不进行限制。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程以及相应的有益效果,可以参考前述方法示例中的对应过程,在此不再赘述。
图7为本公开示例五提供的一种电子设备的结构示意图,所述电子设备4中安装有如前任一项所述的PCI总线树的处理装置6。
需要说明的是,PCI总线树的处理装置可以应用于各种电子设备中,其运行方法可参见上述示例一或二所公开的方案,其结构可参见上述示例三所公开的方案。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和示例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
本公开提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如前任一所述的方法。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种设备层级结构的处理方法,应用于PCI总线上,其特征在于,包括:
当接收到PCI总线树显示请求时,获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;
根据所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作;
当所述PCI总线包含下游PCI总线时,将所述下游PCI总线作为新的当前扫描到的PCI总线,并返回获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目的步骤,直至完成对全部PCI总线的打印操作。
2.根据权利要求1所述的处理方法,其特征在于,获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目之前,还包括:
调用PCI设备信息处理函数;
其中,所述PCI设备信息处理函数中包括数组;所述数组记录有参数信息,所述参数信息包括PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;
根据所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作,包括:
判断获取的所述PCI总线所经过桥的数目,所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数与所述PCI设备信息处理函数中的数组中记录的参数信息是否均相同;
当任一参数信息不相同时,根据获取的所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数对所述数组进行更新,并基于所述数组采用树状图的形式进行打印操作。
3.根据权利要求2所述的处理方法,其特征在于,还包括:
在确定获取的所述PCI总线所经过桥的数目,所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数与所述PCI设备信息处理函数中的数组中记录的参数信息均相同时,所述根据所述PCI总线所经过桥的数目,对需要打印的所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作,包括:
基于所述数组记录的参数信息,采用树状图的形式进行打印操作。
4.根据权利要求2所述的处理方法,其特征在于,所述调用PCI设备信息处理函数,还包括:
确定当前扫描到的PCI总线的总线号是否为零,并在确定所述PCI总线的总线号为零时,将所述PCI设备信息处理函数包含的数组中记录所述PCI总线所经过桥的数目设置为0;
执行所述判断获取的所述PCI总线所经过桥的数目,所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数与所述PCI设备信息处理函数中的数组中记录的参数信息是否均相同的步骤。
5.根据权利要求2所述的处理方法,其特征在于,还包括:获取所述PCI总线的下游PCI总线的总线号;
判断所述下游PCI总线所经过桥的数目是否为零;并
在确定所述下游PCI总线所经过桥的数目为零时,将所述PCI设备信息处理函数包含的数组中记录所述下游PCI总线所经过桥的数目的变量加1;以及
记录所述下游PCI总线已扫描,并设置所述PCI总线上扫描到的设备号为0,以更新所述数组。
6.根据权利要求1-5任一项所述的处理方法,其特征在于,所述获取PCI总线树显示请求,还包括:
根据所述PCI总线树显示请求,调用PCI总线树设备显示函数,以确定所述PCI总线上控制器标识是否为空;
在确定所述PCI总线上控制器标识不为空时,执行获取所述当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目的步骤。
7.一种设备层级的处理装置,其特征在于,包括:
通信模块,用于获取PCI总线树显示请求;
处理模块,用于获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;根据所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作;当所述PCI总线包含下游PCI总线时,将所述下游PCI总线作为新的当前扫描到的PCI总线,并返回获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目的步骤,直至完成对全部PCI总线的打印操作。
8.一种PCI总线树的处理装置,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
当接收到PCI总线树显示请求时,获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目;
根据所述PCI总线所经过桥的数目,对所述PCI总线的总线号、以及所述当前扫描到的PCI总线上的各设备对应的设备参数进行换行位移操作,并进行打印操作;
当所述PCI总线包含下游PCI总线时,将所述下游PCI总线作为新的当前扫描到的PCI总线,并返回获取当前扫描到的PCI总线上的各设备对应的设备参数、所述PCI总线的总线号以及所经过桥的数目的步骤,直至完成对全部PCI总线的打印操作。
9.一种电子设备,其特征在于,所述电子设备中安装有如权利要求8所述的PCI总线树的处理装置。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911402807.7A CN113127397B (zh) | 2019-12-31 | 2019-12-31 | 设备层级结构的处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911402807.7A CN113127397B (zh) | 2019-12-31 | 2019-12-31 | 设备层级结构的处理方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127397A true CN113127397A (zh) | 2021-07-16 |
CN113127397B CN113127397B (zh) | 2023-04-07 |
Family
ID=76768290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911402807.7A Active CN113127397B (zh) | 2019-12-31 | 2019-12-31 | 设备层级结构的处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127397B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030018464A1 (en) * | 2001-03-08 | 2003-01-23 | Rahul Khanna | Method for representing root busses using object oriented abstractions |
US20040225772A1 (en) * | 2001-01-31 | 2004-11-11 | Efficient Networks, Inc. | System and method for identifying open peripheral component interconnect (PCI) slots |
CN102841833A (zh) * | 2011-06-24 | 2012-12-26 | 鸿富锦精密工业(深圳)有限公司 | Pci资源遍历方法及系统 |
-
2019
- 2019-12-31 CN CN201911402807.7A patent/CN113127397B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040225772A1 (en) * | 2001-01-31 | 2004-11-11 | Efficient Networks, Inc. | System and method for identifying open peripheral component interconnect (PCI) slots |
US20030018464A1 (en) * | 2001-03-08 | 2003-01-23 | Rahul Khanna | Method for representing root busses using object oriented abstractions |
CN102841833A (zh) * | 2011-06-24 | 2012-12-26 | 鸿富锦精密工业(深圳)有限公司 | Pci资源遍历方法及系统 |
Non-Patent Citations (1)
Title |
---|
吴永佩: "《Linux指令范例速查辞典》", 31 March 2014 * |
Also Published As
Publication number | Publication date |
---|---|
CN113127397B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108958736B (zh) | 页面生成方法、装置、电子设备及计算机可读介质 | |
CN107896162B (zh) | 监控系统的部署方法、装置、计算机设备及存储介质 | |
CN110046029A (zh) | 应用于集群内多级缓存的数据处理方法和装置 | |
CN110287696B (zh) | 一种反弹shell进程的检测方法、装置和设备 | |
CN110377209B (zh) | 一种通过拖拽实现可视化流程配置的方法及装置 | |
US11222067B2 (en) | Multi-index method and apparatus, cloud system and computer-readable storage medium | |
EP2778962B1 (en) | Silo-aware databases | |
US11119688B2 (en) | Replica processing method and node, storage system, server, and readable medium | |
US20240045787A1 (en) | Code inspection method under weak memory ordering architecture and corresponding device | |
CN112650692A (zh) | 堆内存分配方法、装置及存储介质 | |
CN113127397B (zh) | 设备层级结构的处理方法、装置、电子设备及存储介质 | |
CN114647548A (zh) | 一种日志生成方法及装置 | |
CN114816170A (zh) | 规则方案生成方法、装置、介质及电子设备 | |
CN111736776A (zh) | 一种数据存储、读取方法及装置 | |
CN108846009B (zh) | 一种ceph中副本数据存储方法及装置 | |
CN115904785A (zh) | 一种异常定位方法、装置、设备及可读存储介质 | |
CN111159262A (zh) | 自动驾驶仿真数据处理方法和装置 | |
CN112445816B (zh) | 车辆诊断数据引用方法、装置、终端设备及存储介质 | |
CN112907198B (zh) | 业务状态流转维护方法、装置及电子设备 | |
CN111309972B (zh) | 一种数据处理方法、装置、终端设备及存储介质 | |
CN111209304B (zh) | 数据处理方法、装置及系统 | |
US20170090820A1 (en) | Method and device for operating a many-core system | |
CN113568603A (zh) | 组件对象创建及接口方法调用方法、终端及存储装置 | |
CN113098961A (zh) | 组件上传方法、装置、系统、计算机设备及可读存储介质 | |
CN118035042B (zh) | 应用程序性能分析方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |