Phosphor
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
core.h
1
/* -*- Mode: C++; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
/*
3
* Copyright 2016 Couchbase, Inc
4
*
5
* Licensed under the Apache License, Version 2.0 (the "License");
6
* you may not use this file except in compliance with the License.
7
* You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
#pragma once
19
20
#include <cstddef>
21
#include <type_traits>
22
23
#include "visibility.h"
24
25
#if defined(__GNUC__) || defined(__clang__)
26
30
#define likely(x) __builtin_expect(!!(x), 1)
31
36
#define unlikely(x) __builtin_expect(!!(x), 0)
37
#else
38
#define likely(x) (x)
39
#define unlikely(x) (x)
40
#endif
41
42
namespace
phosphor
{
43
// Introducing cross-platform ssize_t (doesn't exist on windows)
44
// as future-proofing if e.g. negative statistics are ever needed
45
using
ssize_t = std::make_signed<size_t>::type;
46
}
phosphor
Definition:
category_registry.h:32
include
phosphor
platform
core.h
Generated by
1.8.11