(svn r27763) -Update from Eints:
[openttd.git] / src / cpu.h
blob08495dfc1494a7ed38087c488b4e42f08d86de50
1 /* $Id$ */
3 /*
4 * This file is part of OpenTTD.
5 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
6 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
7 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
8 */
10 /** @file cpu.h Functions related to CPU specific instructions. */
12 #ifndef CPU_H
13 #define CPU_H
15 /**
16 * Get the tick counter from the CPU (high precision timing).
17 * @return The count.
19 uint64 ottd_rdtsc();
21 /**
22 * Get the CPUID information from the CPU.
23 * @param info The retrieved info. All zeros on architectures without CPUID.
24 * @param type The information this instruction should retrieve.
26 void ottd_cpuid(int info[4], int type);
28 /**
29 * Check whether the current CPU has the given flag.
30 * @param type The type to be passing to cpuid (usually 1).
31 * @param index The index in the returned info array.
32 * @param bit The bit index that needs to be set.
33 * @return The value of the bit, or false when there is no CPUID or the type is not available.
35 bool HasCPUIDFlag(uint type, uint index, uint bit);
37 #endif /* CPU_H */