Unifying External Interrupt System (#51)
[lunaix-os.git] / lunaix-os / hal / devtree / devtree.h
index c2374c82820d05d2352b28e12d0038d8ab455432..66fe7dc0c9bac28809f99607cc6e2caabc62475f 100644 (file)
@@ -6,42 +6,31 @@
 #include <klibc/string.h>
 
 static inline bool
 #include <klibc/string.h>
 
 static inline bool
-propeq(struct fdt_iter* it, const char* key)
+propeq(struct fdt_blob* fdt, fdt_loc_t loc, const char* key)
 {
 {
-    return streq(fdtit_prop_key(it), key);
+    return streq(fdt_prop_key(fdt, loc), key);
 }
 
 }
 
-static inline void
-__mkprop_val32(struct fdt_iter* it, struct dt_prop_val* val)
+static inline ptr_t
+__prop_val_ptr(struct fdt_prop* prop)
 {
 {
-    val->u32_val = le(*(u32_t*)&it->prop[1]);
-    val->size = le(it->prop->len);
+    return __ptr(prop) + sizeof(struct fdt_prop);
 }
 
 static inline void
 }
 
 static inline void
-__mkprop_val64(struct fdt_iter* it, struct dt_prop_val* val)
+__mkprop_ptr(fdt_loc_t loc, struct dtp_val* val)
 {
 {
-    val->u64_val = le64(*(u64_t*)&it->prop[1]);
-    val->size = le(it->prop->len);
-}
-
-static inline void
-__mkprop_ptr(struct fdt_iter* it, struct dt_prop_val* val)
-{
-    val->ptr_val = __ptr(&it->prop[1]);
-    val->size = le(it->prop->len);
+    val->ptr_val = __prop_val_ptr(loc.prop);
+    val->size = loc.prop->len;
 }
 
 static inline u32_t
 }
 
 static inline u32_t
-__prop_getu32(struct fdt_iter* it)
+__prop_getu32(fdt_loc_t loc)
 {
 {
-    return le(*(u32_t*)&it->prop[1]);
+    return loc.prop->val[0];
 }
 
 bool
 }
 
 bool
-parse_stdintr_prop(struct fdt_iter* it, struct dt_intr_node* node);
-
-bool
-parse_stdintr_prop(struct fdt_iter* it, struct dt_intr_node* node);
+parse_stdintr_prop(struct fdt_blob*, fdt_loc_t, struct dtn_intr*);
 
 #endif /* __LUNAIX_DEVTREE_H */
 
 #endif /* __LUNAIX_DEVTREE_H */