~ubuntu-branches/ubuntu/precise/virtualbox/precise-updates

« back to all changes in this revision

Viewing changes to include/iprt/darwin/machkernel.h

  • Committer: Bazaar Package Importer
  • Author(s): Felix Geyer
  • Date: 2011-07-04 13:02:31 UTC
  • mfrom: (3.1.1 sid)
  • Revision ID: james.westby@ubuntu.com-20110704130231-l843es6wqhx614n7
Tags: 4.0.10-dfsg-1ubuntu1
* Merge from Debian unstable, remaining changes:
  - Add Apport hook.
    - debian/virtualbox-ose.files/source_virtualbox-ose.py
    - debian/virtualbox-ose.install
  - Drop *-source packages.
* Add the Modaliases control field manually for maximum backportability.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $Id: machkernel.h $ */
 
2
/** @file
 
3
 * IPRT - mach_kernel symbol resolving hack, R0 Driver, Darwin.
 
4
 */
 
5
 
 
6
/*
 
7
 * Copyright (C) 2011 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 ___iprt_darwin_machkernel_h
 
28
#define ___iprt_darwin_machkernel_h
 
29
 
 
30
#include <iprt/types.h>
 
31
 
 
32
RT_C_DECLS_BEGIN
 
33
 
 
34
/** @defgroup grp_rt_darwin_machkernel  Mach Kernel Symbols (Ring-0 only)
 
35
 * @addtogroup grp_rt
 
36
 * @{
 
37
 */
 
38
 
 
39
/** Handle to the mach kernel symbol database (darwin/r0 only). */
 
40
typedef R3R0PTRTYPE(struct RTR0MACHKERNELINT *) RTR0MACHKERNEL;
 
41
/** Pointer to a mach kernel symbol database handle. */
 
42
typedef RTR0MACHKERNEL                         *PRTR0MACHKERNEL;
 
43
/** Nil mach kernel symbol database handle. */
 
44
#define NIL_RTR0MACHKERNEL                      ((RTR0MACHKERNEL)0)
 
45
 
 
46
 
 
47
/**
 
48
 * Opens symbol table of the mach_kernel.
 
49
 *
 
50
 * @returns IPRT status code.
 
51
 * @param   pszMachKernel   The path to the mach_kernel image.
 
52
 * @param   phKernel        Where to return a mach kernel symbol database
 
53
 *                          handle on success.  Call RTR0MachKernelClose on it
 
54
 *                          when done.
 
55
 */
 
56
RTDECL(int) RTR0MachKernelOpen(const char *pszMachKernel, PRTR0MACHKERNEL phKernel);
 
57
 
 
58
/**
 
59
 * Frees up the internal scratch data when done looking up symbols.
 
60
 *
 
61
 * @param   pThis               The internal scratch data.
 
62
 */
 
63
RTDECL(int) RTR0MachKernelClose(RTR0MACHKERNEL hKernel);
 
64
 
 
65
/**
 
66
 * Looks up a kernel symbol.
 
67
 *
 
68
 * @returns VINF_SUCCESS if found, *ppvValue set.
 
69
 * @retval  VERR_SYMBOL_NOT_FOUND if not found.
 
70
 * @retval  VERR_INVALID_HANDLE
 
71
 * @retval  VERR_INVALID_POINTER
 
72
 *
 
73
 * @param   hKernel             The mach kernel handle.
 
74
 * @param   pszSymbol           The name of the symbol to look up, omitting the
 
75
 *                              leading underscore.
 
76
 * @param   ppvValue            Where to store the symbol address (optional).
 
77
 */
 
78
RTDECL(int) RTR0MachKernelGetSymbol(RTR0MACHKERNEL hKernel, const char *pszSymbol, void **ppvValue);
 
79
 
 
80
/** @} */
 
81
RT_C_DECLS_END
 
82
 
 
83
#endif
 
84