Subversion Repositories Kolibri OS

Rev

Rev 1123 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1117 serge 1
 
2
#define __TYPES_H__
3
4
 
5
 
6
7
 
8
#define true                 1
9
10
 
11
typedef unsigned int         count_t;
12
typedef unsigned int         addr_t;
13
14
 
15
typedef unsigned short       u16;
16
typedef unsigned int         u32;
17
typedef unsigned long long   u64;
18
19
 
20
typedef unsigned short       __u16;
21
typedef unsigned int         __u32;
22
typedef unsigned long long   __u64;
23
24
 
25
typedef signed short        __s16;
26
typedef signed int          __s32;
27
typedef signed long long    __s64;
28
29
 
30
 
31
typedef unsigned short       uint16_t;
32
typedef unsigned int         uint32_t;
33
typedef unsigned long long   uint64_t;
34
35
 
36
typedef unsigned short       u16_t;
37
typedef unsigned int         u32_t;
38
typedef unsigned long long   u64_t;
39
40
 
1123 serge 41
typedef signed long long     int64_t;
42
43
 
1117 serge 44
45
 
46
typedef uint32_t             resource_size_t;
47
48
 
49
50
 
51
#define cpu_to_le32(v32) (v32)
52
#define cpu_to_le64(v64) (v64)
53
#define le16_to_cpu(v16) (v16)
54
#define le32_to_cpu(v32) (v32)
55
#define le64_to_cpu(v64) (v64)
56
57
 
58
#define unlikely(x)     __builtin_expect(!!(x), 0)
59
60
 
1123 serge 61
1117 serge 62
 
1123 serge 63
1117 serge 64
 
1123 serge 65
66
 
67
        unsigned long name[BITS_TO_LONGS(bits)]
68
69
 
70
 
1117 serge 71
#define KERN_ALERT      "<1>"   /* action must be taken immediately     */
72
#define KERN_CRIT       "<2>"   /* critical conditions                  */
73
#define KERN_ERR        "<3>"   /* error conditions                     */
74
#define KERN_WARNING    "<4>"   /* warning conditions                   */
75
#define KERN_NOTICE     "<5>"   /* normal but significant condition     */
76
#define KERN_INFO       "<6>"   /* informational                        */
77
#define KERN_DEBUG      "<7>"   /* debug-level messages                 */
78
79
 
80
81
 
82
83
 
84
 
85
86
 
87
88
 
89
    printk(KERN_ERR "[" DRM_NAME ":%s] *ERROR* " fmt , __func__ , ##arg)
90
91
 
92
93
 
94
    BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(typeof(a), typeof(&a[0])))
95
96
 
97
98
 
99
 
100
 
101
 
102
#define BUG() do { \
103
         printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
104
       /*  panic("BUG!"); */ \
105
 } while (0)
106
#endif
107
108
 
109
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while(0)
110
#endif
111
112
 
113
 
114
 
115
#define MTRR_TYPE_WRCOMB     1
116
#define MTRR_TYPE_WRTHROUGH  4
117
#define MTRR_TYPE_WRPROT     5
118
#define MTRR_TYPE_WRBACK     6
119
#define MTRR_NUM_TYPES       7
120
121
 
122
123
 
124
125
 
1123 serge 126
127
 
128
129
 
130
 
1117 serge 131
132
 
133
void*   memset(void *s, int c, size_t n);
134
size_t  strlen(const char *s);
135
char *strncpy (char *dst, const char *src, size_t len);
1123 serge 136
1117 serge 137
 
138
139
 
1123 serge 140
#define kfree free
1117 serge 141
142
 
143
{
144
    void *ret = malloc(size);
145
    memset(ret, 0, size);
146
    return ret;
147
}
148
149
 
150
151
 
152
//    struct kref refcount;
153
154
 
155
//    struct kref handlecount;
156
157
 
158
//    struct drm_device *dev;
159
160
 
161
//    struct file *filp;
162
163
 
164
//    struct drm_map_list map_list;
165
166
 
167
     * Size of the object, in bytes.  Immutable over the object's
168
     * lifetime.
169
     */
170
    size_t size;
171
172
 
173
     * Global name for this object, starts at 1. 0 means unnamed.
174
     * Access is covered by the object_name_lock in the related drm_device
175
     */
176
    int name;
177
178
 
179
     * Memory domains. These monitor which caches contain read/write data
180
     * related to the object. When transitioning from one set of domains
181
     * to another, the driver is called to ensure that caches are suitably
182
     * flushed and invalidated
183
     */
184
    uint32_t read_domains;
185
    uint32_t write_domain;
186
187
 
188
     * While validating an exec operation, the
189
     * new read/write domain values are computed here.
190
     * They will be transferred to the above values
191
     * at the point that any cache flushing occurs
192
     */
193
    uint32_t pending_read_domains;
194
    uint32_t pending_write_domain;
195
196
 
197
};
198
199
 
200
201
 
202
203
 
204
        const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
205
        (type *)( (char *)__mptr - offsetof(type,member) );})
206
207
 
208
 
209
 
210
#define mb() __asm__ __volatile__("lock; addl $0,0(%esp)")
1119 serge 211
1117 serge 212
 
1119 serge 213
#define PAGE_SHIFT      12
214
1117 serge 215
 
1119 serge 216
1117 serge 217
 
1123 serge 218
{
219
        if (nbits <= BITS_PER_LONG)
220
                *dst = 0UL;
221
        else {
222
                int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long);
223
                memset(dst, 0, len);
224
        }
225
}
226
1119 serge 227
 
1123 serge 228
229
 
230
        typeof(x) _x = (x);     \
231
        typeof(y) _y = (y);     \
232
        (void) (&_x == &_y);            \
233
        _x < _y ? _x : _y; })
234
235
 
236
        typeof(x) _x = (x);     \
237
        typeof(y) _y = (y);     \
238
        (void) (&_x == &_y);            \
239
        _x > _y ? _x : _y; })
240
241
 
242
 
243
244
 
245
       uint32_t __base = (base);                       \
246
       uint32_t __rem;                                 \
247
       (void)(((typeof((n)) *)0) == ((uint64_t *)0));  \
248
       if (likely(((n) >> 32) == 0)) {                 \
249
               __rem = (uint32_t)(n) % __base;         \
250
               (n) = (uint32_t)(n) / __base;           \
251
       } else                                          \
252
               __rem = __div64_32(&(n), __base);       \
253
       __rem;                                          \
254
})
255
256
 
257
258
 
259
#define INT_MIN         (-INT_MAX - 1)
260
#define UINT_MAX        (~0U)
261
#define LONG_MAX        ((long)(~0UL>>1))
262
#define LONG_MIN        (-LONG_MAX - 1)
263
#define ULONG_MAX       (~0UL)
264
#define LLONG_MAX       ((long long)(~0ULL>>1))
265
#define LLONG_MIN       (-LLONG_MAX - 1)
266
#define ULLONG_MAX      (~0ULL)
267
268
 
269
 
270
{
271
        if (n != 0 && size > ULONG_MAX / n)
272
                return NULL;
273
        return kzalloc(n * size, 0);
1125 serge 274
}
1123 serge 275
276
 
1125 serge 277
#define LEAVE()   dbgprintf("leave %s\n",__FUNCTION__)
278
279
 
1117 serge 280