c2374c82820d05d2352b28e12d0038d8ab455432
[lunaix-os.git] / lunaix-os / hal / devtree / devtree.h
1 #ifndef __LUNAIX_DEVTREE_INTERNAL_H
2 #define __LUNAIX_DEVTREE_INTERNAL_H
3
4 #include <hal/devtree.h>
5
6 #include <klibc/string.h>
7
8 static inline bool
9 propeq(struct fdt_iter* it, const char* key)
10 {
11     return streq(fdtit_prop_key(it), key);
12 }
13
14 static inline void
15 __mkprop_val32(struct fdt_iter* it, struct dt_prop_val* val)
16 {
17     val->u32_val = le(*(u32_t*)&it->prop[1]);
18     val->size = le(it->prop->len);
19 }
20
21 static inline void
22 __mkprop_val64(struct fdt_iter* it, struct dt_prop_val* val)
23 {
24     val->u64_val = le64(*(u64_t*)&it->prop[1]);
25     val->size = le(it->prop->len);
26 }
27
28 static inline void
29 __mkprop_ptr(struct fdt_iter* it, struct dt_prop_val* val)
30 {
31     val->ptr_val = __ptr(&it->prop[1]);
32     val->size = le(it->prop->len);
33 }
34
35 static inline u32_t
36 __prop_getu32(struct fdt_iter* it)
37 {
38     return le(*(u32_t*)&it->prop[1]);
39 }
40
41 bool
42 parse_stdintr_prop(struct fdt_iter* it, struct dt_intr_node* node);
43
44 bool
45 parse_stdintr_prop(struct fdt_iter* it, struct dt_intr_node* node);
46
47 #endif /* __LUNAIX_DEVTREE_H */