Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
scripts
dtc
libfdt
libfdt_internal.h
Go to the documentation of this file.
1
#ifndef _LIBFDT_INTERNAL_H
2
#define _LIBFDT_INTERNAL_H
3
/*
4
* libfdt - Flat Device Tree manipulation
5
* Copyright (C) 2006 David Gibson, IBM Corporation.
6
*
7
* libfdt is dual licensed: you can use it either under the terms of
8
* the GPL, or the BSD license, at your option.
9
*
10
* a) This library is free software; you can redistribute it and/or
11
* modify it under the terms of the GNU General Public License as
12
* published by the Free Software Foundation; either version 2 of the
13
* License, or (at your option) any later version.
14
*
15
* This library is distributed in the hope that it will be useful,
16
* but WITHOUT ANY WARRANTY; without even the implied warranty of
17
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
* GNU General Public License for more details.
19
*
20
* You should have received a copy of the GNU General Public
21
* License along with this library; if not, write to the Free
22
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
23
* MA 02110-1301 USA
24
*
25
* Alternatively,
26
*
27
* b) Redistribution and use in source and binary forms, with or
28
* without modification, are permitted provided that the following
29
* conditions are met:
30
*
31
* 1. Redistributions of source code must retain the above
32
* copyright notice, this list of conditions and the following
33
* disclaimer.
34
* 2. Redistributions in binary form must reproduce the above
35
* copyright notice, this list of conditions and the following
36
* disclaimer in the documentation and/or other materials
37
* provided with the distribution.
38
*
39
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
40
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
41
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
42
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
43
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
44
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
45
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
46
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
47
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
49
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
50
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
51
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
52
*/
53
#include <
fdt.h
>
54
55
#define FDT_ALIGN(x, a) (((x) + (a) - 1) & ~((a) - 1))
56
#define FDT_TAGALIGN(x) (FDT_ALIGN((x), FDT_TAGSIZE))
57
58
#define FDT_CHECK_HEADER(fdt) \
59
{ \
60
int err; \
61
if ((err = fdt_check_header(fdt)) != 0) \
62
return err; \
63
}
64
65
int
_fdt_check_node_offset
(
const
void
*fdt,
int
offset
);
66
int
_fdt_check_prop_offset
(
const
void
*fdt,
int
offset
);
67
const
char
*
_fdt_find_string
(
const
char
*strtab,
int
tabsize,
const
char
*
s
);
68
int
_fdt_node_end_offset
(
void
*fdt,
int
nodeoffset);
69
70
static
inline
const
void
*_fdt_offset_ptr(
const
void
*fdt,
int
offset
)
71
{
72
return
(
const
char
*)fdt +
fdt_off_dt_struct
(fdt) +
offset
;
73
}
74
75
static
inline
void
*_fdt_offset_ptr_w(
void
*fdt,
int
offset)
76
{
77
return
(
void
*)(
uintptr_t
)_fdt_offset_ptr(fdt, offset);
78
}
79
80
static
inline
const
struct
fdt_reserve_entry
*_fdt_mem_rsv(
const
void
*fdt,
int
n
)
81
{
82
const
struct
fdt_reserve_entry
*rsv_table =
83
(
const
struct
fdt_reserve_entry
*)
84
((
const
char
*)fdt +
fdt_off_mem_rsvmap
(fdt));
85
86
return
rsv_table +
n
;
87
}
88
static
inline
struct
fdt_reserve_entry
*_fdt_mem_rsv_w(
void
*fdt,
int
n)
89
{
90
return
(
void
*)(
uintptr_t
)_fdt_mem_rsv(fdt, n);
91
}
92
93
#define FDT_SW_MAGIC (~FDT_MAGIC)
94
95
#endif
/* _LIBFDT_INTERNAL_H */
Generated on Thu Jan 10 2013 15:02:52 for Linux Kernel by
1.8.2