Home | History | Annotate | Line # | Download | only in include
hypervisor.h revision 1.6.30.2
      1  1.6.30.2  thorpej /*	$NetBSD: hypervisor.h,v 1.6.30.2 2021/08/01 22:42:17 thorpej Exp $ */
      2       1.1    palle /*	$OpenBSD: hypervisor.h,v 1.14 2011/06/26 17:23:46 kettenis Exp $	*/
      3       1.1    palle 
      4       1.1    palle /*
      5       1.1    palle  * Copyright (c) 2008 Mark Kettenis
      6       1.1    palle  *
      7       1.1    palle  * Permission to use, copy, modify, and distribute this software for any
      8       1.1    palle  * purpose with or without fee is hereby granted, provided that the above
      9       1.1    palle  * copyright notice and this permission notice appear in all copies.
     10       1.1    palle  *
     11       1.1    palle  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
     12       1.1    palle  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
     13       1.1    palle  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
     14       1.1    palle  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
     15       1.1    palle  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
     16       1.1    palle  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
     17       1.1    palle  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
     18       1.1    palle  */
     19       1.1    palle 
     20       1.3    palle #ifndef	_HYPERVISOR_H_
     21       1.3    palle #define	_HYPERVISOR_H_
     22       1.3    palle 
     23       1.1    palle /*
     24       1.1    palle  * UltraSPARC Hypervisor API.
     25       1.1    palle  */
     26       1.1    palle 
     27       1.1    palle /*
     28       1.5    palle  * FAST_TRAP function numbers
     29       1.5    palle  */
     30       1.5    palle 
     31       1.5    palle #define FT_MMU_MAP_PERM_ADDR 0x25
     32       1.5    palle 
     33       1.5    palle /*
     34       1.1    palle  * API versioning
     35       1.1    palle  */
     36       1.1    palle 
     37       1.4    palle #ifndef _LOCORE
     38       1.1    palle int64_t	hv_api_get_version(uint64_t api_group,
     39  1.6.30.1  thorpej 						   uint64_t *major_number,
     40  1.6.30.1  thorpej 						   uint64_t *minor_number);
     41  1.6.30.1  thorpej int64_t	hv_api_set_version(uint64_t api_group,
     42  1.6.30.1  thorpej 						   uint64_t major_number,
     43  1.6.30.1  thorpej 						   uint64_t req_minor_number,
     44  1.6.30.1  thorpej 						   uint64_t* actual_minor_number);
     45  1.6.30.1  thorpej #define HV_API_GROUP_INTERRUPT 0x002
     46       1.4    palle #endif
     47       1.1    palle /*
     48       1.1    palle  * Domain services
     49       1.1    palle  */
     50       1.1    palle 
     51       1.4    palle #ifndef _LOCORE
     52       1.1    palle int64_t hv_mach_desc(paddr_t buffer, psize_t *length);
     53       1.4    palle #endif
     54       1.1    palle 
     55       1.1    palle /*
     56       1.1    palle  * CPU services
     57       1.1    palle  */
     58       1.1    palle 
     59       1.4    palle #ifndef _LOCORE
     60       1.1    palle void	hv_cpu_yield(void);
     61       1.1    palle int64_t	hv_cpu_qconf(uint64_t queue, uint64_t base, uint64_t nentries);
     62       1.4    palle #endif
     63       1.1    palle 
     64       1.1    palle #define CPU_MONDO_QUEUE		0x3c
     65       1.1    palle #define DEVICE_MONDO_QUEUE	0x3d
     66       1.1    palle 
     67       1.4    palle #ifndef _LOCORE
     68       1.1    palle int64_t	hv_cpu_mondo_send(uint64_t ncpus, paddr_t cpulist, paddr_t data);
     69       1.1    palle int64_t	hv_cpu_myid(uint64_t *cpuid);
     70       1.4    palle #endif
     71       1.1    palle 
     72       1.1    palle /*
     73       1.1    palle  * MMU services
     74       1.1    palle  */
     75       1.1    palle 
     76       1.4    palle #ifndef _LOCORE
     77       1.1    palle int64_t	hv_mmu_demap_page(vaddr_t vaddr, uint64_t context, uint64_t flags);
     78       1.1    palle int64_t	hv_mmu_demap_ctx(uint64_t context, uint64_t flags);
     79       1.1    palle int64_t	hv_mmu_demap_all(uint64_t flags);
     80       1.1    palle int64_t	hv_mmu_map_perm_addr(vaddr_t vaddr, uint64_t tte, uint64_t flags);
     81       1.1    palle int64_t	hv_mmu_unmap_perm_addr(vaddr_t vaddr, uint64_t flags);
     82       1.1    palle int64_t	hv_mmu_map_addr(vaddr_t vaddr, uint64_t context, uint64_t tte,
     83       1.1    palle 	    uint64_t flags);
     84       1.1    palle int64_t	hv_mmu_unmap_addr(vaddr_t vaddr, uint64_t context, uint64_t flags);
     85       1.4    palle #endif
     86       1.1    palle 
     87       1.1    palle #define MAP_DTLB	0x1
     88       1.1    palle #define MAP_ITLB	0x2
     89       1.1    palle 
     90       1.4    palle #ifndef _LOCORE
     91       1.1    palle struct tsb_desc {
     92       1.1    palle 	uint16_t	td_idxpgsz;
     93       1.1    palle 	uint16_t	td_assoc;
     94       1.1    palle 	uint32_t	td_size;
     95       1.1    palle 	uint32_t	td_ctxidx;
     96       1.1    palle 	uint32_t	td_pgsz;
     97       1.1    palle 	paddr_t		td_pa;
     98       1.1    palle 	uint64_t	td_reserved;
     99       1.1    palle };
    100       1.1    palle 
    101       1.6    palle struct mmufsa {
    102       1.6    palle 	uint64_t	ift; /* instruction fault type */
    103       1.6    palle 	uint64_t	ifa; /* instruction fault address */
    104       1.6    palle 	uint64_t	ifc; /* instruction fault context */
    105       1.6    palle 	uint64_t	reserved1[5]; /* reserved */
    106       1.6    palle 	uint64_t	dft; /* data fault type */
    107       1.6    palle 	uint64_t	dfa; /* data fault address */
    108       1.6    palle 	uint64_t	dfc; /* data fault context */
    109       1.6    palle 	uint64_t	reserved2[5]; /* reserved */
    110       1.6    palle };
    111       1.6    palle 
    112       1.1    palle int64_t	hv_mmu_tsb_ctx0(uint64_t ntsb, paddr_t tsbptr);
    113       1.1    palle int64_t	hv_mmu_tsb_ctxnon0(uint64_t ntsb, paddr_t tsbptr);
    114       1.4    palle #endif
    115       1.1    palle 
    116       1.1    palle /*
    117       1.1    palle  * Cache and memory services
    118       1.1    palle  */
    119       1.1    palle 
    120       1.4    palle #ifndef _LOCORE
    121       1.1    palle int64_t	hv_mem_scrub(paddr_t raddr, psize_t length);
    122       1.1    palle int64_t	hv_mem_sync(paddr_t raddr, psize_t length);
    123       1.4    palle #endif
    124       1.1    palle 
    125       1.1    palle /*
    126       1.1    palle  * Device interrupt services
    127       1.1    palle  */
    128       1.1    palle 
    129       1.4    palle #ifndef _LOCORE
    130       1.1    palle int64_t	hv_intr_devino_to_sysino(uint64_t devhandle, uint64_t devino,
    131       1.1    palle 	    uint64_t *sysino);
    132       1.1    palle int64_t	hv_intr_getenabled(uint64_t sysino, uint64_t *intr_enabled);
    133       1.1    palle int64_t	hv_intr_setenabled(uint64_t sysino, uint64_t intr_enabled);
    134       1.1    palle int64_t	hv_intr_getstate(uint64_t sysino, uint64_t *intr_state);
    135       1.1    palle int64_t	hv_intr_setstate(uint64_t sysino, uint64_t intr_state);
    136       1.1    palle int64_t	hv_intr_gettarget(uint64_t sysino, uint64_t *cpuid);
    137       1.1    palle int64_t	hv_intr_settarget(uint64_t sysino, uint64_t cpuid);
    138       1.4    palle #endif
    139       1.1    palle 
    140       1.1    palle #define INTR_DISABLED	0
    141       1.1    palle #define INTR_ENABLED	1
    142       1.1    palle 
    143       1.1    palle #define INTR_IDLE	0
    144       1.1    palle #define INTR_RECEIVED	1
    145       1.1    palle #define INTR_DELIVERED	2
    146       1.1    palle 
    147       1.4    palle #ifndef _LOCORE
    148       1.1    palle int64_t	hv_vintr_getcookie(uint64_t devhandle, uint64_t devino,
    149       1.1    palle 	    uint64_t *cookie_value);
    150       1.1    palle int64_t	hv_vintr_setcookie(uint64_t devhandle, uint64_t devino,
    151       1.1    palle 	    uint64_t cookie_value);
    152       1.1    palle int64_t	hv_vintr_getenabled(uint64_t devhandle, uint64_t devino,
    153       1.1    palle 	    uint64_t *intr_enabled);
    154       1.1    palle int64_t	hv_vintr_setenabled(uint64_t devhandle, uint64_t devino,
    155       1.1    palle 	    uint64_t intr_enabled);
    156       1.1    palle int64_t	hv_vintr_getstate(uint64_t devhandle, uint64_t devino,
    157       1.1    palle 	    uint64_t *intr_state);
    158       1.1    palle int64_t	hv_vintr_setstate(uint64_t devhandle, uint64_t devino,
    159       1.1    palle 	    uint64_t intr_state);
    160       1.1    palle int64_t	hv_vintr_gettarget(uint64_t devhandle, uint64_t devino,
    161       1.1    palle 	    uint64_t *cpuid);
    162       1.1    palle int64_t	hv_vintr_settarget(uint64_t devhandle, uint64_t devino,
    163       1.1    palle 	    uint64_t cpuid);
    164       1.4    palle #endif
    165       1.1    palle 
    166       1.1    palle /*
    167       1.1    palle  * Time of day services
    168       1.1    palle  */
    169       1.1    palle 
    170       1.4    palle #ifndef _LOCORE
    171       1.1    palle int64_t	hv_tod_get(uint64_t *tod);
    172       1.1    palle int64_t	hv_tod_set(uint64_t tod);
    173       1.4    palle #endif
    174       1.1    palle 
    175       1.1    palle /*
    176       1.1    palle  * Console services
    177       1.1    palle  */
    178       1.1    palle 
    179       1.4    palle #ifndef _LOCORE
    180       1.1    palle int64_t	hv_cons_getchar(int64_t *ch);
    181       1.1    palle int64_t	hv_cons_putchar(int64_t ch);
    182       1.1    palle int64_t	hv_api_putchar(int64_t ch);
    183       1.4    palle #endif
    184       1.1    palle 
    185       1.1    palle #define CONS_BREAK	-1
    186       1.1    palle #define CONS_HUP	-2
    187       1.1    palle 
    188       1.1    palle /*
    189       1.1    palle  * Domain state services
    190       1.1    palle  */
    191       1.1    palle 
    192       1.4    palle #ifndef _LOCORE
    193       1.1    palle int64_t	hv_soft_state_set(uint64_t software_state,
    194       1.1    palle 	    paddr_t software_description_ptr);
    195       1.4    palle #endif
    196       1.1    palle 
    197       1.1    palle #define SIS_NORMAL	0x1
    198       1.1    palle #define SIS_TRANSITION	0x2
    199       1.1    palle 
    200       1.1    palle /*
    201       1.1    palle  * PCI I/O services
    202       1.1    palle  */
    203       1.1    palle 
    204       1.4    palle #ifndef _LOCORE
    205       1.1    palle int64_t	hv_pci_iommu_map(uint64_t devhandle, uint64_t tsbid,
    206       1.1    palle 	    uint64_t nttes, uint64_t io_attributes, paddr_t io_page_list_p,
    207       1.1    palle 	    uint64_t *nttes_mapped);
    208       1.1    palle int64_t	hv_pci_iommu_demap(uint64_t devhandle, uint64_t tsbid,
    209       1.1    palle 	    uint64_t nttes, uint64_t *nttes_demapped);
    210       1.1    palle int64_t	hv_pci_iommu_getmap(uint64_t devhandle, uint64_t tsbid,
    211       1.1    palle 	    uint64_t *io_attributes, paddr_t *r_addr);
    212       1.1    palle int64_t	hv_pci_iommu_getbypass(uint64_t devhandle, paddr_t r_addr,
    213       1.1    palle 	    uint64_t io_attributes, uint64_t *io_addr);
    214       1.1    palle 
    215       1.1    palle int64_t	hv_pci_config_get(uint64_t devhandle, uint64_t pci_device,
    216       1.1    palle             uint64_t pci_config_offset, uint64_t size,
    217       1.1    palle 	    uint64_t *error_flag, uint64_t *data);
    218       1.1    palle int64_t	hv_pci_config_put(uint64_t devhandle, uint64_t pci_device,
    219       1.1    palle             uint64_t pci_config_offset, uint64_t size, uint64_t data,
    220       1.1    palle 	    uint64_t *error_flag);
    221       1.4    palle #endif
    222       1.1    palle 
    223       1.1    palle #define PCI_MAP_ATTR_READ  0x01		/* From memory */
    224       1.1    palle #define PCI_MAP_ATTR_WRITE 0x02		/* To memory */
    225       1.1    palle 
    226       1.1    palle /*
    227       1.1    palle  * PCI MSI services
    228       1.1    palle  */
    229       1.1    palle 
    230       1.4    palle #ifndef _LOCORE
    231       1.1    palle int64_t hv_pci_msiq_conf(uint64_t devhandle, uint64_t msiqid,
    232       1.1    palle 	    uint64_t r_addr, uint64_t nentries);
    233       1.1    palle int64_t hv_pci_msiq_info(uint64_t devhandle, uint64_t msiqid,
    234       1.1    palle 	    uint64_t *r_addr, uint64_t *nentries);
    235       1.1    palle 
    236       1.1    palle int64_t hv_pci_msiq_getvalid(uint64_t devhandle, uint64_t msiqid,
    237       1.1    palle 	    uint64_t *msiqvalid);
    238       1.1    palle int64_t hv_pci_msiq_setvalid(uint64_t devhandle, uint64_t msiqid,
    239       1.1    palle 	    uint64_t msiqvalid);
    240       1.4    palle #endif
    241       1.1    palle 
    242       1.1    palle #define PCI_MSIQ_INVALID	0
    243       1.1    palle #define PCI_MSIQ_VALID		1
    244       1.1    palle 
    245       1.4    palle #ifndef _LOCORE
    246       1.1    palle int64_t hv_pci_msiq_getstate(uint64_t devhandle, uint64_t msiqid,
    247       1.1    palle 	    uint64_t *msiqstate);
    248       1.1    palle int64_t hv_pci_msiq_setstate(uint64_t devhandle, uint64_t msiqid,
    249       1.1    palle 	    uint64_t msiqstate);
    250       1.4    palle #endif
    251       1.1    palle 
    252       1.1    palle #define PCI_MSIQSTATE_IDLE	0
    253       1.1    palle #define PCI_MSIQSTATE_ERROR	1
    254       1.1    palle 
    255       1.4    palle #ifndef _LOCORE
    256       1.1    palle int64_t hv_pci_msiq_gethead(uint64_t devhandle, uint64_t msiqid,
    257       1.1    palle 	    uint64_t *msiqhead);
    258       1.1    palle int64_t hv_pci_msiq_sethead(uint64_t devhandle, uint64_t msiqid,
    259       1.1    palle 	    uint64_t msiqhead);
    260       1.1    palle int64_t hv_pci_msiq_gettail(uint64_t devhandle, uint64_t msiqid,
    261       1.1    palle 	    uint64_t *msiqtail);
    262       1.1    palle 
    263       1.1    palle int64_t hv_pci_msi_getvalid(uint64_t devhandle, uint64_t msinum,
    264       1.1    palle 	    uint64_t *msivalidstate);
    265       1.1    palle int64_t hv_pci_msi_setvalid(uint64_t devhandle, uint64_t msinum,
    266       1.1    palle 	    uint64_t msivalidstate);
    267       1.4    palle #endif
    268       1.1    palle 
    269       1.1    palle #define PCI_MSI_INVALID		0
    270       1.1    palle #define PCI_MSI_VALID		1
    271       1.1    palle 
    272       1.4    palle #ifndef _LOCORE
    273       1.1    palle int64_t hv_pci_msi_getmsiq(uint64_t devhandle, uint64_t msinum,
    274       1.1    palle 	    uint64_t *msiqid);
    275       1.1    palle int64_t hv_pci_msi_setmsiq(uint64_t devhandle, uint64_t msinum,
    276       1.1    palle 	    uint64_t msitype, uint64_t msiqid);
    277       1.1    palle 
    278       1.1    palle int64_t hv_pci_msi_getstate(uint64_t devhandle, uint64_t msinum,
    279       1.1    palle 	    uint64_t *msistate);
    280       1.1    palle int64_t hv_pci_msi_setstate(uint64_t devhandle, uint64_t msinum,
    281       1.1    palle 	    uint64_t msistate);
    282       1.4    palle #endif
    283       1.1    palle 
    284       1.1    palle #define PCI_MSISTATE_IDLE	0
    285       1.1    palle #define PCI_MSISTATE_DELIVERED	1
    286       1.1    palle 
    287       1.4    palle #ifndef _LOCORE
    288       1.1    palle int64_t hv_pci_msg_getmsiq(uint64_t devhandle, uint64_t msg,
    289       1.1    palle 	    uint64_t *msiqid);
    290       1.1    palle int64_t hv_pci_msg_setmsiq(uint64_t devhandle, uint64_t msg,
    291       1.1    palle 	    uint64_t msiqid);
    292       1.1    palle 
    293       1.1    palle int64_t hv_pci_msg_getvalid(uint64_t devhandle, uint64_t msg,
    294       1.1    palle 	    uint64_t *msgvalidstate);
    295       1.1    palle int64_t hv_pci_msg_setvalid(uint64_t devhandle, uint64_t msg,
    296       1.1    palle 	    uint64_t msgvalidstate);
    297       1.4    palle #endif
    298       1.1    palle 
    299       1.1    palle #define PCIE_MSG_INVALID	0
    300       1.1    palle #define PCIE_MSG_VALID		1
    301       1.1    palle 
    302       1.1    palle #define PCIE_PME_MSG		0x18
    303       1.1    palle #define PCIE_PME_ACK_MSG	0x1b
    304       1.1    palle #define PCIE_CORR_MSG		0x30
    305       1.1    palle #define PCIE_NONFATAL_MSG	0x31
    306       1.1    palle #define PCIE_FATAL_MSG		0x32
    307       1.1    palle 
    308       1.1    palle /*
    309       1.1    palle  * Logical Domain Channel services
    310       1.1    palle  */
    311       1.1    palle 
    312       1.4    palle #ifndef _LOCORE
    313       1.1    palle int64_t hv_ldc_tx_qconf(uint64_t ldc_id, paddr_t base_raddr,
    314       1.1    palle 	    uint64_t nentries);
    315       1.1    palle int64_t hv_ldc_tx_qinfo(uint64_t ldc_id, paddr_t *base_raddr,
    316       1.1    palle 	    uint64_t *nentries);
    317       1.1    palle int64_t hv_ldc_tx_get_state(uint64_t ldc_id, uint64_t *head_offset,
    318       1.1    palle 	    uint64_t *tail_offset, uint64_t *channel_state);
    319       1.1    palle int64_t hv_ldc_tx_set_qtail(uint64_t ldc_id, uint64_t tail_offset);
    320       1.1    palle int64_t hv_ldc_rx_qconf(uint64_t ldc_id, paddr_t base_raddr,
    321       1.1    palle 	    uint64_t nentries);
    322       1.1    palle int64_t hv_ldc_rx_qinfo(uint64_t ldc_id, paddr_t *base_raddr,
    323       1.1    palle 	    uint64_t *nentries);
    324       1.1    palle int64_t hv_ldc_rx_get_state(uint64_t ldc_id, uint64_t *head_offset,
    325       1.1    palle 	    uint64_t *tail_offset, uint64_t *channel_state);
    326       1.1    palle int64_t hv_ldc_rx_set_qhead(uint64_t ldc_id, uint64_t head_offset);
    327       1.4    palle #endif
    328       1.1    palle 
    329       1.1    palle #define LDC_CHANNEL_DOWN	0
    330       1.1    palle #define LDC_CHANNEL_UP		1
    331       1.1    palle #define LDC_CHANNEL_RESET	2
    332       1.1    palle 
    333       1.4    palle #ifndef _LOCORE
    334       1.1    palle int64_t	hv_ldc_set_map_table(uint64_t ldc_id, paddr_t base_raddr,
    335       1.1    palle 	    uint64_t nentries);
    336       1.1    palle int64_t	hv_ldc_get_map_table(uint64_t ldc_id, paddr_t *base_raddr,
    337       1.1    palle 	    uint64_t *nentries);
    338       1.1    palle int64_t hv_ldc_copy(uint64_t ldc_id, uint64_t flags, uint64_t cookie,
    339       1.1    palle 	    paddr_t raddr, psize_t length, psize_t *ret_length);
    340       1.4    palle #endif
    341       1.1    palle 
    342       1.1    palle #define LDC_COPY_IN		0
    343       1.1    palle #define LDC_COPY_OUT		1
    344       1.1    palle 
    345       1.4    palle #ifndef _LOCORE
    346       1.1    palle int64_t hv_ldc_mapin(uint64_t ldc_id, uint64_t cookie, paddr_t *raddr,
    347       1.1    palle 	    uint64_t *perms);
    348       1.1    palle int64_t hv_ldc_unmap(paddr_t raddr, uint64_t *perms);
    349       1.4    palle #endif
    350       1.1    palle 
    351       1.1    palle /*
    352       1.1    palle  * Cryptographic services
    353       1.1    palle  */
    354       1.1    palle 
    355       1.4    palle #ifndef _LOCORE
    356       1.1    palle int64_t	hv_rng_get_diag_control(void);
    357       1.1    palle int64_t	hv_rng_ctl_read(paddr_t raddr, uint64_t *state, uint64_t *delta);
    358       1.1    palle int64_t	hv_rng_ctl_write(paddr_t raddr, uint64_t state, uint64_t timeout,
    359       1.1    palle 	uint64_t *delta);
    360       1.4    palle #endif
    361       1.1    palle 
    362       1.1    palle #define RNG_STATE_UNCONFIGURED	0
    363       1.1    palle #define RNG_STATE_CONFIGURED	1
    364       1.1    palle #define RNG_STATE_HEALTHCHECK	2
    365       1.1    palle #define RNG_STATE_ERROR		3
    366       1.1    palle 
    367       1.4    palle #ifndef _LOCORE
    368       1.1    palle int64_t	hv_rng_data_read_diag(paddr_t raddr, uint64_t size, uint64_t *delta);
    369       1.1    palle int64_t	hv_rng_data_read(paddr_t raddr, uint64_t *delta);
    370       1.4    palle #endif
    371       1.1    palle 
    372       1.1    palle /*
    373       1.1    palle  * Error codes
    374       1.1    palle  */
    375       1.1    palle 
    376       1.1    palle #define H_EOK		0
    377       1.1    palle #define H_ENOCPU	1
    378       1.1    palle #define H_ENORADDR	2
    379       1.1    palle #define H_ENOINTR	3
    380       1.1    palle #define H_EBADPGSZ	4
    381       1.1    palle #define H_EBADTSB	5
    382       1.1    palle #define H_EINVAL	6
    383       1.1    palle #define H_EBADTRAP	7
    384       1.1    palle #define H_EBADALIGN	8
    385       1.1    palle #define H_EWOULDBLOCK	9
    386       1.1    palle #define H_ENOACCESS	10
    387       1.1    palle #define H_EIO		11
    388       1.1    palle #define H_ECPUERROR	12
    389       1.1    palle #define H_ENOTSUPPORTED	13
    390       1.1    palle #define H_ENOMAP	14
    391       1.1    palle #define H_ETOOMANY	15
    392       1.1    palle #define H_ECHANNEL	16
    393       1.3    palle 
    394  1.6.30.2  thorpej #ifndef _LOCORE
    395  1.6.30.2  thorpej extern uint64_t sun4v_group_interrupt_major;
    396  1.6.30.2  thorpej extern uint64_t sun4v_group_sdio_major;
    397  1.6.30.2  thorpej 
    398  1.6.30.2  thorpej int64_t sun4v_intr_devino_to_sysino(uint64_t, uint64_t, uint64_t *);
    399  1.6.30.2  thorpej int64_t sun4v_intr_setcookie(uint64_t, uint64_t, uint64_t);
    400  1.6.30.2  thorpej int64_t sun4v_intr_setenabled(uint64_t, uint64_t, uint64_t);
    401  1.6.30.2  thorpej int64_t	sun4v_intr_setstate(uint64_t, uint64_t, uint64_t);
    402  1.6.30.2  thorpej int64_t	sun4v_intr_settarget(uint64_t, uint64_t, uint64_t);
    403  1.6.30.2  thorpej #endif
    404  1.6.30.2  thorpej 
    405       1.3    palle #endif	/* _HYPERVISOR_H_ */
    406