github.com/jlmucb/cloudproxy@v0.0.0-20170830161738-b5aa0b619bc4/cpvmm/vmm/bootstrap/x32_init64.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  
    16  #ifndef _X32_INIT64_H_
    17  #define _X32_INIT64_H_
    18  
    19  #include "ia32_defs.h"
    20  
    21  typedef struct _INIT32_STRUCT {
    22      UINT32      i32_low_memory_page;   // address of page for AP bootstrap
    23      UINT16      i32_num_of_aps;        // number of APs
    24      UINT16      i32_pad;
    25      UINT32*     i32_esp;               // array of 32-bit SPs 
    26  } INIT32_STRUCT;
    27  
    28  typedef struct _INIT64_STRUCT {
    29      UINT32      i64_cs;         // 64-bit code segment selector
    30      IA32_GDTR   i64_gdtr;       // still in 32-bit format
    31      UINT64      i64_efer;       // EFER minimal required value
    32      UINT32      i64_cr3;        // 32-bit value of CR3
    33  } INIT64_STRUCT;
    34  
    35  
    36  #endif // _X32_INIT64_H_
    37  
    38