github.com/jlmucb/cloudproxy@v0.0.0-20170830161738-b5aa0b619bc4/cpvmm/vmm/include/pat_manager.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 PAT_MANAGER_H
    16  #define PAT_MANAGER_H
    17  
    18  #include <vmm_defs.h>
    19  #include <vmm_startup.h>
    20  #include <vmm_phys_mem_types.h>
    21  #include <guest_cpu.h>
    22  
    23  #define PAT_MNGR_INVALID_PAT_INDEX 0xffffffff
    24  
    25  UINT32 pat_mngr_get_earliest_pat_index_for_mem_type(VMM_PHYS_MEM_TYPE mem_type, 
    26                  UINT64 pat_msr_value);
    27  
    28  UINT32 pat_mngr_retrieve_current_earliest_pat_index_for_mem_type(
    29                  VMM_PHYS_MEM_TYPE mem_type);
    30  
    31  VMM_PHYS_MEM_TYPE pat_mngr_retrieve_current_pat_mem_type(UINT32 pat_index);
    32  
    33  BOOLEAN pat_mngr_get_pat_information(GUEST_CPU_HANDLE gcpu,
    34                  UINT64* guest_pat, UINT64* host_pat);
    35  #endif