|  | @@ -63,25 +63,31 @@ static __inline int gpr_atm_no_barrier_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
 | 
	
		
			
				|  |  |  /* InterlockedCompareExchangePointerNoFence() not available on vista or
 | 
	
		
			
				|  |  |     windows7 */
 | 
	
		
			
				|  |  |  #ifdef GPR_ARCH_64
 | 
	
		
			
				|  |  | -  return o == (gpr_atm)InterlockedCompareExchangeAcquire64(p, n, o);
 | 
	
		
			
				|  |  | +  return o == (gpr_atm)InterlockedCompareExchangeAcquire64((volatile LONGLONG *) p,
 | 
	
		
			
				|  |  | +                                                           (LONGLONG) n, (LONGLONG) o);
 | 
	
		
			
				|  |  |  #else
 | 
	
		
			
				|  |  | -  return o == (gpr_atm)InterlockedCompareExchangeAcquire(p, n, o);
 | 
	
		
			
				|  |  | +  return o == (gpr_atm)InterlockedCompareExchangeAcquire((volatile LONG *) p,
 | 
	
		
			
				|  |  | +                                                         (LONG) n, (LONG) o);
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static __inline int gpr_atm_acq_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
 | 
	
		
			
				|  |  |  #ifdef GPR_ARCH_64
 | 
	
		
			
				|  |  | -  return o == (gpr_atm)InterlockedCompareExchangeAcquire64(p, n, o);
 | 
	
		
			
				|  |  | +  return o == (gpr_atm)InterlockedCompareExchangeAcquire64((volatile LONGLONG) p,
 | 
	
		
			
				|  |  | +                                                           (LONGLONG) n, (LONGLONG) o);
 | 
	
		
			
				|  |  |  #else
 | 
	
		
			
				|  |  | -  return o == (gpr_atm)InterlockedCompareExchangeAcquire(p, n, o);
 | 
	
		
			
				|  |  | +  return o == (gpr_atm)InterlockedCompareExchangeAcquire((volatile LONG *) p,
 | 
	
		
			
				|  |  | +                                                         (LONG) n, (LONG) o);
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static __inline int gpr_atm_rel_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
 | 
	
		
			
				|  |  |  #ifdef GPR_ARCH_64
 | 
	
		
			
				|  |  | -  return o == (gpr_atm)InterlockedCompareExchangeRelease64(p, n, o);
 | 
	
		
			
				|  |  | +  return o == (gpr_atm)InterlockedCompareExchangeRelease64((volatile LONGLONG *) p,
 | 
	
		
			
				|  |  | +                                                           (LONGLONG) n, (LONGLONG) o);
 | 
	
		
			
				|  |  |  #else
 | 
	
		
			
				|  |  | -  return o == (gpr_atm)InterlockedCompareExchangeRelease(p, n, o);
 | 
	
		
			
				|  |  | +  return o == (gpr_atm)InterlockedCompareExchangeRelease((volatile LONG *) p,
 | 
	
		
			
				|  |  | +                                                         (LONG) n, (LONG) o);
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -101,11 +107,15 @@ static __inline gpr_atm gpr_atm_full_fetch_add(gpr_atm *p, gpr_atm delta) {
 | 
	
		
			
				|  |  |  #ifdef GPR_ARCH_64
 | 
	
		
			
				|  |  |    do {
 | 
	
		
			
				|  |  |      old = *p;
 | 
	
		
			
				|  |  | -  } while (old != (gpr_atm)InterlockedCompareExchange64(p, old + delta, old));
 | 
	
		
			
				|  |  | +  } while (old != (gpr_atm)InterlockedCompareExchange64((volatile LONGLONG *) p,
 | 
	
		
			
				|  |  | +                                                        (LONGLONG) old + delta,
 | 
	
		
			
				|  |  | +                                                        (LONGLONG) old));
 | 
	
		
			
				|  |  |  #else
 | 
	
		
			
				|  |  |    do {
 | 
	
		
			
				|  |  |      old = *p;
 | 
	
		
			
				|  |  | -  } while (old != (gpr_atm)InterlockedCompareExchange(p, old + delta, old));
 | 
	
		
			
				|  |  | +  } while (old != (gpr_atm)InterlockedCompareExchange((volatile LONG *) p,
 | 
	
		
			
				|  |  | +                                                      (LONG) old + delta,
 | 
	
		
			
				|  |  | +                                                      (LONG) old));
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |    return old;
 | 
	
		
			
				|  |  |  }
 |