VirtualBox

Changeset 35946 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Feb 11, 2011 5:58:30 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
70000
Message:

VMM, host drivers: IDC work for PCI

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/rawpci.h

    r35920 r35946  
    189189} PCIRAWR0OPERATION;
    190190
     191/** Forward declarations. */
     192typedef struct RAWPCIFACTORY *PRAWPCIFACTORY;
     193typedef struct RAWPCIDEVPORT *PRAWPCIDEVPORT;
     194
     195/**
     196 * This is the port on the device interface, i.e. the driver side which the
     197 * host device is connected to.
     198 *
     199 * This is only used for the in-kernel PCI device connections.
     200 */
     201typedef struct RAWPCIDEVPORT
     202{
     203    /** Structure version number. (RAWPCIDEVPORT_VERSION) */
     204    uint32_t u32Version;
     205
     206    /**
     207     * Retain the object.
     208     *
     209     * It will normally be called while owning the internal semaphore.
     210     *
     211     * @param   pPort     Pointer to this structure.
     212     */
     213    DECLR0CALLBACKMEMBER(void, pfnRetain,(PRAWPCIDEVPORT pPort));
     214
     215    /**
     216     * Releases the object.
     217     *
     218     * This must be called for every pfnRetain call.
     219     *
     220     *
     221     * @param   pPort     Pointer to this structure.
     222     */
     223    DECLR0CALLBACKMEMBER(void, pfnRelease,(PRAWPCIDEVPORT pPort));
     224   
     225    /** Structure version number. (RAWPCIDEVPORT_VERSION) */
     226    uint32_t u32VersionEnd;
     227} RAWPCIDEVPORT;
     228/** Version number for the RAWPCIDEVPORT::u32Version and RAWPCIIFPORT::u32VersionEnd fields. */
     229#define RAWPCIDEVPORT_VERSION   UINT32_C(0xAFBDCC01)
     230
     231/**
     232 * The component factory interface for create a raw PCI interfaces.
     233 */
     234typedef struct RAWPCIFACTORY
     235{
     236    /**
     237     * Release this factory.
     238     *
     239     * SUPR0ComponentQueryFactory (SUPDRVFACTORY::pfnQueryFactoryInterface to be precise)
     240     * will retain a reference to the factory and the caller has to call this method to
     241     * release it once the pfnCreateAndConnect call(s) has been done.
     242     *
     243     * @param   pIfFactory          Pointer to this structure.
     244     */
     245    DECLR0CALLBACKMEMBER(void, pfnRelease,(PRAWPCIFACTORY pFactory));
     246
     247    /**
     248     * Create an instance for the specfied host PCI card and connects it
     249     * to the driver.
     250     *
     251     *
     252     * @returns VBox status code.
     253     *
     254     * @param   pIfFactory          Pointer to this structure.
     255     * @param   u32HostAddress      Address of PCI device on the host.
     256     * @param   fFlags              Creation flags.
     257     * @param   ppDevPort           Where to store the pointer to the device port
     258     *                              on success.
     259     *
     260     */
     261    DECLR0CALLBACKMEMBER(int, pfnCreateAndConnect,(PRAWPCIFACTORY       pFactory,
     262                                                   uint32_t             u32HostAddress,
     263                                                   uint32_t             fFlags,
     264                                                   PRAWPCIDEVPORT       *ppDevPort));
     265
     266
     267} RAWPCIFACTORY;
     268
     269
     270#define RAWPCIFACTORY_UUID_STR "c0268f49-e1e4-402b-b7e0-eb8d09659a9b"
     271
    191272RT_C_DECLS_END
    192273
Note: See TracChangeset for help on using the changeset viewer.

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