~ubuntu-branches/ubuntu/lucid/linux-rt/lucid

« back to all changes in this revision

Viewing changes to arch/powerpc/boot/libfdt/libfdt_internal.h

  • Committer: Bazaar Package Importer
  • Author(s): Luke Yelavich
  • Date: 2009-08-05 23:00:52 UTC
  • Revision ID: james.westby@ubuntu.com-20090805230052-7xedvqcyk9dnnxb2
Tags: 2.6.31-1.1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
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
 
uint32_t _fdt_next_tag(const void *fdt, int startoffset, int *nextoffset);
66
 
int _fdt_check_node_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 */