VirtualBox

source: vbox/trunk/src/VBox/Debugger/DBGCIoProvInternal.h@ 94369

Last change on this file since 94369 was 93115, checked in by vboxsync, 3 years ago

scm --update-copyright-year

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.9 KB
Line 
1/* $Id: DBGCIoProvInternal.h 93115 2022-01-01 11:31:46Z vboxsync $ */
2/** @file
3 * DBGC - Debugger Console, Internal I/O provider header file.
4 */
5
6/*
7 * Copyright (C) 2020-2022 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
18#ifndef DEBUGGER_INCLUDED_SRC_DBGCIoProvInternal_h
19#define DEBUGGER_INCLUDED_SRC_DBGCIoProvInternal_h
20#ifndef RT_WITHOUT_PRAGMA_ONCE
21# pragma once
22#endif
23
24
25/*******************************************************************************
26* Header Files *
27*******************************************************************************/
28#include <VBox/dbg.h>
29#include <VBox/err.h>
30#include <VBox/vmm/cfgm.h>
31
32
33/*******************************************************************************
34* Structures and Typedefs *
35*******************************************************************************/
36
37/** An Opaque I/O provider handle. */
38typedef struct DBGCIOPROVINT *DBGCIOPROV;
39/** Pointer to an opaque I/O provider handle. */
40typedef DBGCIOPROV *PDBGCIOPROV;
41
42
43/**
44 * I/O provider registration record.
45 */
46typedef struct DBGCIOPROVREG
47{
48 /** Unique name for the I/O provider. */
49 const char *pszName;
50 /** I/O provider description. */
51 const char *pszDesc;
52
53 /**
54 * Creates an I/O provider instance from the given config.
55 *
56 * @returns VBox status code.
57 * @param phDbgcIoProv Where to store the handle to the I/O provider instance on success.
58 * @param pCfg The config to use.
59 */
60 DECLCALLBACKMEMBER(int, pfnCreate, (PDBGCIOPROV phDbgcIoProv, PCFGMNODE pCfg));
61
62 /**
63 * Destroys the given I/O provider instance.
64 *
65 * @returns nothing.
66 * @param hDbgcIoProv The I/O provider instance handle to destroy.
67 */
68 DECLCALLBACKMEMBER(void, pfnDestroy, (DBGCIOPROV hDbgcIoProv));
69
70 /**
71 * Waits for someone to connect to the provider instance.
72 *
73 * @returns VBox status code.
74 * @retval VERR_TIMEOUT if the waiting time was exceeded without anyone connecting.
75 * @retval VERR_INTERRUPTED if the waiting was interrupted by DBGCIOPROVREG::pfnWaitInterrupt.
76 * @param hDbgcIoProv The I/O provider instance handle.
77 * @param cMsTimeout Number of milliseconds to wait, use RT_INDEFINITE_WAIT to wait indefinitely.
78 * @param ppDbgcIo Where to return the I/O connection callback table upon a succesful return.
79 */
80 DECLCALLBACKMEMBER(int, pfnWaitForConnect, (DBGCIOPROV hDbgcIoProv, RTMSINTERVAL cMsTimeout, PCDBGCIO *ppDbgcIo));
81
82 /**
83 * Interrupts the thread waiting in DBGCIOPROVREG::pfnWaitForConnect.
84 *
85 * @returns VBox status code.
86 * @param hDbgcIoProv The I/O provider instance handle.
87 */
88 DECLCALLBACKMEMBER(int, pfnWaitInterrupt, (DBGCIOPROV hDbgcIoProv));
89
90} DBGCIOPROVREG;
91/** Pointer to an I/O provider registration record. */
92typedef DBGCIOPROVREG *PDBGCIOPROVREG;
93/** Pointer toa const I/O provider registration record. */
94typedef const DBGCIOPROVREG *PCDBGCIOPROVREG;
95
96
97/*******************************************************************************
98* Global Variables *
99*******************************************************************************/
100extern const DBGCIOPROVREG g_DbgcIoProvTcp;
101extern const DBGCIOPROVREG g_DbgcIoProvIpc;
102
103
104#endif /* !DEBUGGER_INCLUDED_SRC_DBGCIoProvInternal_h */
105
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette