VirtualBox

source: vbox/trunk/src/VBox/ValidationKit/bootsectors/bs3kit/bs3-cmn-paging.h@ 60311

Last change on this file since 60311 was 60311, checked in by vboxsync, 9 years ago

bs3kit: Use \#define with BS3_DATA_NM to map data symbols to names accessible in all context. (Underscores in 16-bit and 32-bit, no underscores in 64-bit.) Detect PSE.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.1 KB
Line 
1/* $Id: bs3-cmn-paging.h 60311 2016-04-04 17:01:14Z vboxsync $ */
2/** @file
3 * BS3Kit - Internal Paging Structures, Variables and Functions.
4 */
5
6/*
7 * Copyright (C) 2007-2016 Oracle Corporation
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License (GPL) as published by the Free Software
13 * Foundation, in version 2 as it comes in the "COPYING" file of the
14 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16 *
17 * The contents of this file may alternatively be used under the terms
18 * of the Common Development and Distribution License Version 1.0
19 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
20 * VirtualBox OSE distribution, in which case the provisions of the
21 * CDDL are applicable instead of those of the GPL.
22 *
23 * You may elect to license modified versions of this file under the
24 * terms and conditions of either the GPL or the CDDL or both.
25 */
26
27#ifndef ___bs3_cmn_paging_h
28#define ___bs3_cmn_paging_h
29
30#include "bs3kit.h"
31#include <iprt/asm.h>
32
33RT_C_DECLS_BEGIN;
34
35/** Root directory for page protected mode.
36 * UINT32_MAX if not initialized. */
37#ifndef DOXYGEN_RUNNING
38# define g_PhysPagingRootPP BS3_DATA_NM(g_PhysPagingRootPP)
39#endif
40extern uint32_t g_PhysPagingRootPP;
41/** Root directory pointer table for PAE mode.
42 * UINT32_MAX if not initialized. */
43#ifndef DOXYGEN_RUNNING
44# define g_PhysPagingRootPAE BS3_DATA_NM(g_PhysPagingRootPAE)
45#endif
46extern uint32_t g_PhysPagingRootPAE;
47/** Root table (level 4) for long mode.
48 * UINT32_MAX if not initialized. */
49#ifndef DOXYGEN_RUNNING
50# define g_PhysPagingRootLM BS3_DATA_NM(g_PhysPagingRootLM)
51#endif
52extern uint32_t g_PhysPagingRootLM;
53
54RT_C_DECLS_END;
55
56
57#define bs3PagingGetLegacyPte BS3_CMN_NM(bs3PagingGetLegacyPte)
58BS3_DECL(X86PTE BS3_FAR *) bs3PagingGetLegacyPte(RTCCUINTXREG cr3, uint32_t uFlat, bool fUseInvlPg, int *prc);
59
60#define bs3PagingGetPte BS3_CMN_NM(bs3PagingGetPte)
61BS3_DECL(X86PTEPAE BS3_FAR *) bs3PagingGetPte(RTCCUINTXREG cr3, uint64_t uFlat, bool fUseInvlPg, int *prc);
62
63
64#endif
65
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette