cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

pci_sun4v.h (4247B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2/* pci_sun4v.h: SUN4V specific PCI controller support.
      3 *
      4 * Copyright (C) 2006 David S. Miller (davem@davemloft.net)
      5 */
      6
      7#ifndef _PCI_SUN4V_H
      8#define _PCI_SUN4V_H
      9
     10long pci_sun4v_iommu_map(unsigned long devhandle,
     11			 unsigned long tsbid,
     12			 unsigned long num_ttes,
     13			 unsigned long io_attributes,
     14			 unsigned long io_page_list_pa);
     15unsigned long pci_sun4v_iommu_demap(unsigned long devhandle,
     16				    unsigned long tsbid,
     17				    unsigned long num_ttes);
     18unsigned long pci_sun4v_iommu_getmap(unsigned long devhandle,
     19				     unsigned long tsbid,
     20				     unsigned long *io_attributes,
     21				     unsigned long *real_address);
     22unsigned long pci_sun4v_config_get(unsigned long devhandle,
     23				   unsigned long pci_device,
     24				   unsigned long config_offset,
     25				   unsigned long size);
     26int pci_sun4v_config_put(unsigned long devhandle,
     27			 unsigned long pci_device,
     28			 unsigned long config_offset,
     29			 unsigned long size,
     30			 unsigned long data);
     31
     32unsigned long pci_sun4v_msiq_conf(unsigned long devhandle,
     33					 unsigned long msiqid,
     34					 unsigned long msiq_paddr,
     35					 unsigned long num_entries);
     36unsigned long pci_sun4v_msiq_info(unsigned long devhandle,
     37				  unsigned long msiqid,
     38				  unsigned long *msiq_paddr,
     39				  unsigned long *num_entries);
     40unsigned long pci_sun4v_msiq_getvalid(unsigned long devhandle,
     41				      unsigned long msiqid,
     42				      unsigned long *valid);
     43unsigned long pci_sun4v_msiq_setvalid(unsigned long devhandle,
     44				      unsigned long msiqid,
     45				      unsigned long valid);
     46unsigned long pci_sun4v_msiq_getstate(unsigned long devhandle,
     47				      unsigned long msiqid,
     48				      unsigned long *state);
     49unsigned long pci_sun4v_msiq_setstate(unsigned long devhandle,
     50				      unsigned long msiqid,
     51				      unsigned long state);
     52unsigned long pci_sun4v_msiq_gethead(unsigned long devhandle,
     53				     unsigned long msiqid,
     54				     unsigned long *head);
     55unsigned long pci_sun4v_msiq_sethead(unsigned long devhandle,
     56				     unsigned long msiqid,
     57				     unsigned long head);
     58unsigned long pci_sun4v_msiq_gettail(unsigned long devhandle,
     59				      unsigned long msiqid,
     60				      unsigned long *head);
     61unsigned long pci_sun4v_msi_getvalid(unsigned long devhandle,
     62				     unsigned long msinum,
     63				     unsigned long *valid);
     64unsigned long pci_sun4v_msi_setvalid(unsigned long devhandle,
     65				     unsigned long msinum,
     66				     unsigned long valid);
     67unsigned long pci_sun4v_msi_getmsiq(unsigned long devhandle,
     68				    unsigned long msinum,
     69				    unsigned long *msiq);
     70unsigned long pci_sun4v_msi_setmsiq(unsigned long devhandle,
     71				    unsigned long msinum,
     72				    unsigned long msiq,
     73				    unsigned long msitype);
     74unsigned long pci_sun4v_msi_getstate(unsigned long devhandle,
     75				     unsigned long msinum,
     76				     unsigned long *state);
     77unsigned long pci_sun4v_msi_setstate(unsigned long devhandle,
     78				     unsigned long msinum,
     79				     unsigned long state);
     80unsigned long pci_sun4v_msg_getmsiq(unsigned long devhandle,
     81				    unsigned long msinum,
     82				    unsigned long *msiq);
     83unsigned long pci_sun4v_msg_setmsiq(unsigned long devhandle,
     84				    unsigned long msinum,
     85				    unsigned long msiq);
     86unsigned long pci_sun4v_msg_getvalid(unsigned long devhandle,
     87				     unsigned long msinum,
     88				     unsigned long *valid);
     89unsigned long pci_sun4v_msg_setvalid(unsigned long devhandle,
     90				     unsigned long msinum,
     91				     unsigned long valid);
     92
     93/* Sun4v HV IOMMU v2 APIs */
     94unsigned long pci_sun4v_iotsb_conf(unsigned long devhandle,
     95				   unsigned long ra,
     96				   unsigned long table_size,
     97				   unsigned long page_size,
     98				   unsigned long dvma_base,
     99				   u64 *iotsb_num);
    100unsigned long pci_sun4v_iotsb_bind(unsigned long devhandle,
    101				   unsigned long iotsb_num,
    102				   unsigned int pci_device);
    103unsigned long pci_sun4v_iotsb_map(unsigned long devhandle,
    104				  unsigned long iotsb_num,
    105				  unsigned long iotsb_index_iottes,
    106				  unsigned long io_attributes,
    107				  unsigned long io_page_list_pa,
    108				  long *mapped);
    109unsigned long pci_sun4v_iotsb_demap(unsigned long devhandle,
    110				    unsigned long iotsb_num,
    111				    unsigned long iotsb_index,
    112				    unsigned long iottes,
    113				    unsigned long *demapped);
    114#endif /* !(_PCI_SUN4V_H) */