blob: 0f9b9a215d7c8a9080411ef7bc9e869eed939ac7 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef NET_THIRD_PARTY_QUIC_PLATFORM_IMPL_QUIC_ALIGNED_IMPL_H_
#define NET_THIRD_PARTY_QUIC_PLATFORM_IMPL_QUIC_ALIGNED_IMPL_H_
#ifdef _MSC_VER
// MSVC 2013 and prior don't have alignof or aligned(); they have __alignof and
// a __declspec instead.
#define QUIC_ALIGN_OF_IMPL __alignof
#define QUIC_ALIGNED_IMPL(X) __declspec(align(X))
#else
#define QUIC_ALIGN_OF_IMPL alignof
#define QUIC_ALIGNED_IMPL(X) __attribute__((aligned(X)))
#endif // _MSC_VER
// TODO(rtenneti): Change the default 64 alignas value (used the default
// value from ABSL_CACHELINE_SIZE).
#define QUIC_CACHELINE_SIZE_IMPL (64)
#define QUIC_CACHELINE_ALIGNED_IMPL ALIGNAS(QUIC_CACHELINE_SIZE)
#endif // NET_THIRD_PARTY_QUIC_PLATFORM_IMPL_QUIC_ALIGNED_IMPL_H_