blob: 3a44b5062d1ca4504124dbddf2a37550c880aa4e [file] [log] [blame]
// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Parts of this file are derived from
// zircon/kernel/arch/x86/include/arch/x86/interrupts.h.
#pragma once
// x86 architectural values
namespace inferior_control {
constexpr unsigned X86_EFLAGS_TF_MASK = 0x100;
enum X86InterruptVector {
X86_INT_DIVIDE_0 = 0,
X86_INT_DEBUG,
X86_INT_NMI,
X86_INT_BREAKPOINT,
X86_INT_OVERFLOW,
X86_INT_BOUND_RANGE,
X86_INT_INVALID_OP,
X86_INT_DEVICE_NA,
X86_INT_DOUBLE_FAULT,
X86_INT_COPROCESSOR_SEGMENT_OVERRUN, // i386 or earlier only
X86_INT_INVALID_TSS,
X86_INT_SEGMENT_NOT_PRESENT,
X86_INT_STACK_FAULT,
X86_INT_GP_FAULT,
X86_INT_PAGE_FAULT,
X86_INT_RESERVED,
X86_INT_FPU_FP_ERROR,
X86_INT_ALIGNMENT_CHECK,
X86_INT_MACHINE_CHECK,
X86_INT_SIMD_FP_ERROR,
X86_INT_VIRT,
X86_INT_MAX_INTEL_DEFINED = 0x1f,
X86_INT_PLATFORM_BASE = 0x20,
X86_INT_PLATFORM_MAX = 0xef,
X86_INT_LOCAL_APIC_BASE = 0xf0,
X86_INT_APIC_SPURIOUS = 0xf0,
X86_INT_APIC_TIMER,
X86_INT_APIC_ERROR,
X86_INT_IPI_GENERIC,
X86_INT_IPI_RESCHEDULE,
X86_INT_IPI_HALT,
MAX_X86_INT = 0xff,
};
} // namespace inferior_control