Changeset 50539 in vbox
- Timestamp:
- Feb 21, 2014 12:13:03 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 92389
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/src/VBox/Additions/common/VBoxGuest/VBoxGuest.cpp ¶
r50537 r50539 206 206 207 207 208 /** Host flags to be updated by a given invo kation of the208 /** Host flags to be updated by a given invocation of the 209 209 * vboxGuestUpdateHostFlags() method. */ 210 210 enum … … 217 217 218 218 219 /** Check which host flags in a given category are being asserted by some guest 220 * session and assert exactly those on the host which are being asserted by one 221 * or more sessions. pCallingSession is purely for sanity checking and can be 222 * NULL. */ 223 static int vboxGuestUpdateHostFlags(PVBOXGUESTDEVEXT pDevExt, 224 PVBOXGUESTSESSION pSession, 225 unsigned enmFlags) 219 /** Unlocked version of and worker for vboxGuestUpdateHostFlags() below. */ 220 static int vboxGuestUpdateHostFlagsUnlocked(PVBOXGUESTDEVEXT pDevExt, 221 PVBOXGUESTSESSION pSession, 222 unsigned enmFlags) 226 223 { 227 224 int rc = VINF_SUCCESS; … … 230 227 unsigned cSessions = 0; 231 228 232 RTSpinlockAcquire(pDevExt->SessionSpinlock);233 229 RTListForEach(&pDevExt->SessionList, pIterator, VBOXGUESTSESSION, ListNode) 234 230 { … … 263 259 vboxGuestSetMouseStatus(fMouseStatus); 264 260 } 261 return rc; 262 } 263 264 265 /** Check which host flags in a given category are being asserted by some guest 266 * session and assert exactly those on the host which are being asserted by one 267 * or more sessions. pCallingSession is purely for sanity checking and can be 268 * NULL. */ 269 static int vboxGuestUpdateHostFlags(PVBOXGUESTDEVEXT pDevExt, 270 PVBOXGUESTSESSION pSession, 271 unsigned enmFlags) 272 { 273 int rc; 274 275 RTSpinlockAcquire(pDevExt->SessionSpinlock); 276 rc = vboxGuestUpdateHostFlagsUnlocked(pDevExt, pSession, enmFlags); 265 277 RTSpinlockReleaseNoInts(pDevExt->SessionSpinlock); 266 278 return rc; … … 1942 1954 pSession->fFilterMask |= pInfo->u32OrMask; 1943 1955 pSession->fFilterMask &= ~pInfo->u32NotMask; 1944 rc = vboxGuestUpdateHostFlags(pDevExt, pSession, HostFlags_FilterMask); 1956 rc = vboxGuestUpdateHostFlagsUnlocked(pDevExt, pSession, 1957 HostFlags_FilterMask); 1945 1958 RTSpinlockReleaseNoInts(pDevExt->SessionSpinlock); 1946 1959 return rc; … … 1960 1973 pSession->fCapabilities |= pInfo->u32OrMask; 1961 1974 pSession->fCapabilities &= ~pInfo->u32NotMask; 1962 rc = vboxGuestUpdateHostFlags(pDevExt, pSession, HostFlags_Capabilities); 1975 rc = vboxGuestUpdateHostFlagsUnlocked(pDevExt, pSession, 1976 HostFlags_Capabilities); 1963 1977 RTSpinlockReleaseNoInts(pDevExt->SessionSpinlock); 1964 1978 return rc; … … 1989 2003 RTSpinlockAcquire(pDevExt->SessionSpinlock); 1990 2004 pSession->fMouseStatus = fFeatures; 1991 rc = vboxGuestUpdateHostFlags(pDevExt, pSession, HostFlags_MouseStatus); 2005 rc = vboxGuestUpdateHostFlagsUnlocked(pDevExt, pSession, 2006 HostFlags_MouseStatus); 1992 2007 RTSpinlockReleaseNoInts(pDevExt->SessionSpinlock); 1993 2008 return rc;
Note:
See TracChangeset
for help on using the changeset viewer.