xref: /haiku/src/add-ons/kernel/drivers/dvb/cx23882/util.h (revision 083a11a3f4b17abb0e5c8d97bb9886af54626abf)
1*083a11a3SMarcus Overhagen /*
2*083a11a3SMarcus Overhagen  * Copyright (c) 2004-2007 Marcus Overhagen <marcus@overhagen.de>
3*083a11a3SMarcus Overhagen  *
4*083a11a3SMarcus Overhagen  * Permission is hereby granted, free of charge, to any person
5*083a11a3SMarcus Overhagen  * obtaining a copy of this software and associated documentation
6*083a11a3SMarcus Overhagen  * files (the "Software"), to deal in the Software without restriction,
7*083a11a3SMarcus Overhagen  * including without limitation the rights to use, copy, modify,
8*083a11a3SMarcus Overhagen  * merge, publish, distribute, sublicense, and/or sell copies of
9*083a11a3SMarcus Overhagen  * the Software, and to permit persons to whom the Software is
10*083a11a3SMarcus Overhagen  * furnished to do so, subject to the following conditions:
11*083a11a3SMarcus Overhagen  *
12*083a11a3SMarcus Overhagen  * The above copyright notice and this permission notice shall be
13*083a11a3SMarcus Overhagen  * included in all copies or substantial portions of the Software.
14*083a11a3SMarcus Overhagen  *
15*083a11a3SMarcus Overhagen  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16*083a11a3SMarcus Overhagen  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
17*083a11a3SMarcus Overhagen  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18*083a11a3SMarcus Overhagen  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
19*083a11a3SMarcus Overhagen  * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20*083a11a3SMarcus Overhagen  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21*083a11a3SMarcus Overhagen  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22*083a11a3SMarcus Overhagen  * OTHER DEALINGS IN THE SOFTWARE.
23*083a11a3SMarcus Overhagen  */
24*083a11a3SMarcus Overhagen 
25*083a11a3SMarcus Overhagen #ifndef __UTIL_H
26*083a11a3SMarcus Overhagen #define __UTIL_H
27*083a11a3SMarcus Overhagen 
28*083a11a3SMarcus Overhagen #include <OS.h>
29*083a11a3SMarcus Overhagen 
30*083a11a3SMarcus Overhagen area_id	map_mem(void **virt, void *phy, size_t size, uint32 protection, const char *name);
31*083a11a3SMarcus Overhagen area_id alloc_mem(void **virt, void **phy, size_t size, uint32 protection, const char *name);
32*083a11a3SMarcus Overhagen 
33*083a11a3SMarcus Overhagen // generic macro for rounding, can only be used for power of 2 blocksize
34*083a11a3SMarcus Overhagen #define ROUNDUP(size, blocksize) 	(((size) + (blocksize) - 1) & ~((blocksize) - 1))
35*083a11a3SMarcus Overhagen 
36*083a11a3SMarcus Overhagen #define atomic_read(a) atomic_or(a, 0)
37*083a11a3SMarcus Overhagen 
38*083a11a3SMarcus Overhagen #endif
39