blob: dae9043e5c12d034b0922be57d92d3f7ac6fa01e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
/* Types */
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
typedef int *intptr_t;
typedef uint *uintptr_t;
typedef unsigned int sampler_t;
/* Standard types from Clang's stddef, Copyright (C) 2008 Eli Friedman */
typedef __typeof__(((int*)0)-((int*)0)) ptrdiff_t;
typedef __typeof__(sizeof(int)) size_t;
/* Vectors */
#define COAL_VECTOR(type, len) \
typedef type type##len __attribute__((ext_vector_type(len)))
#define COAL_VECTOR_SET(type) \
COAL_VECTOR(type, 2); \
COAL_VECTOR(type, 3); \
COAL_VECTOR(type, 4)
COAL_VECTOR_SET(char);
COAL_VECTOR_SET(uchar);
COAL_VECTOR_SET(short);
COAL_VECTOR_SET(ushort);
COAL_VECTOR_SET(int);
COAL_VECTOR_SET(uint);
COAL_VECTOR_SET(long);
COAL_VECTOR_SET(ulong);
COAL_VECTOR_SET(float);
#undef COAL_VECTOR_SET
#undef COAL_VECTOR
/* Address spaces */
#define __private __attribute__((address_space(0)))
#define __global __attribute__((address_space(1)))
#define __local __attribute__((address_space(2)))
#define __constant __attribute__((address_space(3)))
#define global __global
#define local __local
#define constant __constant
#define private __private
#define __write_only
#define __read_only const
#define write_only __write_only
#define read_only __read_only
/* Defines */
#define CLK_NORMALIZED_COORDS_FALSE 0x00000000
#define CLK_NORMALIZED_COORDS_TRUE 0x00000001
#define CLK_ADDRESS_NONE 0x00000000
#define CLK_ADDRESS_MIRRORED_REPEAT 0x00000010
#define CLK_ADDRESS_REPEAT 0x00000020
#define CLK_ADDRESS_CLAMP_TO_EDGE 0x00000030
#define CLK_ADDRESS_CLAMP 0x00000040
#define CLK_FILTER_NEAREST 0x00000000
#define CLK_FILTER_LINEAR 0x00000100
/* Management functions */
uint get_work_dim();
size_t get_global_size(uint dimindx);
size_t get_global_id(uint dimindx);
size_t get_local_size(uint dimindx);
size_t get_local_id(uint dimindx);
size_t get_num_groups(uint dimindx);
size_t get_group_id(uint dimindx);
size_t get_global_offset(uint dimindx);
|