Subversion Repositories Kolibri OS

Rev

Rev 1119 | 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
    printk(KERN_ERR "[" DRM_NAME ":%s] *ERROR* " fmt , __func__ , ##arg)
93
94
 
95
96
 
97
    BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(typeof(a), typeof(&a[0])))
98
99
 
100
101
 
102
 
103
 
104
 
105
#define BUG() do { \
106
         printk("BUG: failure at %s:%d/%s()!\n", __FILE__, __LINE__, __FUNCTION__); \
107
       /*  panic("BUG!"); */ \
108
 } while (0)
109
#endif
110
111
 
112
#define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while(0)
113
#endif
114
115
 
116
 
117
 
118
#define MTRR_TYPE_WRCOMB     1
119
#define MTRR_TYPE_WRTHROUGH  4
120
#define MTRR_TYPE_WRPROT     5
121
#define MTRR_TYPE_WRBACK     6
122
#define MTRR_NUM_TYPES       7
123
124
 
125
126
 
127
128
 
1123 serge 129
130
 
131
132
 
133
 
1117 serge 134
135
 
136
void*   memset(void *s, int c, size_t n);
137
size_t  strlen(const char *s);
138
char *strncpy (char *dst, const char *src, size_t len);
1123 serge 139
1117 serge 140
 
141
142
 
1123 serge 143
#define kfree free
1117 serge 144
145
 
146
{
147
    void *ret = malloc(size);
148
    memset(ret, 0, size);
149
    return ret;
150
}
151
152
 
153
154
 
155
//    struct kref refcount;
156
157
 
158
//    struct kref handlecount;
159
160
 
161
//    struct drm_device *dev;
162
163
 
164
//    struct file *filp;
165
166
 
167
//    struct drm_map_list map_list;
168
169
 
170
     * Size of the object, in bytes.  Immutable over the object's
171
     * lifetime.
172
     */
173
    size_t size;
174
175
 
176
     * Global name for this object, starts at 1. 0 means unnamed.
177
     * Access is covered by the object_name_lock in the related drm_device
178
     */
179
    int name;
180
181
 
182
     * Memory domains. These monitor which caches contain read/write data
183
     * related to the object. When transitioning from one set of domains
184
     * to another, the driver is called to ensure that caches are suitably
185
     * flushed and invalidated
186
     */
187
    uint32_t read_domains;
188
    uint32_t write_domain;
189
190
 
191
     * While validating an exec operation, the
192
     * new read/write domain values are computed here.
193
     * They will be transferred to the above values
194
     * at the point that any cache flushing occurs
195
     */
196
    uint32_t pending_read_domains;
197
    uint32_t pending_write_domain;
198
199
 
200
};
201
202
 
203
204
 
205
206
 
207
        const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
208
        (type *)( (char *)__mptr - offsetof(type,member) );})
209
210
 
211
 
212
 
213
#define mb() __asm__ __volatile__("lock; addl $0,0(%esp)")
1119 serge 214
1117 serge 215
 
1119 serge 216
#define PAGE_SHIFT      12
217
1117 serge 218
 
1119 serge 219
1117 serge 220
 
1123 serge 221
{
222
        if (nbits <= BITS_PER_LONG)
223
                *dst = 0UL;
224
        else {
225
                int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long);
226
                memset(dst, 0, len);
227
        }
228
}
229
1119 serge 230
 
1123 serge 231
232
 
233
#define IDR_FULL 0xfffffffful
234
235
 
236
        unsigned long            bitmap; /* A zero bit means "space here" */
237
        struct idr_layer        *ary[1<
238
        int                      count;  /* When zero, we can release it */
239
};
240
241
 
242
        struct idr_layer *top;
243
        struct idr_layer *id_free;
244
        int               layers;
245
        int               id_free_cnt;
246
//        spinlock_t        lock;
247
};
248
249
 
250
 
251
        typeof(x) _x = (x);     \
252
        typeof(y) _y = (y);     \
253
        (void) (&_x == &_y);            \
254
        _x < _y ? _x : _y; })
255
256
 
257
        typeof(x) _x = (x);     \
258
        typeof(y) _y = (y);     \
259
        (void) (&_x == &_y);            \
260
        _x > _y ? _x : _y; })
261
262
 
263
 
264
265
 
266
       uint32_t __base = (base);                       \
267
       uint32_t __rem;                                 \
268
       (void)(((typeof((n)) *)0) == ((uint64_t *)0));  \
269
       if (likely(((n) >> 32) == 0)) {                 \
270
               __rem = (uint32_t)(n) % __base;         \
271
               (n) = (uint32_t)(n) / __base;           \
272
       } else                                          \
273
               __rem = __div64_32(&(n), __base);       \
274
       __rem;                                          \
275
})
276
277
 
278
279
 
280
#define INT_MIN         (-INT_MAX - 1)
281
#define UINT_MAX        (~0U)
282
#define LONG_MAX        ((long)(~0UL>>1))
283
#define LONG_MIN        (-LONG_MAX - 1)
284
#define ULONG_MAX       (~0UL)
285
#define LLONG_MAX       ((long long)(~0ULL>>1))
286
#define LLONG_MIN       (-LLONG_MAX - 1)
287
#define ULLONG_MAX      (~0ULL)
288
289
 
290
 
291
{
292
        if (n != 0 && size > ULONG_MAX / n)
293
                return NULL;
294
        return kmalloc(n * size, 0);
295
}
296
297
 
1117 serge 298
>