1 /*-
2 * Copyright (c) 2009-2021 Hans Petter Selasky. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 * SUCH DAMAGE.
24 */
25
26 #ifndef _LINUX_DEFS_H_
27 #define _LINUX_DEFS_H_
28
29 /*
30 * Linux kernel defines from various header files
31 */
32
33 #define CONFIG_BASE_SMALL 1
34
35 #define DIV_ROUND_CLOSEST(rem, div) \
36 ((sizeof(typeof(div)) > 4) ? \
37 ((((typeof(div))-1) <= 0) ? \
38 div_round_closest_s64(rem,div) : \
39 div_round_closest_u64(rem,div)) : \
40 ((((typeof(div))-1) <= 0) ? \
41 div_round_closest_s32(rem,div) : \
42 div_round_closest_u32(rem,div)))
43
44 #define DIV_ROUND_CLOSEST_ULL(rem, div) \
45 div_round_closest_u64(rem,div)
46
47 #define mult_frac(x, numer, denom) \
48 ({ \
49 typeof(x) quot = (x) / (denom); \
50 typeof(x) rem = (x) % (denom); \
51 (quot * (numer)) + ((rem * (numer)) / (denom)); \
52 })
53
54 #ifndef howmany
55 #define howmany(x, y) (((x)+((y)-1))/(y))
56 #endif
57
58 #define is_power_of_2(x) (((-(x)) & (x)) == (x))
59 #define __nop do {} while (0)
60 #define __user
61 #define __kernel
62 #define __safe
63 #define __deprecated
64 #define __force
65 #define __nocast
66 #define __iomem
67 #define __read_mostly
68 #define __maybe_unused
69 #define __must_check
70 #define __must_hold(...)
71 #define __chk_user_ptr(x) __nop
72 #define __chk_io_ptr(x) __nop
73 #define __builtin_warning(x, ...) (1)
74 #define __acquires(x)
75 #define __releases(x)
76 #define __acquire(x) __nop
77 #define __release(x) __nop
78 #define __cond_lock(x,c) (c)
79 #define __pgprot(x) ((pgprot_t)(x))
80 #define __rcu
81 #define __percpu
82 #define fallthrough __nop
83 #define local_irq_save(x) __nop
84 #define local_irq_restore(x) __nop
85 #define preempt_enable() __nop
86 #define preempt_disable() __nop
87 #define __this_cpu_write(a,b) do { (a) = (b); } while (0)
88 #define __this_cpu_read(a) (a)
89 #define __this_cpu_inc(a) do { (a)++; } while (0)
90 #define __this_cpu_dec(a) do { (a)--; } while (0)
91 #define irqs_disabled(...) (0)
92 #define SetPageReserved(...) __nop
93 #define ClearPageReserved(...) __nop
94 #define ETH_ALEN 6
95 #define _PAGE_PRESENT 0
96 #define _PAGE_RW 0
97 #define _PAGE_USER 0
98 #define _PAGE_ACCESSED 0
99 #define PAGE_SHARED 0
100 #define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&(~(PAGE_SIZE - 1)))
101 #undef ALIGN
102 #define ALIGN(x,a) (((x)+(a)-1)&(~((a)-1)))
103 #define PAGE_OFFSET 0
104 #define __pa(x) ((unsigned long)(x)-PAGE_OFFSET)
105 #define S_IRWXG 00070
106 #define S_IRWXU 00700
107 #define S_IRUSR 00400
108 #define S_IWUSR 00200
109 #define S_IXUSR 00100
110 #define S_IRGRP 00040
111 #define S_IWGRP 00020
112 #define S_IXGRP 00010
113 #define S_IROTH 00004
114 #define S_IWOTH 00002
115 #define S_IXOTH 00001
116 #define S_IRUGO (S_IRUSR|S_IRGRP|S_IROTH)
117 #define S_IWUGO (S_IWUSR|S_IWGRP|S_IWOTH)
118 #define offsetof(t, m) ((uint8_t *)&((t *)0)->m - (uint8_t *)0)
119 #define container_of(ptr, t, m) ((t *)((uint8_t *)(ptr) - offsetof(t, m)))
120 #define __devinitdata
121 #define __init
122 #define __exit
123 #define ___stringify(...) #__VA_ARGS__
124 #define __stringify(...) ___stringify(__VA_ARGS__)
125 #define ERESTARTSYS 512
126 #define ENOIOCTLCMD 513
127 #define EMEDIUMTYPE 514
128 #define ENODATA 515
129 #define EPROBE_DEFER 516
130 #define EBADR 517
131 #define symbol_request(x) (&(x))
132 #define symbol_get(x) __nop
133 #define symbol_put(x) __nop
134 #define EXPORT_SYMBOL(...)
135 #define EXPORT_SYMBOL_GPL(...)
136 #define MODULE_INFO(...)
137 #define MODULE_AUTHOR(...)
138 #define MODULE_DESCRIPTION(...)
139 #define MODULE_LICENSE(...)
140 #define MODULE_DEVICE_TABLE(...)
141 #define MODULE_VERSION(...)
142 #define MODULE_ALIAS(...)
143 #define MODULE_ALIAS_CHARDEV_MAJOR(...)
144 #define MODULE_SUPPORTED_DEVICE(...)
145 #define MODULE_FIRMWARE(...)
146 #define IS_MODULE(x) x##_IS_MODULE
147 #define IS_BUILTIN(x) IS_ENABLED(x)
148 #define IS_ENABLED(x) x##_IS_ENABLED
149 #define IS_REACHABLE(x,...) defined(x##__VA_ARGS__)
150 #define IS_ALIGNED(x, a) (((x) & ((typeof(x))(a) - 1)) == 0)
151 #define __aligned_u64 uint64_t __aligned(8)
152 #define THIS_MODULE (NULL)
153 #define DECLARE_EVENT_CLASS(...)
154 #define DECLARE_EVENT(...)
155 #define DECLARE_PER_CPU(...)
156 #define DEFINE_EVENT(...)
157 #define TRACE_EVENT(...)
158 #define TRACE_DEFINE_ENUM(...)
159 #define trace_regcache_drop_region(...) __nop
160 #define trace_regcache_sync(...) __nop
161 #define trace_regmap_async_complete_done(...) __nop
162 #define trace_regmap_async_complete_start(...) __nop
163 #define trace_regmap_async_io_complete(...) __nop
164 #define trace_regmap_async_write_start(...) __nop
165 #define trace_regmap_cache_bypass(...) __nop
166 #define trace_regmap_cache_only(...) __nop
167 #define trace_regmap_hw_read_done(...) __nop
168 #define trace_regmap_hw_read_start(...) __nop
169 #define trace_regmap_hw_write_done(...) __nop
170 #define trace_regmap_hw_write_start(...) __nop
171 #define trace_regmap_reg_read(...) __nop
172 #define trace_regmap_reg_read_cache(...) __nop
173 #define trace_regmap_reg_write(...) __nop
174 #define trace_v4l2_dqbuf(...) __nop
175 #define trace_v4l2_qbuf(...) __nop
176 #define trace_vb2_buf_done(...) __nop
177 #define trace_vb2_qbuf(...) __nop
178 #define trace_vb2_buf_queue(...) __nop
179 #define trace_vb2_dqbuf(...) __nop
180 #define trace_pwc_handler_enter(...) __nop
181 #define trace_pwc_handler_exit(...) __nop
182 #define print_hex_dump_debug(...) __nop
183 #define __compiletime_warning(...)
184 #define __compiletime_error(...)
185 #ifdef HAVE_DEBUG
186 #define printk(...) do { \
187 syslog(LOG_DEBUG, __VA_ARGS__); \
188 } while (0)
189 #define printk_once(...) printk(__VA_ARGS__)
190 #define pr_warn_once(...) printk(__VA_ARGS__)
191 #define dev_warn_once(dev, ...) printk(__VA_ARGS__)
192 #else
193 #define printk(...) printk_nop()
194 #define printk_once(...) printk_nop()
195 #define pr_warn_once(...) printk_nop()
196 #define dev_warn_once(...) printk_nop()
197 #endif
198 #define no_printk(...) printk_nop()
199 #define print_hex_dump_bytes(...) printk_nop()
200 #define printk_ratelimit(...) printk_nop()
201 #define printk_timed_ratelimit(...) printk_nop()
202 #ifdef HAVE_DEBUG
203 #define pr_fmt(...) __VA_ARGS__
204 #endif
205 #define printk_ratelimited(...) printk_nop()
206 #define pr_err_ratelimited(...) __nop
207 #define pr_warn_ratelimited(...) __nop
208 #define pr_cont(...) __nop
209 #define pr_err(...) __nop
210 #define pr_info(...) __nop
211 #define pr_dbg(...) __nop
212 #define pr_debug(...) __nop
213 #define pr_warn(...) __nop
214 #define pr_warning(...) __nop
215 #define pr_emerg(...) __nop
216 #define dev_dbg(dev, fmt, ...) printk("DBG: %s: " fmt "\n", dev_name(dev),## __VA_ARGS__)
217 #define dev_debug(dev, fmt, ...) printk("DBG: %s: " fmt "\n", dev_name(dev),## __VA_ARGS__)
218 #define dev_dbg_ratelimited(dev, fmt, ...) printk("DBG: %s: " fmt "\n", dev_name(dev),## __VA_ARGS__)
219 #define dev_err(dev, fmt, ...) printk("ERR: %s: " fmt "\n", dev_name(dev),## __VA_ARGS__)
220 #define dev_err_ratelimited(dev, fmt, ...) printk("ERR: %s: " fmt "\n", dev_name(dev),## __VA_ARGS__)
221 #define dev_info(dev, fmt, ...) printk("INFO: %s: " fmt "\n", dev_name(dev),## __VA_ARGS__)
222 #define dev_info_ratelimited(dev, fmt, ...) printk("INFO: %s: " fmt "\n", dev_name(dev),## __VA_ARGS__)
223 #define dev_warn(dev, fmt, ...) printk("WARN: %s: " fmt, dev_name(dev),## __VA_ARGS__)
224 #define dev_warn_ratelimited(dev, fmt, ...) printk("WARN: %s: " fmt "\n", dev_name(dev),## __VA_ARGS__)
225 #define dev_notice(dev, fmt, ...) printk("NOTICE: %s: " fmt "\n", dev_name(dev),## __VA_ARGS__)
226 #define dev_notice_ratelimited(dev, fmt, ...) printk("NOTICE: %s: " fmt "\n", dev_name(dev),## __VA_ARGS__)
227 #define dev_printk(info, dev, fmt, ...) printk("DBG: %s: " fmt, dev_name(dev),## __VA_ARGS__)
228 #define info(fmt, ...) printk("INFO: " fmt "\n",## __VA_ARGS__)
229 #define warn(fmt, ...) printk("WARN: " fmt "\n",## __VA_ARGS__)
230 #define dbg(fmt, ...) printk("DBG: " fmt "\n",## __VA_ARGS__)
231 #define err(fmt, ...) printk("ERR: " fmt "\n",## __VA_ARGS__)
232 #define notice(fmt, ...) printk("NOTICE: " fmt "\n",## __VA_ARGS__)
233 #define kmem_cache_create(desc,size,align,arg,fn) ((struct kmem_cache *)(size))
234 #define kmem_cache_destroy(...) __nop
235 #define kmem_cache_free(ref,ptr) free(GP_DECONST(ptr))
236 #define kmem_cache_alloc(ref,g) malloc((long)(ref))
237 #define kmem_cache_zalloc(ref,g) calloc(1, (long)(ref))
238 #define kvmalloc(size,flags) malloc(size)
239 #define kvmalloc_array(n,s,flags) malloc((n) * (s))
240 #define kvzalloc(s,flags) calloc(1, s)
241 #define kvfree(ptr) free(ptr)
242 #define kmalloc(s,opt) malloc(s)
243 #define kzalloc(s,opt) calloc(1, (s))
244 #define krealloc(p,s,opt) realloc(p,(s))
245 #define dma_alloc_coherent(d,s,h,g) calloc(1,(s))
246 #define dma_free_coherent(d,s,v,h) free(GP_DECONST(v))
247 #define dma_map_single(...) 0
248 #define dma_unmap_single(...) __nop
249 #define dma_mapping_error(...) 0
250 #define dma_sync_single_for_device(...) __nop
251 #define vmalloc_32_user(s) malloc_vm(s)
252 #define vmalloc_user(s) malloc_vm(s)
253 #define vmalloc_32(s) malloc_vm(s)
254 #define vmalloc_to_page(x) ((struct page *)(x)) /* HACK */
255 #define vmalloc_to_pfn(x) ((unsigned long)(x)) /* HACK */
256 #define alloc_page(...) malloc_vm(PAGE_SIZE)
257 #define page_address(x) ((void *)(x)) /* HACK */
258 #define virt_to_page(x) ((struct page *)(((uintptr_t)(x)) & ~(PAGE_SIZE-1))) /* HACK */
259 #define offset_in_page(x) (((uintptr_t)(x)) & (PAGE_SIZE - 1))
260 #define page_to_phys(x) ((uintptr_t)(x))
261 #define page_cache_release(...) __nop
262 #define clear_user_highpage(...) __nop
263 #define sg_set_page(...) __nop
264 #define sg_next(...) NULL
265 #define of_match_ptr(...) NULL
266 #define is_of_node(...) 0
267 #define sysfs_attr_init(x) __nop
268 #define sysfs_create_files(...) (0)
269 #define sysfs_streq(a,b) (strcmp(a,b) == 0)
270 #define kobject_create_and_add(...) ((void *)1)
271 #define kobject_get_path(...) strdup("webcamd")
272 #define kobject_put(...) __nop
273 #define kobject_get(...) __nop
274 #define kobject_uevent(...) __nop
275 #define kobject_uevent_env(...) (int)0
276 #define vfree(ptr) free_vm(ptr)
277 #define kfree(ptr) free(GP_DECONST(ptr))
278 #define kfree_const(ptr) free(GP_DECONST(ptr))
279 #define kstrdup(a,b) strdup(a)
280 #define kstrdup_const(a,b) strdup(a)
281 #define might_sleep(x) __nop
282 #define might_sleep_if(x) __nop
283 #define fsleep(d) usleep(d)
284 #define ndelay(d) usleep(((d) + 1000ULL - 1ULL)/1000UL)
285 #define udelay(d) usleep(d)
286 #define mdelay(d) usleep((d) * 1000)
287 #define swap(a, b) \
288 do { typeof(a) __tmp = (a); (a) = (b); (b) = __tmp; } while (0)
289 #define usleep_range(_min,_max) usleep(_min)
290 #define __GFP_WAIT 0
291 #define __GFP_HIGH 0
292 #define __GFP_IO 0
293 #define __GFP_FS 0
294 #define __GFP_COLD 0
295 #define __GFP_NOWARN 0
296 #define __GFP_REPEAT 0
297 #define __GFP_NOFAIL 0
298 #define __GFP_NORETRY 0
299 #define __GFP_NO_GROW 0
300 #define __GFP_COMP 0
301 #define __GFP_ZERO 0
302 #define __GFP_NOMEMALLOC 0
303 #define __GFP_HARDWALL 0
304 #define __GFP_DMA32 0
305 #define __GFP_BITS_SHIFT 1
306 #define GFP_NOWAIT 0
307 #define GFP_ATOMIC 0
308 #define GFP_NOIO 0
309 #define GFP_NOFS 0
310 #define GFP_KERNEL 0
311 #define GFP_USER 0
312 #define GFP_HIGHUSER 0
313 #define TASK_RUNNING 0
314 #define TASK_INTERRUPTIBLE 1
315 #define TASK_UNINTERRUPTIBLE 2
316 #define TASK_STOPPED 4
317 #define TASK_TRACED 8
318 #define EXIT_ZOMBIE 16
319 #define EXIT_DEAD 32
320 #define TASK_NONINTERACTIVE 64
321 #define TASK_COMM_LEN 16
322 #define no_llseek NULL
323 #define default_llseek NULL
324 #define GENMASK(hi, lo) (((2UL << ((hi) - (lo))) - 1UL) << (lo))
325 #define GENMASK_ULL(hi, lo) (((2ULL << ((hi) - (lo))) - 1ULL) << (lo))
326 #define BITS_PER_LONG_LONG 64
327 #ifdef __LP64__
328 #define BITS_PER_LONG 64
329 #else
330 #define BITS_PER_LONG 32
331 #endif
332 #define BIT_MASK(nr) (1UL << ((nr) % BITS_PER_LONG))
333 #define BIT_WORD(nr) ((nr) / BITS_PER_LONG)
334 #define BITS_PER_BYTE 8
335 #define for_each_set_bit(b, addr, size) \
336 for ((b) = 0; (b) < (size); (b)++) \
337 if ((addr)[(b) / BITS_PER_LONG] & BIT((b) % BITS_PER_LONG))
338 #define for_each_set_bit_from(b, addr, size) \
339 for ( ; (b) < (size); (b)++) \
340 if ((addr)[(b) / BITS_PER_LONG] & BIT((b) % BITS_PER_LONG))
341 #define BITS_TO_LONGS(n) (((n) + BITS_PER_LONG - 1) / BITS_PER_LONG)
342 #define BIT(n) (1UL << (n))
343 #define BIT_ULL(n) (1ULL << (n))
344 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
345 #define LINUX_VERSION_CODE KERNEL_VERSION(2, 6, 38)
346 #define BUS_ID_SIZE 32
347 #define DECLARE_BITMAP(n, max) unsigned long n[((max)+BITS_PER_LONG-1)/BITS_PER_LONG]
348 #define MKDEV(maj,min) ((dev_t)(uint32_t)((((maj) & 0xFFFFUL) << 16)|((min) & 0xFFFFUL)))
349 #define MAJOR(dev) (((dev) >> 16) & 0xFFFFUL)
350 #define MINOR(dev) ((dev) & 0xFFFFUL)
351 #define dev_set_name(d, ...) \
352 snprintf((d)->name, sizeof((d)->name), __VA_ARGS__)
353 #define kasprintf(mem,...) ({ \
354 char *temp_ptr; \
355 asprintf(&temp_ptr, __VA_ARGS__); \
356 temp_ptr; \
357 })
358 #define print_hex_dump(...) __nop
359 #define __printf(a,b)
360 #define DEFAULT_POLLMASK POLLNVAL
361 #define POLL_ERR POLLERR
362 #define EPOLLRDNORM POLLRDNORM
363 #define EPOLLWRNORM POLLWRNORM
364 #define EPOLLIN POLLIN
365 #define EPOLLOUT POLLOUT
366 #define EPOLLERR POLLERR
367 #define EPOLLPRI POLLPRI
368 #define EPOLLHUP POLLHUP
369 #define IOCSIZE_MASK (_IOC_SIZEMASK << _IOC_SIZESHIFT)
370 #define _IOC_TYPE(cmd) IOCGROUP(cmd)
371 #define _IOC_SIZE(cmd) IOCPARM_LEN(cmd)
372 #define _IOC_NR(cmd) ((cmd) & 0xFF)
373 #define _IOC_DIR(cmd) ((cmd) & IOC_DIRMASK)
374 #define _IOC_NONE IOC_VOID
375 #define _IOC_READ IOC_OUT
376 #define _IOC_WRITE IOC_IN
377 #define _IOC_SIZEMASK IOCPARM_MASK
378 #define _IOC_SIZESHIFT 16
379 #define __OLD_VIDIOC_
380 #define down_read(...) __nop
381 #define up_read(...) __nop
382 #define VM_WRITE 0x0001
383 #define VM_READ 0x0002
384 #define VM_SHARED 0x0004
385 #define VM_DONTEXPAND 0x0008
386 #define VM_FAULT_OOM 0x0010
387 #define VM_RESERVED 0x0020
388 #define VM_IO 0x0040
389 #define VM_DONTDUMP 0x0080
390 #define DMA_FROM_DEVICE 0x01
391 #define DMA_TO_DEVICE 0x02
392 #define DMA_BIDIRECTIONAL 0x03
393 #define sizeof_field(t, m) sizeof((((t *)0)->m))
394 #define ARRAY_SIZE(ptr) (sizeof(ptr) / sizeof((ptr)[0]))
395 #define array_index_nospec(index, size) (((index) >= (size)) ? 0 : (index))
396 #define __KERNEL__
397 #define capable(...) 1
398 #define uninitialized_var(...) __VA_ARGS__
399 #define HZ 1000
400 #define NSEC_PER_SEC 1000000000LL
401 #define USEC_PER_SEC 1000000LL
402 #define USEC_PER_MSEC 1000LL
403 #define MSEC_PER_SEC 1000LL
404 #define jiffies get_jiffies_64()
405 #define msecs_to_jiffies(x) (x)
406 #define usecs_to_jiffies(x) ((x) / 1000)
407 #define nsecs_to_jiffies(x) ((x) / 1000000)
408 #define jiffies_to_msecs(x) (x)
409 #define jiffies_to_usecs(x) ((x) * 1000LL)
410 #define jiffies_to_nsecs(x) ((x) * 1000000LL)
411 #define likely(...) __VA_ARGS__
412 #define unlikely(...) __VA_ARGS__
413 #define __round_mask(x, y) ((typeof(x))((y)-1))
414 #define roundup(x, y) ((((x) % (y)) == 0) ? (x) : (x) - ((x) % (y)) + (y))
415 #define rounddown(x, y) ((x) - ((x) % (y)))
416 #define round_up(x, y) ((((x)-1) | __round_mask(x, y))+1)
417 #define round_down(x, y) ((x) & ~__round_mask(x, y))
418 #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d))
419 #define min(a,b) (((a) < (b)) ? (a) : (b))
420 #define max(a,b) (((a) > (b)) ? (a) : (b))
421 #define max3(a,b,c) (((a) >= (b) && (a) >= (c)) ? (a) : \
422 ((b) >= (a) && (b) >= (c)) ? (b) : (c))
423 #define min3(a,b,c) (((a) <= (b) && (a) <= (c)) ? (a) : \
424 ((b) <= (a) && (b) <= (c)) ? (b) : (c))
425 #define prefetch(x) (void)x
426 #define barrier() __asm__ __volatile__("": : :"memory")
427 #define WRITE_ONCE(x, val) \
428 do { volatile typeof(x) __val = (val); (x) = __val; } while (0)
429 #define READ_ONCE(x) ({ \
430 typeof(x) __var = ({ \
431 barrier(); \
432 ACCESS_ONCE(x); \
433 }); \
434 barrier(); \
435 __var; \
436 })
437 #define KERN_INFO ""
438 #define KERN_WARNING ""
439 #define KERN_ERR ""
440 #define KERN_DEBUG ""
441 #define KERN_CONT ""
442 #define KBUILD_MODNAME ""
443 #define KERN_NOTICE ""
444 #define BUG(...) __nop
445 #define __WARN() __nop
446 #define WARN(x,...) ({ (x); })
447 #define WARN_ONCE(x,...) ({ (x); })
448 #define BUG_ON(x) ({ (x); })
449 #define WARN_ON(x) ({ (x); })
450 #define WARN_ON_ONCE(x) ({ (x); })
451 #define BUILD_BUG_ON(x) extern int dummy_array[(x) ? -1 : 1]
452 #define lockdep_set_class_and_name(...) __nop
453 #define lockdep_assert_held(...) __nop
454 #define lockdep_assert_irqs_enabled(...) __nop
455 #define lock_kernel(...) __nop
456 #define unlock_kernel(...) __nop
457 #define rwlock_init(l) __nop
458 #define write_lock_irqsave(l, f) do { (f) = 1; atomic_lock(); } while (0)
459 #define write_unlock_irqrestore(l, f) do { if (f) { (f) = 0; atomic_unlock(); } } while (0)
460 #define read_lock_irqsave(l, f) do { (f) = 1; atomic_lock(); } while (0)
461 #define read_unlock_irqrestore(l, f) do { if (f) { (f) = 0; atomic_unlock(); } } while (0)
462 #define read_lock(l) atomic_lock()
463 #define read_unlock(l) atomic_unlock()
464 #define spin_lock_init(lock) __nop
465 #define spin_lock_irqsave(l,f) do { (f) = 1; atomic_lock(); } while (0)
466 #define spin_unlock_irqrestore(l,f) do { if (f) { (f) = 0; atomic_unlock(); } } while (0)
467 #define spin_lock(...) atomic_lock()
468 #define spin_unlock(...) atomic_unlock()
469 #define spin_lock_irq(...) atomic_lock()
470 #define spin_unlock_irq(...) atomic_unlock()
471 #define raw_spin_lock_init(lock) __nop
472 #define raw_spin_lock(...) atomic_lock()
473 #define raw_spin_unlock(...) atomic_unlock()
474 #define atomic_inc_return(...) atomic_inc(__VA_ARGS__)
475 #define atomic_dec_return(...) atomic_dec(__VA_ARGS__)
476 #define assert_spin_locked(...) __nop
477 #define ASSERT_EXCLUSIVE_ACCESS(...) __nop
478 #define IS_ERR_VALUE(x) ((unsigned long)(x) >= (unsigned long)-(1<<14))
479 #define IS_ERR_OR_NULL(x) ((unsigned long)(x) == 0 || IS_ERR_VALUE(x))
480 #define ERR_CAST(x) ((void *)(long)(const void *)(x))
481 #define find_first_bit(addr, size) find_next_bit((addr), (size), 0)
482 #define find_first_zero_bit(addr, size) find_next_zero_bit((addr), (size), 0)
483 #define synchronize_sched() do { atomic_lock(); atomic_unlock(); } while (0)
484 #define cond_resched() do { } while (0)
485 #define signal_pending(...) check_signal()
486 #define down_write(...) __nop
487 #define down_read(...) __nop
488 #define up_write(...) __nop
489 #define up_read(...) __nop
490 #define dump_stack(...) __nop
491 #define get_user_pages(a,b,...) linux_get_user_pages(__VA_ARGS__)
492 #define DECLARE_RWSEM(x) struct rw_semaphore x
493 #define crc32(s, d, l) crc32_le(s, (unsigned char const *)d, l)
494 #define CRCPOLY_LE 0xedb88320
495 #define CRCPOLY_BE 0x04c11db7
496 #define mb() __asm volatile("":::"memory")
497 #define smp_wmb() mb()
498 #define smp_mb() mb()
499 #define smp_rmb() mb()
500 #define smp_mb__after_clear_bit() mb()
501 #define smp_mb__after_atomic() mb()
502 #define smp_store_release(p, v) do { \
503 atomic_lock(); \
504 *(p) = (v); \
505 atomic_unlock(); \
506 } while (0);
507 #define smp_load_acquire(p) ({ \
508 typeof(*(p)) __ret; \
509 atomic_lock(); \
510 __ret = *(p); \
511 atomic_unlock(); \
512 __ret; \
513 })
514 #define ACCESS_ONCE(x) (*(volatile __typeof(x) *)&(x))
515 #define devres_find(...) NULL
516 #define fops_get(x) (x)
517 #define fops_put(x) __nop
518 #define replace_fops(f, fops) do { \
519 struct file *__file = (f); \
520 __file->f_op = (fops); \
521 } while (0)
522 #define __devinitconst
523 #define __devinit
524 #define __devexit
525 #define __devexit_p
526 #define dma_sync_single_for_cpu(...) __nop
527 #define pgprot_noncached(x) (x)
528 #define set_current_state(...) __nop
529 #define __set_current_state(...) __nop
530 #define task_pid_nr(...) (1)
531 #define time_after(a,b) (((long)(b) - (long)(a)) < 0)
532 #define time_after_eq(a,b) (((long)(b) - (long)(a)) <= 0)
533 #define time_before(a,b) time_after(b,a)
534 #define time_before_eq(a,b) time_after_eq(b,a)
535 #define time_is_before_jiffies(a) time_after(jiffies,a)
536 #define time_is_after_jiffies(a) time_before(jiffies,a)
537 #define time_is_after_eq_jiffies(a) time_before_eq(jiffies,a)
538 #define time_is_before_eq_jiffies(a) time_after_eq(jiffies,a)
539 #define __attribute_const__
540 #undef __always_inline
541 #define __always_inline inline
542 #define noinline
543 #define noinline_for_stack
544 #define __cpu_to_be64(x) cpu_to_be64(x)
545 #define __cpu_to_be32(x) cpu_to_be32(x)
546 #define __cpu_to_be16(x) cpu_to_be16(x)
547 #define __cpu_to_le64(x) cpu_to_le64(x)
548 #define __cpu_to_le32(x) cpu_to_le32(x)
549 #define __cpu_to_le16(x) cpu_to_le16(x)
550 #define __le64_to_cpu(x) le64_to_cpu(x)
551 #define __le32_to_cpu(x) le32_to_cpu(x)
552 #define __le16_to_cpu(x) le16_to_cpu(x)
553 #define __le64_to_cpus(p) le64_to_cpus(p)
554 #define __le32_to_cpus(p) le32_to_cpus(p)
555 #define __le16_to_cpus(p) le16_to_cpus(p)
556 #define __be64_to_cpu(x) be64_to_cpu(x)
557 #define __be32_to_cpu(x) be32_to_cpu(x)
558 #define __be16_to_cpu(x) be16_to_cpu(x)
559 #define __be64_to_cpus(p) be64_to_cpus(p)
560 #define __be32_to_cpus(p) be32_to_cpus(p)
561 #define __be16_to_cpus(p) be16_to_cpus(p)
562 #define GP_DECONST(ptr) ((void *)(long)(ptr))
563 #define get_unaligned(x) ({ __typeof(*(x)) __temp; memcpy(GP_DECONST(&__temp), (x), sizeof(__temp)); __temp; })
564 #define put_unaligned(x, y) do { __typeof(*(y)) __temp = (x); memcpy((y), GP_DECONST(&__temp), sizeof(__temp)); } while (0)
565 #define NSEC_PER_USEC 1000
566 #define simple_strtoul strtoul
567 #define strict_strtoul(a,b,c) ({char *_pp; *(c) = strtoul(a,&_pp,b); _pp;})
568 #define simple_strtol strtol
569 #define strict_strtol(a,b,c) ({char *_pp; *(c) = strtol(a,&_pp,b); _pp;})
570 #define noop_llseek 0
571 #define ETIME ECANCELED
572 #define ENOSR ENOBUFS
573 #define ENOTSUPP ENOTSUP
574 #define EREMOTEIO EIO
575 #define EBADRQC EBADMSG
576 #define MAX_SCHEDULE_TIMEOUT LONG_MAX
577 #define U8_MAX 255U
578 #define U8_MIN (-(1 << 7))
579 #define U16_MAX 65535U
580 #define S16_MAX (65535U / 2U)
581 #define S16_MIN (-(1 << 15))
582 #define U32_MAX -1U
583 #define S32_MAX ((-1U) / 2U)
584 #define S32_MIN (-(1 << 31))
585 #define I2C_NAME_SIZE 20
586 #define __SPIN_LOCK_UNLOCKED(...) {}
587 #define in_interrupt() 0
588 #define wmb() __nop
589 #define min_t(cast,x,y) ((((cast)(x)) < ((cast)(y))) ? (cast)(x) : (cast)(y))
590 #define max_t(cast,x,y) ((((cast)(x)) > ((cast)(y))) ? (cast)(x) : (cast)(y))
591 #define clamp_val(x,y,z) clamp_t(typeof(x),x,y,z)
592 #define clamp(x,y,z) clamp_t(typeof(x),x,y,z)
593 #define clamp_t(cast,x,y,z) \
594 ((cast)((((cast)(x)) < ((cast)(y))) ? ((cast)(y)) : \
595 (((cast)(x)) > ((cast)(z))) ? ((cast)(z)) : ((cast)(x))))
596 #define try_then_request_module(x,...) (x)
597 #ifndef __cold
598 #define __cold __attribute__((__cold__))
599 #endif
600 #ifndef __packed
601 #define __packed __attribute__((__packed__))
602 #endif
603 #ifndef __pure
604 #define __pure __attribute__((pure))
605 #endif
606 #ifndef __bitwise
607 #define __bitwise
608 #endif
609 #ifndef __force
610 #define __force
611 #endif
612 #define numa_node_id(x) ((int)0)
613 #define DEFINE_PER_CPU(type, name) \
614 typeof(type) name
615
616 #define put_user(val, ptr) ({ \
617 int temp_err; \
618 __typeof(val) temp_var = (val); \
619 if (copy_to_user((ptr), &temp_var, sizeof(temp_var)) == 0) \
620 temp_err = 0; \
621 else \
622 temp_err = -EFAULT; \
623 temp_err; \
624 })
625 #define __put_user(temp_var, ptr) put_user(temp_var, ptr)
626 #define get_user(temp_var, ptr) ({ \
627 int temp_err; \
628 if (copy_from_user(&(temp_var), (ptr), sizeof(temp_var)) == 0) \
629 temp_err = 0; \
630 else \
631 temp_err = -EFAULT; \
632 temp_err; \
633 })
634 #define __get_user(temp_var, ptr) get_user(temp_var, ptr)
635 extern unsigned long copy_in_user(void *to, const void *from, unsigned long len);
636 #define __copy_from_user(kptr, uptr, n) copy_from_user(kptr, uptr, n)
637 #define __copy_to_user(uptr, kptr, n) copy_to_user(uptr, kptr, n)
638 extern unsigned long clear_user(void *uptr, unsigned long n);
639
640 #define __clear_user(ptr, n) clear_user(ptr, n)
641 #undef errno
642 #define errno errno_v4l
643
644 /* rcu - support */
645 #define RCU_INIT_POINTER(p, v) do { \
646 (p) = (v); \
647 } while (0)
648 #define rcu_read_lock() atomic_lock()
649 #define rcu_read_unlock() atomic_unlock()
650 #define rcu_dereference(var) \
651 ({ __typeof(var) __temp; \
652 atomic_lock(); \
653 __temp = (var); \
654 atomic_unlock(); \
655 __temp; })
656 #define rcu_dereference_protected(p,c) rcu_dereference(p)
657 #define rcu_dereference_raw(p) rcu_dereference(p)
658 #define rcu_assign_pointer(a,b) do { atomic_lock(); (a) = (b); atomic_unlock(); } while (0)
659 #define synchronize_rcu() do { \
660 atomic_lock(); \
661 atomic_unlock(); \
662 } while (0)
663
664 #define add_input_randomness(...) __nop
665
666 #define kill_fasync(...) __nop
667 #define fasync_helper(...) (0)
668
669 #define get_file(x) __nop
670
671 #define ATOMIC_INIT(x) { (x) }
672 #define ATOMIC64_INIT(x) { (x) }
673
674 #define CLOCK_BOOTTIME CLOCK_UPTIME
675
676 #define IRQ_NONE 0
677 #define IRQ_HANDLED 1
678
679 #define PLATFORM_DEVID_NONE (-1)
680 #define PLATFORM_DEVID_AUTO (-2)
681
682 #define DPM_ORDER_NONE 0
683
684 #define RPM_ACTIVE 0
685 #define RPM_SUSPENDED 0
686
687 #define ilog2(n) \
688 ( \
689 __builtin_constant_p(n) ? ( \
690 (n) < 1 ? -1 : \
691 (n) & (1ULL << 63) ? 63 : \
692 (n) & (1ULL << 62) ? 62 : \
693 (n) & (1ULL << 61) ? 61 : \
694 (n) & (1ULL << 60) ? 60 : \
695 (n) & (1ULL << 59) ? 59 : \
696 (n) & (1ULL << 58) ? 58 : \
697 (n) & (1ULL << 57) ? 57 : \
698 (n) & (1ULL << 56) ? 56 : \
699 (n) & (1ULL << 55) ? 55 : \
700 (n) & (1ULL << 54) ? 54 : \
701 (n) & (1ULL << 53) ? 53 : \
702 (n) & (1ULL << 52) ? 52 : \
703 (n) & (1ULL << 51) ? 51 : \
704 (n) & (1ULL << 50) ? 50 : \
705 (n) & (1ULL << 49) ? 49 : \
706 (n) & (1ULL << 48) ? 48 : \
707 (n) & (1ULL << 47) ? 47 : \
708 (n) & (1ULL << 46) ? 46 : \
709 (n) & (1ULL << 45) ? 45 : \
710 (n) & (1ULL << 44) ? 44 : \
711 (n) & (1ULL << 43) ? 43 : \
712 (n) & (1ULL << 42) ? 42 : \
713 (n) & (1ULL << 41) ? 41 : \
714 (n) & (1ULL << 40) ? 40 : \
715 (n) & (1ULL << 39) ? 39 : \
716 (n) & (1ULL << 38) ? 38 : \
717 (n) & (1ULL << 37) ? 37 : \
718 (n) & (1ULL << 36) ? 36 : \
719 (n) & (1ULL << 35) ? 35 : \
720 (n) & (1ULL << 34) ? 34 : \
721 (n) & (1ULL << 33) ? 33 : \
722 (n) & (1ULL << 32) ? 32 : \
723 (n) & (1ULL << 31) ? 31 : \
724 (n) & (1ULL << 30) ? 30 : \
725 (n) & (1ULL << 29) ? 29 : \
726 (n) & (1ULL << 28) ? 28 : \
727 (n) & (1ULL << 27) ? 27 : \
728 (n) & (1ULL << 26) ? 26 : \
729 (n) & (1ULL << 25) ? 25 : \
730 (n) & (1ULL << 24) ? 24 : \
731 (n) & (1ULL << 23) ? 23 : \
732 (n) & (1ULL << 22) ? 22 : \
733 (n) & (1ULL << 21) ? 21 : \
734 (n) & (1ULL << 20) ? 20 : \
735 (n) & (1ULL << 19) ? 19 : \
736 (n) & (1ULL << 18) ? 18 : \
737 (n) & (1ULL << 17) ? 17 : \
738 (n) & (1ULL << 16) ? 16 : \
739 (n) & (1ULL << 15) ? 15 : \
740 (n) & (1ULL << 14) ? 14 : \
741 (n) & (1ULL << 13) ? 13 : \
742 (n) & (1ULL << 12) ? 12 : \
743 (n) & (1ULL << 11) ? 11 : \
744 (n) & (1ULL << 10) ? 10 : \
745 (n) & (1ULL << 9) ? 9 : \
746 (n) & (1ULL << 8) ? 8 : \
747 (n) & (1ULL << 7) ? 7 : \
748 (n) & (1ULL << 6) ? 6 : \
749 (n) & (1ULL << 5) ? 5 : \
750 (n) & (1ULL << 4) ? 4 : \
751 (n) & (1ULL << 3) ? 3 : \
752 (n) & (1ULL << 2) ? 2 : \
753 (n) & (1ULL << 1) ? 1 : \
754 (n) & (1ULL << 0) ? 0 : \
755 -1) : \
756 (sizeof(n) <= 4) ? \
757 fls((u32)(n)) - 1 : flsll((u64)(n)) - 1 \
758 )
759
760 #if (defined(BYTE_ORDER) && defined(LITTLE_ENDIAN) && defined(BIG_ENDIAN))
761 #if (BYTE_ORDER == LITTLE_ENDIAN)
762 #ifndef __LITTLE_ENDIAN
763 #define __LITTLE_ENDIAN
764 #endif
765 #elif BYTE_ORDER == BIG_ENDIAN
766 #ifndef __BIG_ENDIAN
767 #define __BIG_ENDIAN
768 #endif
769 #else
770 #error "Unknown byte order"
771 #endif
772 #endif
773
774 struct kernel_param;
775
776 typedef uint16_t umode_t;
777 typedef int8_t __s8;
778 typedef uint8_t __u8;
779 typedef int16_t __s16;
780 typedef uint16_t __u16;
781 typedef int32_t __s32;
782 typedef uint32_t __u32;
783 typedef int64_t __s64;
784 typedef uint64_t __u64;
785 typedef int8_t s8;
786 typedef uint8_t u8;
787 typedef int16_t s16;
788 typedef uint16_t u16;
789 typedef int32_t s32;
790 typedef uint32_t u32;
791 typedef int64_t s64;
792 typedef uint64_t u64;
793 typedef u64 dma_addr_t;
794 typedef u64 dma64_addr_t;
795 typedef u64 sector_t;
796 typedef uint16_t __le16;
797 typedef uint32_t __le32;
798 typedef uint64_t __le64;
799 typedef uint16_t __be16;
800 typedef uint32_t __be32;
801 typedef uint64_t __be64;
802 typedef uint32_t uint;
803 typedef int irqreturn_t;
804 typedef off_t __kernel_off_t;
805 typedef int __kernel_pid_t;
806 typedef unsigned long __kernel_ulong_t;
807 typedef unsigned long phys_addr_t;
808 typedef unsigned int __poll_t;
809 #define __kernel_timespec timespec
810
811 #define fwnode_graph_get_remote_port_parent(...) NULL
812 #define fwnode_handle_get(x) x
813 #define fwnode_handle_put(...) __nop
814 #define dev_fwnode(...) NULL
815 #define dmi_match(...) 0
816
817 #define device_remove_groups(...) __nop
818 #define device_add_groups(...) (int)0
819
820 #ifndef __GLIBC__
821 typedef long long loff_t;
822
823 #endif
824 typedef uint32_t gfp_t;
825 typedef struct timespec ktime_t;
826
827 #define timespec64 timespec
828
829 static inline int
linux_abs(int a)830 linux_abs(int a)
831 {
832 return (a < 0 ? -a : a);
833 }
834
835 #undef abs
836 #define abs(a) linux_abs(a)
837
838 typedef int (*cmp_func_t)(const void *a, const void *b);
839
840 #define DEFINE_SHOW_ATTRIBUTE(...)
841
842 #endif /* _LINUX_DEFS_H_ */
843