Chameleon

Chameleon Svn Source Tree

Root/branches/chucko/i386/libsaio/device_tree.h

1/*
2 * Copyright (c) 2005 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * Portions Copyright (c) 1999-2003 Apple Computer, Inc. All Rights
7 * Reserved. This file contains Original Code and/or Modifications of
8 * Original Code as defined in and that are subject to the Apple Public
9 * Source License Version 2.0 (the "License"). You may not use this file
10 * except in compliance with the License. Please obtain a copy of the
11 * License at http://www.apple.com/publicsource and read it before using
12 * this file.
13 *
14 * The Original Code and all software distributed under the License are
15 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
16 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
17 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT. Please see the
19 * License for the specific language governing rights and limitations
20 * under the License.
21 *
22 * @APPLE_LICENSE_HEADER_END@
23 */
24
25#ifndef __DEVICE_TREE_H
26#define __DEVICE_TREE_H
27
28#include <stdbool.h>
29#include <stdint.h>
30
31
32//==============================================================================
33
34typedef struct _Property {
35const char *name;
36uint32_tlength;
37void *value;
38struct _Property *next;
39} Property;
40
41
42//==============================================================================
43
44typedef struct _Node {
45struct _Property *properties;
46struct _Property *last_prop;
47struct _Node *children;
48struct _Node *next;
49} Node;
50
51
52extern Property *
53DT__AddProperty(Node *node, const char *name, uint32_t length, void *value);
54
55extern Node *
56DT__AddChild(Node *parent, const char *name);
57
58Node *
59DT__FindNode(const char *path, bool createIfMissing);
60
61extern void
62DT__FreeProperty(Property *prop);
63
64extern void
65DT__FreeNode(Node *node);
66
67extern char *
68DT__GetName(Node *node);
69
70extern Property *
71DT__GetProperty(Node *node, const char *name);
72
73void
74DT__Initialize(void);
75
76
77// Free up memory used by in-memory representation of device tree.
78
79extern void
80DT__Finalize(void);
81
82void
83DT__FlattenDeviceTree(void **result, uint32_t *length);
84
85
86#endif /* __DEVICE_TREE_H */
87

Archive Download this file

Revision: 2406