VirtualBox

Changeset 35959 in vbox


Ignore:
Timestamp:
Feb 14, 2011 2:30:03 PM (14 years ago)
Author:
vboxsync
Message:

PCI: further R0/driver work

Location:
trunk
Files:
3 edited

Legend:

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

    r35946 r35959  
    4848{
    4949    /* in */
    50     RTHCPHYS             StartAddress;
     50    RTGCPHYS             StartAddress;
    5151    uint64_t             iRegionSize;
    5252    uint32_t             fFlags;
     
    130130} PCIRAWREQPCICFGREAD;
    131131
     132
     133/**
     134 * Handle for the raw PCI device.
     135 */
     136typedef RTR0PTR PCIRAWDEVHANDLE;
     137
    132138/**
    133139 * Request buffer use for communication with the driver.
     
    144150    int32_t         iRequest;
    145151    /** Host device request targetted to. */
    146     uint32_t        TargetDevice;
     152    PCIRAWDEVHANDLE TargetDevice;
    147153    /** Call parameters. */
    148154    union
     
    160166} PCIRAWSENDREQ;
    161167typedef PCIRAWSENDREQ *PPCIRAWSENDREQ;
    162 
    163168
    164169/**
     
    222227     */
    223228    DECLR0CALLBACKMEMBER(void, pfnRelease,(PRAWPCIDEVPORT pPort));
     229
     230    /**
     231     * Init device.
     232     *
     233     * @param   pPort     Pointer to this structure.
     234     * @param   fFlags    Initialization flags.
     235     */
     236    DECLR0CALLBACKMEMBER(int,  pfnInit,(PRAWPCIDEVPORT pPort,
     237                                        uint32_t       fFlags));
    224238   
     239   
     240
    225241    /** Structure version number. (RAWPCIDEVPORT_VERSION) */
    226242    uint32_t u32VersionEnd;
     
    267283} RAWPCIFACTORY;
    268284
    269 
    270285#define RAWPCIFACTORY_UUID_STR "c0268f49-e1e4-402b-b7e0-eb8d09659a9b"
    271286
  • trunk/src/VBox/HostDrivers/VBoxPci/VBoxPci.c

    r35946 r35959  
    8585}
    8686
     87/**
     88 * @copydoc RAWPCIDEVPORT:: pfnRelease
     89 */
     90DECLHIDDEN(int) vboxPciDevInit(PRAWPCIDEVPORT pThis, uint32_t fFlags)
     91{
     92    return VINF_SUCCESS;
     93}
     94
    8795
    8896/**
     
    113121    pNew->DevPort.pfnRetain             = vboxPciDevRetain;
    114122    pNew->DevPort.pfnRelease            = vboxPciDevRelease;
     123    pNew->DevPort.pfnInit               = vboxPciDevInit;
    115124    pNew->DevPort.u32VersionEnd         = RAWPCIDEVPORT_VERSION;
    116125   
    117126    rc = RTSpinlockCreate(&pNew->hSpinlock);
    118     if (RT_SUCCESS(rc))
    119     {
    120         *ppDevPort = &pNew->DevPort;
     127
     128    if (RT_SUCCESS(rc))
     129    {
     130        rc = pNew->DevPort.pfnInit(&pNew->DevPort, fFlags);
     131        if (RT_SUCCESS(rc))
     132        {
     133            *ppDevPort = &pNew->DevPort;
     134        }
     135        else
     136        {
     137            RTSpinlockDestroy(pNew->hSpinlock);
     138            RTMemFree(pNew);
     139        }
    121140        return rc;
    122141    }
  • trunk/src/VBox/VMM/VMMR0/VMMR0.cpp

    r35902 r35959  
    11791179            if (u64Arg || !pReqHdr || !vmmR0IsValidSession(pVM, ((PPCIRAWSENDREQ)pReqHdr)->pSession, pSession) || idCpu != NIL_VMCPUID)
    11801180                return VERR_INVALID_PARAMETER;
    1181             return PciRawR0ProcessReq(pSession, (PPCIRAWSENDREQ)pReqHdr);
     1181            return PciRawR0ProcessReq(pSession, pVM, (PPCIRAWSENDREQ)pReqHdr);
    11821182#endif
    11831183        /*
     
    15531553    RTAssertMsg2V(pszFormat, va);
    15541554}
    1555 
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