Bitcoin Core
0.21.1
P2P Digital Currency
Main Page
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
src
compat
cpuid.h
Go to the documentation of this file.
1
// Copyright (c) 2017-2019 The Bitcoin Core developers
2
// Distributed under the MIT software license, see the accompanying
3
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
4
5
#ifndef BITCOIN_COMPAT_CPUID_H
6
#define BITCOIN_COMPAT_CPUID_H
7
8
#if defined(__x86_64__) || defined(__amd64__) || defined(__i386__)
9
#define HAVE_GETCPUID
10
11
#include <
cpuid.h
>
12
13
// We can't use cpuid.h's __get_cpuid as it does not support subleafs.
14
void
static
inline
GetCPUID(uint32_t leaf, uint32_t subleaf, uint32_t& a, uint32_t& b, uint32_t& c, uint32_t& d)
15
{
16
#ifdef __GNUC__
17
__cpuid_count(leaf, subleaf, a, b, c, d);
18
#else
19
__asm__ (
"cpuid"
:
"=a"
(a),
"=b"
(b),
"=c"
(c),
"=d"
(d) :
"0"
(leaf),
"2"
(subleaf));
20
#endif
21
}
22
23
#endif // defined(__x86_64__) || defined(__amd64__) || defined(__i386__)
24
#endif // BITCOIN_COMPAT_CPUID_H
cpuid.h
Generated on Fri Apr 30 2021 13:53:38 for Bitcoin Core by
1.8.8