diff options
Diffstat (limited to 'usr/src/uts/i86pc/sys')
| -rw-r--r-- | usr/src/uts/i86pc/sys/Makefile | 1 | ||||
| -rw-r--r-- | usr/src/uts/i86pc/sys/apic_common.h | 10 | ||||
| -rw-r--r-- | usr/src/uts/i86pc/sys/hma.h | 10 | ||||
| -rw-r--r-- | usr/src/uts/i86pc/sys/vmm.h | 4 |
4 files changed, 22 insertions, 3 deletions
diff --git a/usr/src/uts/i86pc/sys/Makefile b/usr/src/uts/i86pc/sys/Makefile index e6ea573d0b..ecd87a9538 100644 --- a/usr/src/uts/i86pc/sys/Makefile +++ b/usr/src/uts/i86pc/sys/Makefile @@ -46,6 +46,7 @@ CHKHDRS= \ ddi_subrdefs.h \ debug_info.h \ fastboot.h \ + hma.h \ ht.h \ mach_mmu.h \ machclock.h \ diff --git a/usr/src/uts/i86pc/sys/apic_common.h b/usr/src/uts/i86pc/sys/apic_common.h index 03e851a4dc..58b9bb93a6 100644 --- a/usr/src/uts/i86pc/sys/apic_common.h +++ b/usr/src/uts/i86pc/sys/apic_common.h @@ -23,7 +23,7 @@ * Copyright (c) 2017 by Delphix. All rights reserved. */ /* - * Copyright 2018 Joyent, Inc. + * Copyright 2019, Joyent, Inc. */ #ifndef _SYS_APIC_COMMON_H @@ -155,7 +155,6 @@ extern lock_t apic_nmi_lock; extern lock_t apic_error_lock; /* Patchable global variables. */ -extern int apic_kmdb_on_nmi; /* 0 - no, 1 - yes enter kmdb */ extern uint32_t apic_divide_reg_init; /* 0 - divide by 2 */ extern apic_intrmap_ops_t *apic_vt_ops; @@ -202,6 +201,13 @@ extern int apic_msix_enable; extern uint32_t apic_get_localapicid(uint32_t cpuid); extern uchar_t apic_get_ioapicid(uchar_t ioapicindex); +#define NMI_ACTION_UNSET (0) +#define NMI_ACTION_PANIC (1) +#define NMI_ACTION_IGNORE (2) +#define NMI_ACTION_KMDB (3) + +extern int nmi_action; + #ifdef __cplusplus } #endif diff --git a/usr/src/uts/i86pc/sys/hma.h b/usr/src/uts/i86pc/sys/hma.h index 0c6161fdfc..0f4beb0452 100644 --- a/usr/src/uts/i86pc/sys/hma.h +++ b/usr/src/uts/i86pc/sys/hma.h @@ -38,6 +38,7 @@ extern "C" { */ typedef struct hma_reg hma_reg_t; extern hma_reg_t *hma_register(const char *); +extern hma_reg_t *hma_register_exclusive(const char *); extern void hma_unregister(hma_reg_t *); /* @@ -49,6 +50,15 @@ extern void hma_unregister(hma_reg_t *); extern uint16_t hma_vmx_vpid_alloc(void); extern void hma_vmx_vpid_free(uint16_t); +struct hma_svm_asid { + uint64_t hsa_gen; + uint32_t hsa_asid; +}; +typedef struct hma_svm_asid hma_svm_asid_t; + +extern void hma_svm_asid_init(hma_svm_asid_t *); +extern uint8_t hma_svm_asid_update(hma_svm_asid_t *, boolean_t, boolean_t); + /* * FPU related management. These functions provide a set of APIs to manage the * FPU state and switch between host and guest management of this state. diff --git a/usr/src/uts/i86pc/sys/vmm.h b/usr/src/uts/i86pc/sys/vmm.h index 163c0781cf..e5e5460211 100644 --- a/usr/src/uts/i86pc/sys/vmm.h +++ b/usr/src/uts/i86pc/sys/vmm.h @@ -38,7 +38,7 @@ * http://www.illumos.org/license/CDDL. * * Copyright 2015 Pluribus Networks Inc. - * Copyright 2018 Joyent, Inc. + * Copyright 2019 Joyent, Inc. */ #ifndef _VMM_H_ @@ -741,6 +741,8 @@ void vmm_sol_glue_cleanup(void); int vmm_mod_load(void); int vmm_mod_unload(void); +void vmm_call_trap(uint64_t); + /* * Because of tangled headers, these are mirrored by vmm_drv.h to present the * interface to driver consumers. |
