VirtualBox

Changeset 35855 in vbox for trunk/src/VBox/VMM


Ignore:
Timestamp:
Feb 4, 2011 5:02:44 PM (14 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
69856
Message:

PCI: start of driver communication infrastructure

Location:
trunk/src/VBox/VMM
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/Makefile.kmk

    r35572 r35855  
    437437  VMMR0_DEFS    += VBOX_WITH_VMMR0_DISABLE_PREEMPTION
    438438 endif
     439 ifdef VBOX_WITH_PCI_PASSTHROUGH
     440  VMMR0_DEFS    += VBOX_WITH_PCI_PASSTHROUGH IN_PCIRAW_R0
     441 endif
    439442 VMMR0_DEFS.darwin = VMM_R0_SWITCH_STACK
    440443 VMMR0_DEFS.darwin.x86 = \
  • trunk/src/VBox/VMM/VMMR0/VMMR0.cpp

    r35810 r35855  
    3030#include "VMMInternal.h"
    3131#include <VBox/vmm/vm.h>
     32#ifdef VBOX_WITH_PCI_PASSTHROUGH
     33#include <VBox/vmm/pdmpci.h>
     34#endif
    3235
    3336#include <VBox/vmm/gvmm.h>
     
    3942#include <VBox/version.h>
    4043#include <VBox/log.h>
     44
    4145
    4246#include <iprt/asm-amd64-x86.h>
     
    127131                        if (RT_SUCCESS(rc))
    128132                        {
    129                             rc = CPUMR0ModuleInit();
     133#ifdef VBOX_WITH_PCI_PASSTHROUGH
     134                            rc = PciRawR0Init();
     135#endif
    130136                            if (RT_SUCCESS(rc))
    131137                            {
    132                                 LogFlow(("ModuleInit: returns success.\n"));
    133                                 return VINF_SUCCESS;
     138                                rc = CPUMR0ModuleInit();
     139                                if (RT_SUCCESS(rc))
     140                                {
     141                                    LogFlow(("ModuleInit: returns success.\n"));
     142                                    return VINF_SUCCESS;
     143                                }
    134144                            }
     145                           
     146                            /* bail out */
     147                            LogFlow(("ModuleTerm: returns %Rrc\n", rc));
     148#ifdef VBOX_WITH_PCI_PASSTHROUGH
     149                            PciRawR0Term();
     150#endif
     151#ifdef VBOX_WITH_2X_4GB_ADDR_SPACE
     152                            PGMR0DynMapTerm();
     153#endif
    135154                        }
    136 
    137                         /* bail out */
    138                         LogFlow(("ModuleTerm: returns %Rrc\n", rc));
    139 #ifdef VBOX_WITH_2X_4GB_ADDR_SPACE
    140                         PGMR0DynMapTerm();
    141 #endif
    142155                    }
    143156                    PGMDeregisterStringFormatTypes();
     
    178191#ifdef VBOX_WITH_2X_4GB_ADDR_SPACE
    179192    PGMR0DynMapTerm();
     193#endif
     194       
     195#ifdef VBOX_WITH_PCI_PASSTHROUGH
     196    /*
     197     * Terminate PCI passthrough service.
     198     */
     199    PciRawR0Term();
    180200#endif
    181201    PGMDeregisterStringFormatTypes();
     
    11551175            return IntNetR0IfAbortWaitReq(pSession, (PINTNETIFABORTWAITREQ)pReqHdr);
    11561176
     1177#ifdef VBOX_WITH_PCI_PASSTHROUGH
     1178        /*
     1179         * Requests to host PCI driver service.
     1180         */
     1181        case VMMR0_DO_PCIRAW_REQ:
     1182            if (u64Arg || !pReqHdr || !vmmR0IsValidSession(pVM, ((PPCIRAWSENDREQ)pReqHdr)->pSession, pSession) || idCpu != NIL_VMCPUID)
     1183                return VERR_INVALID_PARAMETER;
     1184            return PciRawR0ProcessReq(pSession, (PPCIRAWSENDREQ)pReqHdr);
     1185#endif
    11571186        /*
    11581187         * For profiling.
     
    11781207        default:
    11791208            /*
    1180              * We're returning VERR_NOT_SUPPORT here so we've got something else
     1209             * We're returning VERR_NOT_SUPPORT here s we've got something else
    11811210             * than -1 which the interrupt gate glue code might return.
    11821211             */
     
    15271556    RTAssertMsg2V(pszFormat, va);
    15281557}
    1529 
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