Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.git] / include / linux / firmware-map.h
1 /*
2  * include/linux/firmware-map.h:
3  *  Copyright (C) 2008 SUSE LINUX Products GmbH
4  *  by Bernhard Walle <bwalle@suse.de>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License v2.0 as published by
8  * the Free Software Foundation
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  */
16 #ifndef _LINUX_FIRMWARE_MAP_H
17 #define _LINUX_FIRMWARE_MAP_H
18
19 #include <linux/list.h>
20 #include <linux/kobject.h>
21
22 /*
23  * provide a dummy interface if CONFIG_FIRMWARE_MEMMAP is disabled
24  */
25 #ifdef CONFIG_FIRMWARE_MEMMAP
26
27 /**
28  * Adds a firmware mapping entry. This function uses kmalloc() for memory
29  * allocation. Use firmware_map_add_early() if you want to use the bootmem
30  * allocator.
31  *
32  * That function must be called before late_initcall.
33  *
34  * @start: Start of the memory range.
35  * @end:   End of the memory range (inclusive).
36  * @type:  Type of the memory range.
37  *
38  * Returns 0 on success, or -ENOMEM if no memory could be allocated.
39  */
40 int firmware_map_add(resource_size_t start, resource_size_t end,
41                      const char *type);
42
43 /**
44  * Adds a firmware mapping entry. This function uses the bootmem allocator
45  * for memory allocation. Use firmware_map_add() if you want to use kmalloc().
46  *
47  * That function must be called before late_initcall.
48  *
49  * @start: Start of the memory range.
50  * @end:   End of the memory range (inclusive).
51  * @type:  Type of the memory range.
52  *
53  * Returns 0 on success, or -ENOMEM if no memory could be allocated.
54  */
55 int firmware_map_add_early(resource_size_t start, resource_size_t end,
56                            const char *type);
57
58 #else /* CONFIG_FIRMWARE_MEMMAP */
59
60 static inline int firmware_map_add(resource_size_t start, resource_size_t end,
61                                    const char *type)
62 {
63         return 0;
64 }
65
66 static inline int firmware_map_add_early(resource_size_t start,
67                                          resource_size_t end, const char *type)
68 {
69         return 0;
70 }
71
72 #endif /* CONFIG_FIRMWARE_MEMMAP */
73
74 #endif /* _LINUX_FIRMWARE_MAP_H */