   return UnsafeMutablePointer<T>(ReadVoidPtr(UnsafeMutablePointer<UnsafeMutablePointer<Void>>(p)))
 }
 
+@inline(__always) public func Read(p: UnsafeMutablePointer<COpaquePointer>) -> COpaquePointer
+{
+  return COpaquePointer(ReadVoidPtr(UnsafeMutablePointer<UnsafeMutablePointer<Void>>(p)))
+}
+
 
 @inline(__always) public func SyncRead<T>(p: UnsafeMutablePointer<UnsafePointer<T>>) -> UnsafePointer<T>
 {

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


@inline(__always) public func SyncStore<T>(v: UnsafePointer<T>, _ p: UnsafeMutablePointer<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

