Chameleon

Chameleon Svn Source Tree

Root/trunk/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
35{
36const char *name;
37uint32_tlength;
38void *value;
39struct _Property *next;
40} Property;
41
42
43//==============================================================================
44
45typedef struct _Node
46{
47struct _Property *properties;
48struct _Property *last_prop;
49struct _Node *children;
50struct _Node *next;
51} Node;
52
53extern Property *DT__AddProperty(Node *node, const char *name, uint32_t length, void *value);
54
55extern Node *DT__AddChild(Node *parent, const char *name);
56
57Node *DT__FindNode(const char *path, bool createIfMissing);
58
59extern void DT__FreeProperty(Property *prop);
60
61extern void DT__FreeNode(Node *node);
62
63extern char *DT__GetName(Node *node);
64
65extern Property *DT__GetProperty(Node *node, const char *name);
66
67void DT__Initialize(void);
68
69// Free up memory used by in-memory representation of device tree.
70extern void DT__Finalize(void);
71
72void DT__FlattenDeviceTree(void **result, uint32_t *length);
73
74#endif /* __DEVICE_TREE_H */
75

Archive Download this file

Revision: 2759