initterm.h revision dced478b440a327fb550155c0f73c1ac968ad93b
49d36b55bcf206ced156a303dab448a75fac001bvboxsync/** @file
5b281ba489ca18f0380d7efc7a5108b606cce449vboxsync * IPRT - Runtime Init/Term.
49d36b55bcf206ced156a303dab448a75fac001bvboxsync */
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync/*
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * Copyright (C) 2006-2007 Sun Microsystems, Inc.
49d36b55bcf206ced156a303dab448a75fac001bvboxsync *
49d36b55bcf206ced156a303dab448a75fac001bvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
49d36b55bcf206ced156a303dab448a75fac001bvboxsync * available from http://www.virtualbox.org. This file is free software;
49d36b55bcf206ced156a303dab448a75fac001bvboxsync * you can redistribute it and/or modify it under the terms of the GNU
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * General Public License (GPL) as published by the Free Software
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync *
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * The contents of this file may alternatively be used under the terms
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * of the Common Development and Distribution License Version 1.0
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * VirtualBox OSE distribution, in which case the provisions of the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * CDDL are applicable instead of those of the GPL.
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync *
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * You may elect to license modified versions of this file under the
a16eb14ad7a4b5ef91ddc22d3e8e92d930f736fcvboxsync * terms and conditions of either the GPL or the CDDL or both.
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync *
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
1c94c0a63ba68be1a7b2c640e70d7a06464e4fcavboxsync * additional information or have any questions.
49d36b55bcf206ced156a303dab448a75fac001bvboxsync */
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
154e1d5579ca6c8bee571a8d1ced5d76a0234030vboxsync#ifndef ___iprt_initterm_h
154e1d5579ca6c8bee571a8d1ced5d76a0234030vboxsync#define ___iprt_initterm_h
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync#include <iprt/cdefs.h>
49d36b55bcf206ced156a303dab448a75fac001bvboxsync#include <iprt/types.h>
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync__BEGIN_DECLS
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
5b281ba489ca18f0380d7efc7a5108b606cce449vboxsync/** @defgroup grp_rt IPRT APIs
49d36b55bcf206ced156a303dab448a75fac001bvboxsync * @{
49d36b55bcf206ced156a303dab448a75fac001bvboxsync */
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync/** @defgroup grp_rt_initterm Init / Term
49d36b55bcf206ced156a303dab448a75fac001bvboxsync * @{
49d36b55bcf206ced156a303dab448a75fac001bvboxsync */
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync#ifdef IN_RING3
49d36b55bcf206ced156a303dab448a75fac001bvboxsync/**
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync * Initializes the runtime library.
49d36b55bcf206ced156a303dab448a75fac001bvboxsync *
49d36b55bcf206ced156a303dab448a75fac001bvboxsync * @returns iprt status code.
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync */
dced478b440a327fb550155c0f73c1ac968ad93bvboxsyncRTR3DECL(int) RTR3Init(void);
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync/**
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync * Initializes the runtime library and try initialize SUPLib too.
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync *
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync * @returns IPRT status code.
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync * @param pszProgramPath The path to the program file.
49d36b55bcf206ced156a303dab448a75fac001bvboxsync *
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync * @remarks Failure to initialize SUPLib is ignored.
49d36b55bcf206ced156a303dab448a75fac001bvboxsync */
dced478b440a327fb550155c0f73c1ac968ad93bvboxsyncRTR3DECL(int) RTR3InitAndSUPLib(void);
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync/**
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync * Initializes the runtime library passing it the program path.
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync *
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync * @returns IPRT status code.
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync * @param pszProgramPath The path to the program file.
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync */
dced478b440a327fb550155c0f73c1ac968ad93bvboxsyncRTR3DECL(int) RTR3InitWithProgramPath(const char *pszProgramPath);
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync/**
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync * Initializes the runtime library passing it the program path,
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync * and try initialize SUPLib too (failures ignored).
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync *
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync * @returns IPRT status code.
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync * @param pszProgramPath The path to the program file.
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync *
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync * @remarks Failure to initialize SUPLib is ignored.
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync */
dced478b440a327fb550155c0f73c1ac968ad93bvboxsyncRTR3DECL(int) RTR3InitAndSUPLibWithProgramPath(const char *pszProgramPath);
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync/**
49d36b55bcf206ced156a303dab448a75fac001bvboxsync * Terminates the runtime library.
49d36b55bcf206ced156a303dab448a75fac001bvboxsync */
49d36b55bcf206ced156a303dab448a75fac001bvboxsyncRTR3DECL(void) RTR3Term(void);
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync
dced478b440a327fb550155c0f73c1ac968ad93bvboxsync#endif /* IN_RING3 */
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync#ifdef IN_RING0
49d36b55bcf206ced156a303dab448a75fac001bvboxsync/**
49d36b55bcf206ced156a303dab448a75fac001bvboxsync * Initalizes the ring-0 driver runtime library.
49d36b55bcf206ced156a303dab448a75fac001bvboxsync *
49d36b55bcf206ced156a303dab448a75fac001bvboxsync * @returns iprt status code.
49d36b55bcf206ced156a303dab448a75fac001bvboxsync * @param fReserved Flags reserved for the future.
49d36b55bcf206ced156a303dab448a75fac001bvboxsync */
49d36b55bcf206ced156a303dab448a75fac001bvboxsyncRTR0DECL(int) RTR0Init(unsigned fReserved);
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync/**
49d36b55bcf206ced156a303dab448a75fac001bvboxsync * Terminates the ring-0 driver runtime library.
49d36b55bcf206ced156a303dab448a75fac001bvboxsync */
49d36b55bcf206ced156a303dab448a75fac001bvboxsyncRTR0DECL(void) RTR0Term(void);
49d36b55bcf206ced156a303dab448a75fac001bvboxsync#endif
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
f25c2612832b605961e651736ef27c3833960c0fvboxsync#ifdef IN_GC
f25c2612832b605961e651736ef27c3833960c0fvboxsync/**
f25c2612832b605961e651736ef27c3833960c0fvboxsync * Initalizes the guest context runtime library.
f25c2612832b605961e651736ef27c3833960c0fvboxsync *
f25c2612832b605961e651736ef27c3833960c0fvboxsync * @returns iprt status code.
f25c2612832b605961e651736ef27c3833960c0fvboxsync *
f25c2612832b605961e651736ef27c3833960c0fvboxsync * @param u64ProgramStartNanoTS The startup timestamp.
f25c2612832b605961e651736ef27c3833960c0fvboxsync */
f25c2612832b605961e651736ef27c3833960c0fvboxsyncRTGCDECL(int) RTGCInit(uint64_t u64ProgramStartNanoTS);
f25c2612832b605961e651736ef27c3833960c0fvboxsync
f25c2612832b605961e651736ef27c3833960c0fvboxsync/**
f25c2612832b605961e651736ef27c3833960c0fvboxsync * Terminates the guest context runtime library.
f25c2612832b605961e651736ef27c3833960c0fvboxsync */
f25c2612832b605961e651736ef27c3833960c0fvboxsyncRTGCDECL(void) RTGCTerm(void);
f25c2612832b605961e651736ef27c3833960c0fvboxsync#endif
f25c2612832b605961e651736ef27c3833960c0fvboxsync
f25c2612832b605961e651736ef27c3833960c0fvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync/** @} */
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync/** @} */
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync__END_DECLS
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync
49d36b55bcf206ced156a303dab448a75fac001bvboxsync#endif
49d36b55bcf206ced156a303dab448a75fac001bvboxsync