1from ctypes import c_int, c_size_t, c_void_p
2from .dll import _bind
3from .stdinc import SDL_bool
4
5__all__ = [
6    # Defines
7    "SDL_CACHELINE_SIZE",
8
9    # Functions
10    "SDL_GetCPUCount", "SDL_GetCPUCacheLineSize",
11    "SDL_HasRDTSC", "SDL_HasAltiVec", "SDL_HasMMX", "SDL_Has3DNow",
12    "SDL_HasSSE", "SDL_HasSSE2", "SDL_HasSSE3", "SDL_HasSSE41",
13    "SDL_HasSSE42", "SDL_GetSystemRAM", "SDL_HasAVX", "SDL_HasAVX2",
14    "SDL_HasAVX512F", "SDL_HasARMSIMD", "SDL_HasNEON",
15    "SDL_SIMDGetAlignment", "SDL_SIMDAlloc", "SDL_SIMDRealloc", "SDL_SIMDFree"
16]
17
18
19SDL_CACHELINE_SIZE = 128
20SDL_GetCPUCount = _bind("SDL_GetCPUCount", None, c_int)
21SDL_GetCPUCacheLineSize = _bind("SDL_GetCPUCacheLineSize", None, c_int)
22SDL_HasRDTSC = _bind("SDL_HasRDTSC", None, SDL_bool)
23SDL_HasAltiVec = _bind("SDL_HasAltiVec", None, SDL_bool)
24SDL_HasMMX = _bind("SDL_HasMMX", None, SDL_bool)
25SDL_Has3DNow = _bind("SDL_Has3DNow", None, SDL_bool)
26SDL_HasSSE = _bind("SDL_HasSSE", None, SDL_bool)
27SDL_HasSSE2 = _bind("SDL_HasSSE2", None, SDL_bool)
28SDL_HasSSE3 = _bind("SDL_HasSSE3", None, SDL_bool)
29SDL_HasSSE41 = _bind("SDL_HasSSE41", None, SDL_bool)
30SDL_HasSSE42 = _bind("SDL_HasSSE42", None, SDL_bool)
31SDL_GetSystemRAM = _bind("SDL_GetSystemRAM", None, c_int)
32SDL_HasAVX = _bind("SDL_HasAVX", None, SDL_bool)
33SDL_HasAVX2 = _bind("SDL_HasAVX2", None, SDL_bool)
34SDL_HasAVX512F = _bind("SDL_HasAVX512F", None, SDL_bool, added='2.0.9')
35SDL_HasARMSIMD = _bind("SDL_HasARMSIMD", None, SDL_bool, added='2.0.12')
36SDL_HasNEON = _bind("SDL_HasNEON", None, SDL_bool, added='2.0.6')
37SDL_SIMDGetAlignment = _bind("SDL_SIMDGetAlignment", None, c_size_t, added='2.0.10')
38SDL_SIMDAlloc = _bind("SDL_SIMDAlloc", [c_size_t], c_void_p, added='2.0.10')
39SDL_SIMDRealloc = _bind("SDL_SIMDRealloc", [c_void_p, c_size_t], c_void_p, added='2.0.14')
40SDL_SIMDFree = _bind("SDL_SIMDFree", [c_void_p], None, added='2.0.10')
41