VirtualBox

source: vbox/trunk/src/VBox/Devices/USB/VUSBSnifferInternal.h@ 77807

Last change on this file since 77807 was 76565, checked in by vboxsync, 6 years ago

Devices: Use VBOX_INCLUDED_SRC_ as header guard prefix with scm.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.3 KB
Line 
1/* $Id: VUSBSnifferInternal.h 76565 2019-01-01 04:23:20Z vboxsync $ */
2/** @file
3 * Virtual USB Sniffer facility - Internal header.
4 */
5
6/*
7 * Copyright (C) 2016-2019 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 VBOX_INCLUDED_SRC_USB_VUSBSnifferInternal_h
19#define VBOX_INCLUDED_SRC_USB_VUSBSnifferInternal_h
20#ifndef RT_WITHOUT_PRAGMA_ONCE
21# pragma once
22#endif
23
24#include <VBox/cdefs.h>
25#include <VBox/types.h>
26
27#include "VUSBSniffer.h"
28
29RT_C_DECLS_BEGIN
30
31/** Pointer to a stream operations structure. */
32typedef struct VUSBSNIFFERSTRM *PVUSBSNIFFERSTRM;
33/** Pointer to the internal format specific state. */
34typedef struct VUSBSNIFFERFMTINT *PVUSBSNIFFERFMTINT;
35
36/**
37 * Stream operations structure.
38 */
39typedef struct VUSBSNIFFERSTRM
40{
41 /**
42 * Write the given buffer to the underlying stream.
43 *
44 * @returns VBox status code.
45 * @param pStrm The pointer to the interface containing this method.
46 * @param pvBuf The buffer to write.
47 * @param cbBuf How many bytes to write.
48 */
49 DECLR3CALLBACKMEMBER(int, pfnWrite, (PVUSBSNIFFERSTRM pStrm, const void *pvBuf, size_t cbBuf));
50
51} VUSBSNIFFERSTRM;
52
53
54/**
55 * VUSB Sniffer format backend.
56 */
57typedef struct VUSBSNIFFERFMT
58{
59 /** Name of the format. */
60 char szName[16];
61 /** Description of the format. */
62 const char *pszDesc;
63 /** Supported file extensions - terminated with a NULL entry. */
64 const char **papszFileExts;
65 /** Size of the format specific state structure in bytes. */
66 size_t cbFmt;
67
68 /**
69 * Initializes the format.
70 *
71 * @returns VBox status code.
72 * @param pThis Pointer to the unitialized format specific state.
73 * @param pStrm The stream to use for writing.
74 */
75 DECLR3CALLBACKMEMBER(int, pfnInit, (PVUSBSNIFFERFMTINT pThis, PVUSBSNIFFERSTRM pStrm));
76
77 /**
78 * Destroys the format instance.
79 *
80 * @returns nothing.
81 * @param pThis Pointer to the format specific state.
82 */
83 DECLR3CALLBACKMEMBER(void, pfnDestroy, (PVUSBSNIFFERFMTINT pThis));
84
85 /**
86 * Records the given VUSB event.
87 *
88 * @returns VBox status code.
89 * @param pThis Pointer to the format specific state.
90 * @param pUrb The URB triggering the event.
91 * @param enmEvent The type of event to record.
92 */
93 DECLR3CALLBACKMEMBER(int, pfnRecordEvent, (PVUSBSNIFFERFMTINT pThis, PVUSBURB pUrb, VUSBSNIFFEREVENT enmEvent));
94
95} VUSBSNIFFERFMT;
96/** Pointer to a VUSB Sniffer format backend. */
97typedef VUSBSNIFFERFMT *PVUSBSNIFFERFMT;
98/** Pointer to a const VUSB Sniffer format backend. */
99typedef const VUSBSNIFFERFMT *PCVUSBSNIFFERFMT;
100
101/** PCAP-Ng format writer. */
102extern const VUSBSNIFFERFMT g_VUsbSnifferFmtPcapNg;
103/** VMware VMX log format writer. */
104extern const VUSBSNIFFERFMT g_VUsbSnifferFmtVmx;
105/** Linux UsbMon log format writer. */
106extern const VUSBSNIFFERFMT g_VUsbSnifferFmtUsbMon;
107
108RT_C_DECLS_END
109#endif /* !VBOX_INCLUDED_SRC_USB_VUSBSnifferInternal_h */
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