git://scm.lunaixsky.com
/
lunaix-os.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add el1 transfer at the boot stage in case higher EL is implemented
[lunaix-os.git]
/
lunaix-os
/
includes
/
hal
/
devtree.h
diff --git
a/lunaix-os/includes/hal/devtree.h
b/lunaix-os/includes/hal/devtree.h
index 5578284b1d878ff715d756dda68a2fa8052fda23..f95abf2faff7362248c8deb34cdf3220e3aa84fe 100644
(file)
--- a/
lunaix-os/includes/hal/devtree.h
+++ b/
lunaix-os/includes/hal/devtree.h
@@
-1,6
+1,7
@@
#ifndef __LUNAIX_DEVTREE_H
#define __LUNAIX_DEVTREE_H
#ifndef __LUNAIX_DEVTREE_H
#define __LUNAIX_DEVTREE_H
+#ifdef CONFIG_USE_DEVICETREE
#include <lunaix/types.h>
#include <lunaix/ds/llist.h>
#include <lunaix/ds/hstr.h>
#include <lunaix/types.h>
#include <lunaix/ds/llist.h>
#include <lunaix/ds/hstr.h>
@@
-46,14
+47,14
@@
struct dtp_val
{
union
{
{
union
{
- union {
- const char* str_val;
- const char* str_lst;
- };
ptr_t ptr_val;
dt_enc_t encoded;
union dtp_baseval* ref;
ptr_t ptr_val;
dt_enc_t encoded;
union dtp_baseval* ref;
+ union {
+ const char* str_val;
+ const char* str_lst;
+ };
};
unsigned int size;
};
};
unsigned int size;
};
@@
-675,7
+676,7
@@
static inline void
dtpi_init_empty(struct dtpropi* dtpi)
{
*dtpi = (struct dtpropi) {
dtpi_init_empty(struct dtpropi* dtpi)
{
*dtpi = (struct dtpropi) {
- .prop = {
0
, 0 },
+ .prop = {
{0}
, 0 },
.loc = 0
};
}
.loc = 0
};
}
@@
-692,23
+693,27
@@
dtpi_has_next(struct dtpropi* dtpi)
return dtpi->loc < dtpi->prop.size / sizeof(u32_t);
}
return dtpi->loc < dtpi->prop.size / sizeof(u32_t);
}
-static inline u
32
_t
-dtpi_next_
u32(struct dtpropi* dtpi
)
+static inline u
64
_t
+dtpi_next_
integer(struct dtpropi* dtpi, int int_cells
)
{
union dtp_baseval* val;
{
union dtp_baseval* val;
- val = (union dtp_baseval*)&dtpi->prop.encoded[dtpi->loc++];
- return val->u32_val;
+ off_t loc = dtpi->loc;
+ dtpi->loc += int_cells;
+ val = (union dtp_baseval*)&dtpi->prop.encoded[loc];
+
+ return int_cells == 1 ? val->u32_val : val->u64_val;
}
static inline u64_t
dtpi_next_u64(struct dtpropi* dtpi)
{
}
static inline u64_t
dtpi_next_u64(struct dtpropi* dtpi)
{
- union dtp_baseval* val;
- off_t loc = dtpi->loc;
- dtpi->loc += 2;
- val = (union dtp_baseval*)&dtpi->prop.encoded[loc];
-
- return val->u64_val;
+ return dtpi_next_integer(dtpi, 2);
+}
+
+static inline u32_t
+dtpi_next_u32(struct dtpropi* dtpi)
+{
+ return (u32_t)dtpi_next_integer(dtpi, 1);
}
static inline struct dtn*
}
static inline struct dtn*
@@
-733,4
+738,5
@@
dtpi_next_val(struct dtpropi* dtpi, struct dtp_val* val, int cells)
return true;
}
return true;
}
+#endif
#endif /* __LUNAIX_DEVTREE_H */
#endif /* __LUNAIX_DEVTREE_H */