aboutsummaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2012-07-04 09:07:21 +0000
committerDimitri Sokolyuk <demon@dim13.org>2012-07-04 09:07:21 +0000
commit9263147ac6cff78b2b25af1f3108b2b8268726bd (patch)
tree2f8ea558e20fe2deb2fdf715ff4c16b815445525 /kernel/kernel.c
parent13c7e06a7225d2d0f8f4306c404505f12c921af8 (diff)
remove sei, reti enables interrupts
Diffstat (limited to 'kernel/kernel.c')
-rw-r--r--kernel/kernel.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index c82a795..9a40247 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -188,7 +188,7 @@ init(uint8_t sema, uint8_t stack)
wdt_enable(TIMEOUT);
- sei();
+ swtch();
}
void
@@ -245,9 +245,8 @@ wait(uint8_t chan)
} else {
/* occupy semaphore and continue */
kern.semaphore |= _BV(chan);
+ sei();
}
-
- sei();
}
void
@@ -294,8 +293,6 @@ sleep(uint32_t sec, uint32_t usec)
TAILQ_INSERT_TAIL(&kern.tq, kern.cur, t_link);
swtch();
-
- sei();
}
void
@@ -305,9 +302,8 @@ yield(void)
TAILQ_REMOVE(kern.cur->rq, kern.cur, r_link);
TAILQ_INSERT_TAIL(kern.cur->rq, kern.cur, r_link);
- swtch();
- sei();
+ swtch();
}
void
@@ -317,9 +313,8 @@ suspend(void)
/* TODO: free memory */
TAILQ_REMOVE(kern.cur->rq, kern.cur, r_link);
- swtch();
- sei();
+ swtch();
}
uint32_t