- Timestamp:
- Dec 4, 2009 10:36:30 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 55647
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostDrivers/Support/SUPDrv.c
r24022 r25180 2935 2935 SUPR0DECL(int) SUPR0GipMap(PSUPDRVSESSION pSession, PRTR3PTR ppGipR3, PRTHCPHYS pHCPhysGip) 2936 2936 { 2937 int rc = VINF_SUCCESS;2937 int rc; 2938 2938 PSUPDRVDEVEXT pDevExt = pSession->pDevExt; 2939 RTR3PTR pGip = NIL_RTR3PTR;2940 RTHCPHYS HCPhys = NIL_RTHCPHYS;2939 RTR3PTR pGipR3 = NIL_RTR3PTR; 2940 RTHCPHYS HCPhys = NIL_RTHCPHYS; 2941 2941 LogFlow(("SUPR0GipMap: pSession=%p ppGipR3=%p pHCPhysGip=%p\n", pSession, ppGipR3, pHCPhysGip)); 2942 2942 … … 2954 2954 * Map it? 2955 2955 */ 2956 rc = VINF_SUCCESS; 2956 2957 if (ppGipR3) 2957 2958 { … … 2960 2961 RTMEM_PROT_READ, RTR0ProcHandleSelf()); 2961 2962 if (RT_SUCCESS(rc)) 2962 { 2963 pGip = RTR0MemObjAddressR3(pSession->GipMapObjR3); 2964 rc = VINF_SUCCESS; /** @todo remove this and replace the !rc below with RT_SUCCESS(rc). */ 2965 } 2963 pGipR3 = RTR0MemObjAddressR3(pSession->GipMapObjR3); 2966 2964 } 2967 2965 … … 2969 2967 * Get physical address. 2970 2968 */ 2971 if (pHCPhysGip && !rc)2969 if (pHCPhysGip && RT_SUCCESS(rc)) 2972 2970 HCPhys = pDevExt->HCPhysGip; 2973 2971 … … 2975 2973 * Reference globally. 2976 2974 */ 2977 if (!pSession->fGipReferenced && !rc)2975 if (!pSession->fGipReferenced && RT_SUCCESS(rc)) 2978 2976 { 2979 2977 pSession->fGipReferenced = 1; … … 2981 2979 if (pDevExt->cGipUsers == 1) 2982 2980 { 2983 PSUPGLOBALINFOPAGE pGip = pDevExt->pGip;2981 PSUPGLOBALINFOPAGE pGipR0 = pDevExt->pGip; 2984 2982 unsigned i; 2985 2983 2986 2984 LogFlow(("SUPR0GipMap: Resumes GIP updating\n")); 2987 2985 2988 for (i = 0; i < RT_ELEMENTS(pGip ->aCPUs); i++)2989 ASMAtomicXchgU32(&pGip ->aCPUs[i].u32TransactionId, pGip->aCPUs[i].u32TransactionId & ~(GIP_UPDATEHZ_RECALC_FREQ * 2 - 1));2990 ASMAtomicXchgU64(&pGip ->u64NanoTSLastUpdateHz, 0);2986 for (i = 0; i < RT_ELEMENTS(pGipR0->aCPUs); i++) 2987 ASMAtomicXchgU32(&pGipR0->aCPUs[i].u32TransactionId, pGipR0->aCPUs[i].u32TransactionId & ~(GIP_UPDATEHZ_RECALC_FREQ * 2 - 1)); 2988 ASMAtomicXchgU64(&pGipR0->u64NanoTSLastUpdateHz, 0); 2991 2989 2992 2990 rc = RTTimerStart(pDevExt->pGipTimer, 0); … … 3008 3006 *pHCPhysGip = HCPhys; 3009 3007 if (ppGipR3) 3010 *ppGipR3 = pGip ;3008 *ppGipR3 = pGipR3; 3011 3009 3012 3010 #ifdef DEBUG_DARWIN_GIP 3013 OSDBGPRINT(("SUPR0GipMap: returns %d *pHCPhysGip=%lx pGip =%p\n", rc, (unsigned long)HCPhys, (void *)pGip));3011 OSDBGPRINT(("SUPR0GipMap: returns %d *pHCPhysGip=%lx pGipR3=%p\n", rc, (unsigned long)HCPhys, (void *)pGipR3)); 3014 3012 #else 3015 LogFlow(( "SUPR0GipMap: returns %d *pHCPhysGip=%lx pGip =%p\n", rc, (unsigned long)HCPhys, (void *)pGip));3013 LogFlow(( "SUPR0GipMap: returns %d *pHCPhysGip=%lx pGipR3=%p\n", rc, (unsigned long)HCPhys, (void *)pGipR3)); 3016 3014 #endif 3017 3015 return rc;
Note:
See TracChangeset
for help on using the changeset viewer.