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
rewrite the device subsystem interfaces (#48)
[lunaix-os.git]
/
lunaix-os
/
hal
/
devtree
/
dt_interrupt.c
diff --git
a/lunaix-os/hal/devtree/dt_interrupt.c
b/lunaix-os/hal/devtree/dt_interrupt.c
index e6ad3ca184ba2444a389e690c6fb2c7be28b049e..ab4d8b36dcf58e43f6d569cf30a6c3eea26cfdc9 100644
(file)
--- a/
lunaix-os/hal/devtree/dt_interrupt.c
+++ b/
lunaix-os/hal/devtree/dt_interrupt.c
@@
-46,7
+46,7
@@
__interrupt_keysize(struct dt_node_base* base)
static void
__mask_key(struct dt_intr_mapkey* k, struct dt_intr_mapkey* mask)
{
static void
__mask_key(struct dt_intr_mapkey* k, struct dt_intr_mapkey* mask)
{
- for (int i = 0; i < k->size; i++)
+ for (
unsigned
int i = 0; i < k->size; i++)
{
k->val[i] &= mask->val[i];
}
{
k->val[i] &= mask->val[i];
}
@@
-59,7
+59,7
@@
__compare_key(struct dt_intr_mapkey* k1, struct dt_intr_mapkey* k2)
return false;
}
return false;
}
- for (int i = 0; i < k1->size; i++)
+ for (
unsigned
int i = 0; i < k1->size; i++)
{
if (k1->val[i] != k2->val[i]) {
return false;
{
if (k1->val[i] != k2->val[i]) {
return false;
@@
-173,11
+173,13
@@
dt_resolve_interrupt(struct dt_node* node)
llist_for_each(pos, n, &i_nexus->map->mapent, ents) {
if (__compare_key(&pos->key, &key))
{
llist_for_each(pos, n, &i_nexus->map->mapent, ents) {
if (__compare_key(&pos->key, &key))
{
+ __destory_key(&key);
return &pos->parent_props;
}
}
__destory_key(&key);
return &pos->parent_props;
}
}
__destory_key(&key);
+ return NULL;
}
bool
}
bool