VirtualBox

Changeset 20805 in vbox


Ignore:
Timestamp:
Jun 23, 2009 8:07:22 AM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
48940
Message:

Implemented support for VMCPUID_OTHER request packets.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMReq.cpp

    r20651 r20805  
    6363 * @param   idDstCpu        The destination CPU(s). Either a specific CPU ID or
    6464 *                          one of the following special values:
    65  *                              VMCPUID_ANY, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
     65 *                              VMCPUID_ANY, VMCPUID_OTHER, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
    6666 * @param   ppReq           Where to store the pointer to the request.
    6767 *                          This will be NULL or a valid request pointer not matter what happends.
     
    9999 * @param   idDstCpu        The destination CPU(s). Either a specific CPU ID or
    100100 *                          one of the following special values:
    101  *                              VMCPUID_ANY, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
     101 *                              VMCPUID_ANY, VMCPUID_OTHER, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
    102102 * @param   ppReq           Where to store the pointer to the request.
    103103 *                          This will be NULL or a valid request pointer not matter what happends.
     
    135135 * @param   idDstCpu        The destination CPU(s). Either a specific CPU ID or
    136136 *                          one of the following special values:
    137  *                              VMCPUID_ANY, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
     137 *                              VMCPUID_ANY, VMCPUID_OTHER, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
    138138 * @param   ppReq           Where to store the pointer to the request.
    139139 *                          This will be NULL or a valid request pointer not matter what happends.
     
    171171 * @param   idDstCpu        The destination CPU(s). Either a specific CPU ID or
    172172 *                          one of the following special values:
    173  *                              VMCPUID_ANY, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
     173 *                              VMCPUID_ANY, VMCPUID_OTHER, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
    174174 * @param   ppReq           Where to store the pointer to the request.
    175175 *                          This will be NULL or a valid request pointer not matter what happends, unless fFlags
     
    209209 * @param   idDstCpu        The destination CPU(s). Either a specific CPU ID or
    210210 *                          one of the following special values:
    211  *                              VMCPUID_ANY, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
     211 *                              VMCPUID_ANY, VMCPUID_OTHER, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
    212212 * @param   ppReq           Where to store the pointer to the request.
    213213 *                          This will be NULL or a valid request pointer not matter what happends, unless fFlags
     
    247247 * @param   idDstCpu        The destination CPU(s). Either a specific CPU ID or
    248248 *                          one of the following special values:
    249  *                              VMCPUID_ANY, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
     249 *                              VMCPUID_ANY, VMCPUID_OTHER, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
    250250 * @param   ppReq           Where to store the pointer to the request.
    251251 *                          This will be NULL or a valid request pointer not matter what happends, unless fFlags
     
    386386 * @param   idDstCpu        The destination CPU(s). Either a specific CPU ID or
    387387 *                          one of the following special values:
    388  *                              VMCPUID_ANY, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
     388 *                              VMCPUID_ANY, VMCPUID_OTHER, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
    389389 */
    390390VMMR3DECL(int) VMR3ReqAlloc(PVM pVM, PVMREQ *ppReq, VMREQTYPE enmType, VMCPUID idDstCpu)
     
    407407 * @param   idDstCpu        The destination CPU(s). Either a specific CPU ID or
    408408 *                          one of the following special values:
    409  *                              VMCPUID_ANY, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
     409 *                              VMCPUID_ANY, VMCPUID_OTHER, VMCPUID_ALL or VMCPUID_ALL_REVERSE.
    410410 */
    411411VMMR3DECL(int) VMR3ReqAllocU(PUVM pUVM, PVMREQ *ppReq, VMREQTYPE enmType, VMCPUID idDstCpu)
     
    420420    AssertPtrReturn(ppReq, VERR_INVALID_POINTER);
    421421    AssertMsgReturn(    idDstCpu == VMCPUID_ANY
     422                    ||  idDstCpu == VMCPUID_OTHER
    422423                    ||  idDstCpu < pUVM->cCpus
    423424                    ||  idDstCpu == VMCPUID_ALL
     
    711712        LogFlow(("VMR3ReqQueue: returns %Rrc\n", rc));
    712713    }
    713     else if (    pReq->idDstCpu == VMCPUID_ANY
    714              &&  !pUVCpu /* only EMT threads have a valid pointer stored in the TLS slot. */)
     714    else if (   (    pReq->idDstCpu == VMCPUID_ANY
     715                 && !pUVCpu /* only EMT threads have a valid pointer stored in the TLS slot. */)
     716             || pReq->idDstCpu == VMCPUID_OTHER)
    715717    {
    716718        unsigned fFlags = ((VMREQ volatile *)pReq)->fFlags;     /* volatile paranoia */
     719
     720        Assert(pReq->idDstCpu != VMCPUID_OTHER || pUVCpu);
    717721
    718722        /*
Note: See TracChangeset for help on using the changeset viewer.

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