1/*
2 This file is part of Mtproto-proxy Library.
3
4 Mtproto-proxy Library is free software: you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as published by
6 the Free Software Foundation, either version 2 of the License, or
7 (at your option) any later version.
8
9 Mtproto-proxy Library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
13
14 You should have received a copy of the GNU Lesser General Public License
15 along with Mtproto-proxy Library. If not, see <http://www.gnu.org/licenses/>.
16
17 Copyright 2014 Telegram Messenger Inc
18 2014 Anton Maydell
19*/
20
21#pragma once
22
23#define likely(x) __builtin_expect((x),1)
24#define unlikely(x) __builtin_expect((x),0)
25
26typedef long long v2di __attribute__ ((vector_size (16)));
27typedef char v16qi __attribute__ ((vector_size (16)));
28typedef short v8hi __attribute__ ((vector_size (16)));
29typedef int v4si __attribute__ ((vector_size (16)));
30typedef double v2df __attribute__ ((vector_size (16)));
31typedef float v4sf __attribute__ ((vector_size (16)));
32
33typedef struct {
34 int magic;
35 int ebx, ecx, edx;
36} kdb_cpuid_t;
37
38kdb_cpuid_t *kdb_cpuid (void);
39