]> git.saurik.com Git - apple/boot.git/blob - i386/libsaio/device_tree.h
boot-132.tar.gz
[apple/boot.git] / i386 / libsaio / device_tree.h
1 /*
2 * Copyright (c) 2005 Apple Computer, Inc. All Rights Reserved.
3 */
4
5 #ifndef __DEVICE_TREE_H
6 #define __DEVICE_TREE_H
7
8 #include <stdbool.h>
9 #include <stdint.h>
10
11 typedef struct _Property {
12 char * name;
13 uint32_t length;
14 void * value;
15
16 struct _Property * next;
17 } Property;
18
19 typedef struct _Node {
20 struct _Property * properties;
21 struct _Property * last_prop;
22
23 struct _Node * children;
24
25 struct _Node * next;
26 } Node;
27
28
29 extern Property *
30 DT__AddProperty(Node *node, char *name, uint32_t length, void *value);
31
32 extern Node *
33 DT__AddChild(Node *parent, char *name);
34
35 Node *
36 DT__FindNode(char *path, bool createIfMissing);
37
38 extern void
39 DT__FreeProperty(Property *prop);
40
41 extern void
42 DT__FreeNode(Node *node);
43
44 extern char *
45 DT__GetName(Node *node);
46
47 void
48 DT__Initialize(void);
49
50 /*
51 * Free up memory used by in-memory representation
52 * of device tree.
53 */
54 extern void
55 DT__Finalize(void);
56
57 void
58 DT__FlattenDeviceTree(void **result, uint32_t *length);
59
60
61 #endif /* __DEVICE_TREE_H */