RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
sparc64
include
genarch
ofw
ofw_tree.h
1
/*
2
* Copyright (c) 2006 Jakub Jermar
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
7
* are met:
8
*
9
* - Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
* - Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in the
13
* documentation and/or other materials provided with the distribution.
14
* - The name of the author may not be used to endorse or promote products
15
* derived from this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
*/
28
29
#ifndef KERN_OFW_TREE_H_
30
#define KERN_OFW_TREE_H_
31
32
#include <arch/types.h>
33
#include <typedefs.h>
34
35
#define OFW_TREE_PROPERTY_MAX_NAMELEN 32
36
38
typedef
struct
{
39
char
name[OFW_TREE_PROPERTY_MAX_NAMELEN];
40
size_t
size;
41
void
*value;
42
}
ofw_tree_property_t
;
43
45
typedef
struct
ofw_tree_node
{
46
struct
ofw_tree_node *parent;
47
struct
ofw_tree_node *peer;
48
struct
ofw_tree_node *child;
49
50
uint32_t
node_handle
;
51
52
char
*
da_name
;
53
54
unsigned
int
properties
;
55
ofw_tree_property_t *property;
56
61
void
*
device
;
62
} ofw_tree_node_t;
63
64
/* Walker for visiting OpenFirmware device tree nodes. */
65
typedef
bool (* ofw_tree_walker_t)(ofw_tree_node_t *,
void
*);
66
67
extern
void
ofw_tree_init(ofw_tree_node_t *);
68
extern
void
ofw_tree_print(
void
);
69
70
extern
const
char
*ofw_tree_node_name(
const
ofw_tree_node_t *);
71
extern
ofw_tree_node_t *ofw_tree_lookup(
const
char
*);
72
extern
ofw_tree_property_t
*ofw_tree_getprop(
const
ofw_tree_node_t *,
73
const
char
*);
74
extern
void
ofw_tree_walk_by_device_type(
const
char
*, ofw_tree_walker_t,
75
void
*);
76
77
extern
ofw_tree_node_t *ofw_tree_find_child(ofw_tree_node_t *,
const
char
*);
78
extern
ofw_tree_node_t *ofw_tree_find_child_by_device_type(ofw_tree_node_t *,
79
const
char
*);
80
81
extern
ofw_tree_node_t *ofw_tree_find_peer_by_device_type(ofw_tree_node_t *,
82
const
char
*);
83
extern
ofw_tree_node_t *ofw_tree_find_peer_by_name(ofw_tree_node_t *,
84
const
char
*);
85
extern
ofw_tree_node_t *ofw_tree_find_node_by_handle(ofw_tree_node_t *,
86
uint32_t);
87
88
#endif
ofw_tree_node
Definition
ofw_tree.h:44
ofw_tree_node::node_handle
uint32_t node_handle
Definition
ofw_tree.h:49
ofw_tree_node::da_name
char * da_name
Definition
ofw_tree.h:51
ofw_tree_node::properties
unsigned int properties
Definition
ofw_tree.h:53
ofw_tree_node::device
void * device
Definition
ofw_tree.h:56
ofw_tree_property_t
Definition
ofw_tree.h:37
Generated by
1.18.0