X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/bffa3430fbbaaad29bec0b5bee9c1f0bfc7fd068..c50ef1526a29f29b65cf353a590ea36b9d2e963a:/lunaix-os/includes/hal/devtree.h diff --git a/lunaix-os/includes/hal/devtree.h b/lunaix-os/includes/hal/devtree.h index 3a92116..0a132da 100644 --- a/lunaix-os/includes/hal/devtree.h +++ b/lunaix-os/includes/hal/devtree.h @@ -319,11 +319,11 @@ dt_decode(struct dt_prop_iter* dtpi, struct dt_node_base* node, } #define dt_decode_reg(dtpi, node, field) \ - dt_decode(dtpi, &(node)->base, (node)->(field), \ + dt_decode(dtpi, &(node)->base, &(node)->field, \ (node)->base.sz_c + (node)->base.addr_c); #define dt_decode_range(dtpi, node, field) \ - dt_decode(dtpi, &(node)->base, (node)->field, \ + dt_decode(dtpi, &(node)->base, &(node)->field, \ (node)->base.sz_c * 2 + (node)->base.addr_c); static inline void @@ -410,12 +410,34 @@ dtprop_reg_addr(struct dt_prop_iter* dtpi) return dtprop_extract(dtpi, 0); } +static inline ptr_t +dtprop_reg_nextaddr(struct dt_prop_iter* dtpi) +{ + ptr_t t; + + t = (ptr_t)dtprop_to_u64(dtprop_reg_addr(dtpi)); + dtprop_next(dtpi); + + return t; +} + static inline dt_enc_t dtprop_reg_len(struct dt_prop_iter* dtpi) { return dtprop_extract(dtpi, dtpi->node->addr_c); } +static inline size_t +dtprop_reg_nextlen(struct dt_prop_iter* dtpi) +{ + size_t t; + + t = (size_t)dtprop_to_u64(dtprop_reg_len(dtpi)); + dtprop_next(dtpi); + + return t; +} + static inline dt_enc_t dtprop_range_childbus(struct dt_prop_iter* dtpi) {