x86context.h revision 17ba03925269c071aa1567eb8c5a49c37a65f62f
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk/* $Id$ */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk/** @file
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * VMM - Context switcher macros & definitions
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk/*
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * Copyright (C) 2006-2007 innotek GmbH
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk *
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * This file is part of VirtualBox Open Source Edition (OSE), as
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * available from http://www.virtualbox.org. This file is free software;
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * you can redistribute it and/or modify it under the terms of the GNU
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * General Public License as published by the Free Software Foundation,
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * distribution. VirtualBox OSE is distributed in the hope that it will
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * be useful, but WITHOUT ANY WARRANTY of any kind.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk *
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * If you received this file as part of a commercial VirtualBox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * distribution, then only the terms of your commercial VirtualBox
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk * license agreement apply instead of the previous paragraph.
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk */
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#ifndef ___X86CONTEXT_H
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define ___X86CONTEXT_H
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#include <VBox/types.h>
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk// Selector types (memory/system)
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_READONLY 0
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_READONLY_ACC 1
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_READWRITE 2
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_READWRITE_ACC 3
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_READONLY_EXPDOWN 4
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_READONLY_EXPDOWN_ACC 5
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_READWRITE_EXPDOWN 6
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_READWRITE_EXPDOWN_ACC 7
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_EXECUTEONLY 8
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_EXECUTEONLY_ACC 9
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_EXECUTEREAD 0xA
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_EXECUTEREAD_ACC 0xB
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_EXECUTEONLY_CONF 0xC
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_EXECUTEONLY_CONF_ACC 0xD
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_EXECUTEREAD_CONF 0xE
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_MEM_EXECUTEREAD_CONF_ACC 0xF
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_UNDEFINED 0
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_286_TSS_AVAIL 1
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_LDT 2
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_286_TSS_BUSY 3
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_286_CALL_GATE 4
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_TASK_GATE 5
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_286_INT_GATE 6
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_286_TRAP_GATE 7
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_UNDEFINED2 8
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_386_TSS_AVAIL 9
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_UNDEFINED3 0xA
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_386_TSS_BUSY 0xB
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_386_CALL_GATE 0xC
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_UNDEFINED4 0xD
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_386_INT_GATE 0xE
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#define X86_SELTYPE_SYS_386_TRAP_GATE 0xF
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk#endif
4b8d88eb610aa1e0bb6ec632f792744b3d6b5f22jeff.schenk