Change: Let AI developers edit non-editable AI/Game Script Parameters (#8895)
[openttd-github.git] / src / cpu.h
blob13eaa4f99115e0c267182d57caa763c87e493289
1 /*
2 * This file is part of OpenTTD.
3 * 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.
4 * 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.
5 * 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/>.
6 */
8 /** @file cpu.h Functions related to CPU specific instructions. */
10 #ifndef CPU_H
11 #define CPU_H
13 /**
14 * Get the tick counter from the CPU (high precision timing).
15 * @return The count.
17 uint64 ottd_rdtsc();
19 /**
20 * Get the CPUID information from the CPU.
21 * @param info The retrieved info. All zeros on architectures without CPUID.
22 * @param type The information this instruction should retrieve.
24 void ottd_cpuid(int info[4], int type);
26 /**
27 * Check whether the current CPU has the given flag.
28 * @param type The type to be passing to cpuid (usually 1).
29 * @param index The index in the returned info array.
30 * @param bit The bit index that needs to be set.
31 * @return The value of the bit, or false when there is no CPUID or the type is not available.
33 bool HasCPUIDFlag(uint type, uint index, uint bit);
35 #endif /* CPU_H */