include/grpc/support/atm_win32.h in awesome-grpc-that-works-0.12.2 vs include/grpc/support/atm_win32.h in awesome-grpc-that-works-0.14.0.dev
- old
+ new
@@ -1,8 +1,8 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
@@ -32,94 +32,8 @@
*/
#ifndef GRPC_SUPPORT_ATM_WIN32_H
#define GRPC_SUPPORT_ATM_WIN32_H
-/* Win32 variant of atm_platform.h */
-#include <grpc/support/port_platform.h>
-
-typedef gpr_intptr gpr_atm;
-
-#define gpr_atm_full_barrier MemoryBarrier
-
-static __inline gpr_atm gpr_atm_acq_load(const gpr_atm *p) {
- gpr_atm result = *p;
- gpr_atm_full_barrier();
- return result;
-}
-
-static __inline gpr_atm gpr_atm_no_barrier_load(const gpr_atm *p) {
- /* TODO(dklempner): Can we implement something better here? */
- return gpr_atm_acq_load(p);
-}
-
-static __inline void gpr_atm_rel_store(gpr_atm *p, gpr_atm value) {
- gpr_atm_full_barrier();
- *p = value;
-}
-
-static __inline void gpr_atm_no_barrier_store(gpr_atm *p, gpr_atm value) {
- /* TODO(ctiller): Can we implement something better here? */
- gpr_atm_rel_store(p, value);
-}
-
-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(
- (volatile LONGLONG *)p, (LONGLONG)n, (LONGLONG)o);
-#else
- 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(
- (volatile LONGLONG *)p, (LONGLONG)n, (LONGLONG)o);
-#else
- 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(
- (volatile LONGLONG *)p, (LONGLONG)n, (LONGLONG)o);
-#else
- return o == (gpr_atm)InterlockedCompareExchangeRelease((volatile LONG *)p,
- (LONG)n, (LONG)o);
-#endif
-}
-
-static __inline gpr_atm gpr_atm_no_barrier_fetch_add(gpr_atm *p,
- gpr_atm delta) {
- /* Use the CAS operation to get pointer-sized fetch and add */
- gpr_atm old;
- do {
- old = *p;
- } while (!gpr_atm_no_barrier_cas(p, old, old + delta));
- return old;
-}
-
-static __inline gpr_atm gpr_atm_full_fetch_add(gpr_atm *p, gpr_atm delta) {
- /* Use a CAS operation to get pointer-sized fetch and add */
- gpr_atm old;
-#ifdef GPR_ARCH_64
- do {
- old = *p;
- } while (old != (gpr_atm)InterlockedCompareExchange64((volatile LONGLONG *)p,
- (LONGLONG)old + delta,
- (LONGLONG)old));
-#else
- do {
- old = *p;
- } while (old != (gpr_atm)InterlockedCompareExchange(
- (volatile LONG *)p, (LONG)old + delta, (LONG)old));
-#endif
- return old;
-}
+#include <grpc/impl/codegen/atm_win32.h>
#endif /* GRPC_SUPPORT_ATM_WIN32_H */