   return UnsafeMutablePointer<T>(SyncReadVoidPtr(UnsafeMutablePointer<UnsafeMutablePointer<Void>>(p)))
 }
 
+@inline(__always) public func SyncRead(p: UnsafeMutablePointer<COpaquePointer>) -> COpaquePointer
+{
+  return COpaquePointer(SyncReadVoidPtr(UnsafeMutablePointer<UnsafeMutablePointer<Void>>(p)))
+}
+
 
 @inline(__always) public func Store<T>(v: UnsafePointer<T>, _ p: UnsafeMutablePointer<UnsafePointer<T>>)
 {

  SyncStoreVoidPtr(v, UnsafeMutablePointer<UnsafeMutablePointer<Void>>(p))
}


@inline(__always) public func Swap<T>(v: UnsafePointer<T>, _ p: UnsafeMutablePointer<UnsafePointer<T>>) -> UnsafePointer<T>
{

  return UnsafeMutablePointer<T>(SwapVoidPtr(v, UnsafeMutablePointer<UnsafeMutablePointer<Void>>(p)))
}

@inline(__always) public func Swap(v: COpaquePointer, _ p: UnsafeMutablePointer<COpaquePointer>) -> COpaquePointer
{
  return COpaquePointer(SwapVoidPtr(UnsafeMutablePointer(v), UnsafeMutablePointer<UnsafeMutablePointer<Void>>(p)))
}


// MARK: Int and UInt Atomics

