github.com/jlmucb/cloudproxy@v0.0.0-20170830161738-b5aa0b619bc4/cpvmm/vmm/include/vmx_nmi.h (about)

     1  /*
     2   * Copyright (c) 2013 Intel Corporation
     3   *
     4   * Licensed under the Apache License, Version 2.0 (the "License");
     5   * you may not use this file except in compliance with the License.
     6   * You may obtain a copy of the License at
     7   *     http://www.apache.org/licenses/LICENSE-2.0
     8   * Unless required by applicable law or agreed to in writing, software
     9   * distributed under the License is distributed on an "AS IS" BASIS,
    10   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    11   * See the License for the specific language governing permissions and
    12   * limitations under the License.
    13   */
    14  
    15  #ifndef _VMX_NMI_H_
    16  #define _VMX_NMI_H_
    17  
    18  
    19  BOOLEAN nmi_manager_initialize(CPU_ID num_of_cores);
    20  
    21  void    nmi_raise(CPU_ID cpu_id);
    22  void    nmi_clear(CPU_ID cpu_id);
    23  BOOLEAN nmi_is_pending(CPU_ID cpu_id);
    24  void    nmi_raise_this(void);
    25  void    nmi_clear_this(void);
    26  BOOLEAN nmi_is_pending_this(void);
    27  
    28  
    29  // FUNCTION : nmi_resume_handler()
    30  // PURPOSE  : If current CPU is platform NMI owner and unhandled platform NMI
    31  //          : exists on current CPU, sets NMI-Window to get VMEXIT asap.
    32  // ARGUMENTS: GUEST_CPU_HANDLE gcpu
    33  void nmi_resume_handler(GUEST_CPU_HANDLE gcpu);
    34  
    35  // FUNCTION : nmi_vmexit_handler()
    36  // PURPOSE  : Process NMI VMEXIT
    37  // ARGUMENTS: GUEST_CPU_HANDLE gcpu
    38  // RETURNS  : Status which says if VMEXIT was finally handled or
    39  //          : it should be processed by upper layer
    40  // CALLED   : called as bottom-up local handler
    41  VMEXIT_HANDLING_STATUS nmi_vmexit_handler(GUEST_CPU_HANDLE gcpu);
    42  
    43  // FUNCTION : nmi_window_vmexit_handler()
    44  // PURPOSE  : Process NMI Window VMEXIT
    45  // ARGUMENTS: GUEST_CPU_HANDLE gcpu
    46  // RETURNS  : Status which says if VMEXIT was finally handled or
    47  //          : it should be processed by upper layer
    48  // CALLED   : called as bottom-up local handler
    49  VMEXIT_HANDLING_STATUS nmi_window_vmexit_handler(GUEST_CPU_HANDLE gcpu);
    50  
    51  #endif // _VMX_NMI_H_
    52  
    53