1*5d9d9091SRichard Lowe/* 2*5d9d9091SRichard Lowe * This file and its contents are supplied under the terms of the 3*5d9d9091SRichard Lowe * Common Development and Distribution License ("CDDL"), version 1.0. 4*5d9d9091SRichard Lowe * You may only use this file in accordance with the terms of version 5*5d9d9091SRichard Lowe * 1.0 of the CDDL. 6*5d9d9091SRichard Lowe * 7*5d9d9091SRichard Lowe * A full copy of the text of the CDDL should have accompanied this 8*5d9d9091SRichard Lowe * source. A copy of the CDDL is also available via the Internet at 9*5d9d9091SRichard Lowe * http://www.illumos.org/license/CDDL. 10*5d9d9091SRichard Lowe */ 11*5d9d9091SRichard Lowe 12*5d9d9091SRichard Lowe/* 13*5d9d9091SRichard Lowe * Copyright 2019 Joyent, Inc. 14*5d9d9091SRichard Lowe */ 15*5d9d9091SRichard Lowe 16*5d9d9091SRichard Lowe 17*5d9d9091SRichard Lowe#include <sys/asm_linkage.h> 18*5d9d9091SRichard Lowe 19*5d9d9091SRichard Lowe ENTRY_NP(hma_vmx_vmxon) 20*5d9d9091SRichard Lowe push %rbp 21*5d9d9091SRichard Lowe movq %rsp, %rbp 22*5d9d9091SRichard Lowe pushq %rdi 23*5d9d9091SRichard Lowe 24*5d9d9091SRichard Lowe xorl %eax, %eax 25*5d9d9091SRichard Lowe vmxon -0x8(%rbp) 26*5d9d9091SRichard Lowe ja 1f /* CF=0, ZF=0 (success) */ 27*5d9d9091SRichard Lowe incl %eax 28*5d9d9091SRichard Lowe1: 29*5d9d9091SRichard Lowe 30*5d9d9091SRichard Lowe leave 31*5d9d9091SRichard Lowe ret 32*5d9d9091SRichard Lowe SET_SIZE(hma_vmx_vmxon) 33*5d9d9091SRichard Lowe 34*5d9d9091SRichard Lowe ENTRY_NP(hma_vmx_do_invept) 35*5d9d9091SRichard Lowe push %rbp 36*5d9d9091SRichard Lowe movq %rsp, %rbp 37*5d9d9091SRichard Lowe pushq %rdi 38*5d9d9091SRichard Lowe pushq %rsi 39*5d9d9091SRichard Lowe 40*5d9d9091SRichard Lowe /* build INVEPT descriptor on stack */ 41*5d9d9091SRichard Lowe xorl %eax, %eax 42*5d9d9091SRichard Lowe pushq %rax; 43*5d9d9091SRichard Lowe pushq %rsi 44*5d9d9091SRichard Lowe 45*5d9d9091SRichard Lowe invept (%rsp), %rdi 46*5d9d9091SRichard Lowe ja 1f /* CF=0, ZF=0 (success) */ 47*5d9d9091SRichard Lowe incl %eax 48*5d9d9091SRichard Lowe1: 49*5d9d9091SRichard Lowe 50*5d9d9091SRichard Lowe leave 51*5d9d9091SRichard Lowe ret 52*5d9d9091SRichard Lowe SET_SIZE(hma_vmx_do_invept) 53