/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
*/
#ifndef _SYS_HYPERVISOR_API_H
#define _SYS_HYPERVISOR_API_H
/*
* sun4v Hypervisor API
*
* Reference: api.pdf Revision 0.12 dated May 12, 2004.
* io-api.txt version 1.11 dated 10/19/2004
*/
#ifdef __cplusplus
extern "C" {
#endif
/*
* Trap types
*/
/*
* Error returns in %o0.
* (Additional result is returned in %o1.)
*/
/* without blocking */
/* no translation exists */
/*
* Mondo CPU ID argument processing.
*/
/*
* Function numbers for FAST_TRAP.
*/
#ifdef SET_MMU_STATS
#endif /* SET_MMU_STATS */
/*
* Function numbers for CORE_TRAP.
*/
/*
* Definitions for MACH_SOFT_STATE routines
*/
/*
* Bits for MMU functions flags argument:
* arg3 of MMU_MAP_ADDR
* arg3 of MMU_DEMAP_CTX
* arg2 of MMU_DEMAP_ALL
*/
/*
* Interrupt state manipulation definitions.
*/
#define HV_INTR_IDLE_STATE 0
#define HV_INTR_NOTVALID 0
#ifndef _ASM
/*
* TSB description structure for MMU_TSB_CTX0 and MMU_TSB_CTXNON0.
*/
typedef struct hv_tsb_info {
#ifdef SET_MMU_STATS
#ifndef TTE4V_NPGSZ
#endif /* TTE4V_NPGSZ */
/*
* MMU statistics structure for MMU_STAT_AREA
*/
struct mmu_stat_one {
};
struct mmu_stat {
};
#endif /* SET_MMU_STATS */
#endif /* ! _ASM */
/*
* CPU States
*/
/*
* MMU fault status area
*/
/*
* MMU fault status - MMFSA_IFS and MMFSA_DFS
*/
/*
* DMA sync parameter definitions
*/
/*
* LDC Channel States
*/
/*
* LDC mapin table types
*/
#ifndef _ASM
extern uint64_t hv_mmu_unmap_perm_addr(void *, int, int);
extern uint64_t hv_mach_sir(void);
#ifdef SET_MMU_STATS
#endif /* SET_MMU_STATS */
extern uint64_t hv_cpu_yield(void);
int *intr_valid_state);
int intr_valid_state);
int *intr_state);
int *intr_valid_state);
int intr_valid_state);
int *intr_state);
int intr_state);
extern uint64_t hv_guest_suspend(void);
#endif /* ! _ASM */
#ifdef __cplusplus
}
#endif
#endif /* _SYS_HYPERVISOR_API_H */