VirtualBox

source: vbox/trunk/src/VBox/Main/include/UsbCardReader.h

Last change on this file was 98103, checked in by vboxsync, 16 months ago

Copyright year updates by 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: UsbCardReader.h 98103 2023-01-17 14:15:46Z vboxsync $ */
2
3/** @file
4 * VirtualBox Driver interface to the virtual Usb Card Reader.
5 */
6
7/*
8 * Copyright (C) 2011-2023 Oracle and/or its affiliates.
9 *
10 * This file is part of VirtualBox base platform packages, as
11 * available from https://www.virtualbox.org.
12 *
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation, in version 3 of the
16 * License.
17 *
18 * This program is distributed in the hope that it will be useful, but
19 * WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 * General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, see <https://www.gnu.org/licenses>.
25 *
26 * SPDX-License-Identifier: GPL-3.0-only
27 */
28
29#ifndef MAIN_INCLUDED_UsbCardReader_h
30#define MAIN_INCLUDED_UsbCardReader_h
31#ifndef RT_WITHOUT_PRAGMA_ONCE
32# pragma once
33#endif
34
35#include <VBox/vmm/pdmcardreaderinfs.h>
36#include <VBox/vmm/pdmdrv.h>
37
38#define USBCARDREADER_OID "46225eac-10c9-4b57-92b6-e59efd48009f"
39
40class Console;
41typedef struct USBCARDREADER USBCARDREADER;
42typedef struct UCRREMOTE UCRREMOTE;
43
44class UsbCardReader
45{
46 public:
47 UsbCardReader(Console *console);
48 virtual ~UsbCardReader();
49
50 static const PDMDRVREG DrvReg;
51 USBCARDREADER *mpDrv;
52
53 Console *getParent(void) { return mParent; }
54
55 int VRDENotify(uint32_t u32Id, void *pvData, uint32_t cbData);
56 int VRDEResponse(int rcRequest, void *pvUser, uint32_t u32Function, void *pvData, uint32_t cbData);
57
58 int EstablishContext(USBCARDREADER *pDrv);
59 int ReleaseContext(USBCARDREADER *pDrv);
60 int GetStatusChange(USBCARDREADER *pDrv, void *pvUser, uint32_t u32Timeout,
61 PDMICARDREADER_READERSTATE *paReaderStats, uint32_t cReaderStats);
62 int Connect(USBCARDREADER *pDrv, void *pvUser, const char *pszReaderName,
63 uint32_t u32ShareMode, uint32_t u32PreferredProtocols);
64 int Disconnect(USBCARDREADER *pDrv, void *pvUser, uint32_t u32Mode);
65 int Status(USBCARDREADER *pDrv, void *pvUser);
66 int Transmit(USBCARDREADER *pDrv, void *pvUser, PDMICARDREADER_IO_REQUEST *pioSendRequest,
67 uint8_t *pu8SendBuffer, uint32_t cbSendBuffer, uint32_t cbRecvBuffer);
68 int Control(USBCARDREADER *pDrv, void *pvUser, uint32_t u32ControlCode,
69 uint8_t *pu8InBuffer, uint32_t cbInBuffer, uint32_t cbOutBuffer);
70 int GetAttrib(USBCARDREADER *pDrv, void *pvUser, uint32_t u32AttrId, uint32_t cbAttrib);
71 int SetAttrib(USBCARDREADER *pDrv, void *pvUser, uint32_t u32AttrId,
72 uint8_t *pu8Attrib, uint32_t cbAttrib);
73
74 private:
75 static DECLCALLBACK(void *) drvQueryInterface(PPDMIBASE pInterface, const char *pszIID);
76 static DECLCALLBACK(int) drvConstruct(PPDMDRVINS pDrvIns, PCFGMNODE pCfg, uint32_t fFlags);
77 static DECLCALLBACK(void) drvDestruct(PPDMDRVINS pDrvIns);
78
79 int vrdeSCardRequest(void *pvUser, uint32_t u32Function, const void *pvData, uint32_t cbData);
80
81 Console * const mParent;
82
83 UCRREMOTE *m_pRemote;
84};
85
86#endif /* !MAIN_INCLUDED_UsbCardReader_h */
87/* vi: set tabstop=4 shiftwidth=4 expandtab: */
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use