0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync/** @file
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * DBGF - Debugger Facility, VM Core File Format.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync/*
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * Copyright (C) 2010 Oracle Corporation
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync *
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * available from http://www.virtualbox.org. This file is free software;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * you can redistribute it and/or modify it under the terms of the GNU
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * General Public License (GPL) as published by the Free Software
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync *
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * The contents of this file may alternatively be used under the terms
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * of the Common Development and Distribution License Version 1.0
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * VirtualBox OSE distribution, in which case the provisions of the
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * CDDL are applicable instead of those of the GPL.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync *
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * You may elect to license modified versions of this file under the
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * terms and conditions of either the GPL or the CDDL or both.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync#ifndef ___VBox_vmm_dbgfcore_h
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync#define ___VBox_vmm_dbgfcore_h
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync#include <VBox/types.h>
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync#include <VBox/vmm/cpumctx.h>
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync#include <iprt/assert.h>
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsyncRT_C_DECLS_BEGIN
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync/** @addgroup grp_dbgf_corefmt VM Core File Format
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * @ingroup grp_dbgf
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync *
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * @todo Add description of the core file format and how the structures in this
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * file relate to it. Point to CPUMCTX in cpum.h for the CPU state.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * @todo Add the note names.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync *
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * @{
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync/** DBGCORECOREDESCRIPTOR::u32Magic. */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync#define DBGFCORE_MAGIC UINT32_C(0xc01ac0de)
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync/** DBGCORECOREDESCRIPTOR::u32FmtVersion. */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync#define DBGFCORE_FMT_VERSION UINT32_C(0x00010000)
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync/**
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync * The DBGF Core descriptor.
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsynctypedef struct DBGFCOREDESCRIPTOR
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync{
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync /** The core file magic (DBGFCORE_MAGIC) */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync uint32_t u32Magic;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync /** The core file format version (DBGFCORE_FMT_VERSION). */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync uint32_t u32FmtVersion;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync /** Size of this structure (sizeof(DBGFCOREDESCRIPTOR)). */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync uint32_t cbSelf;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync /** VirtualBox version. */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync uint32_t u32VBoxVersion;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync /** VirtualBox revision. */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync uint32_t u32VBoxRevision;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync /** Number of CPUs. */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync uint32_t cCpus;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync} DBGFCOREDESCRIPTOR;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsyncAssertCompileSizeAlignment(DBGFCOREDESCRIPTOR, 8);
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync/** Pointer to DBGFCOREDESCRIPTOR data. */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsynctypedef DBGFCOREDESCRIPTOR *PDBGFCOREDESCRIPTOR;
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync/** @} */
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsyncRT_C_DECLS_END
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync#endif
0b74a2f80aba476dc8be8bc1c63891fc53945986vboxsync