pci_sun4v_asm.s
来自「LINUX 2.6.17.4的源码」· S 代码 · 共 96 行
S
96 行
/* pci_sun4v_asm: Hypervisor calls for PCI support. * * Copyright (C) 2006 David S. Miller <davem@davemloft.net> */#include <asm/hypervisor.h> /* %o0: devhandle * %o1: tsbid * %o2: num ttes * %o3: io_attributes * %o4: io_page_list phys address * * returns %o0: -status if status was non-zero, else * %o0: num pages mapped */ .globl pci_sun4v_iommu_mappci_sun4v_iommu_map: mov %o5, %g1 mov HV_FAST_PCI_IOMMU_MAP, %o5 ta HV_FAST_TRAP brnz,pn %o0, 1f sub %g0, %o0, %o0 mov %o1, %o01: retl nop /* %o0: devhandle * %o1: tsbid * %o2: num ttes * * returns %o0: num ttes demapped */ .globl pci_sun4v_iommu_demappci_sun4v_iommu_demap: mov HV_FAST_PCI_IOMMU_DEMAP, %o5 ta HV_FAST_TRAP retl mov %o1, %o0 /* %o0: devhandle * %o1: tsbid * %o2: &io_attributes * %o3: &real_address * * returns %o0: status */ .globl pci_sun4v_iommu_getmappci_sun4v_iommu_getmap: mov %o2, %o4 mov HV_FAST_PCI_IOMMU_GETMAP, %o5 ta HV_FAST_TRAP stx %o1, [%o4] stx %o2, [%o3] retl mov %o0, %o0 /* %o0: devhandle * %o1: pci_device * %o2: pci_config_offset * %o3: size * * returns %o0: data * * If there is an error, the data will be returned * as all 1's. */ .globl pci_sun4v_config_getpci_sun4v_config_get: mov HV_FAST_PCI_CONFIG_GET, %o5 ta HV_FAST_TRAP brnz,a,pn %o1, 1f mov -1, %o21: retl mov %o2, %o0 /* %o0: devhandle * %o1: pci_device * %o2: pci_config_offset * %o3: size * %o4: data * * returns %o0: status * * status will be zero if the operation completed * successfully, else -1 if not */ .globl pci_sun4v_config_putpci_sun4v_config_put: mov HV_FAST_PCI_CONFIG_PUT, %o5 ta HV_FAST_TRAP brnz,a,pn %o1, 1f mov -1, %o11: retl mov %o1, %o0
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?