mirror of
https://github.com/drasko/codezero.git
synced 2026-01-11 18:33:16 +01:00
Removed irq notification slots. - To be revised with a better implementation
This commit is contained in:
@@ -58,7 +58,7 @@
|
||||
* Complicated for you? Suggest a simpler design and it shall be implemented!
|
||||
*/
|
||||
|
||||
#define MR_REST ((UTCB_SIZE >> 2) - MR_TOTAL - 4) /* -4 is for fields on utcb */
|
||||
#define MR_REST ((UTCB_SIZE >> 2) - MR_TOTAL - 2) /* -2 is for fields on utcb */
|
||||
#define MR_TOTAL 6
|
||||
#define MR_TAG 0 /* Contains the purpose of message */
|
||||
#define MR_SENDER 1 /* For anythread receivers to discover sender */
|
||||
@@ -78,15 +78,11 @@
|
||||
|
||||
#include INC_GLUE(memlayout.h)
|
||||
|
||||
#define TASK_NOTIFY_SLOTS 8
|
||||
#define TASK_NOTIFY_MAX 0xFF
|
||||
|
||||
#if !defined (__ASSEMBLY__)
|
||||
struct utcb {
|
||||
u32 mr[MR_TOTAL]; /* MRs that are mapped to real registers */
|
||||
u32 saved_tag; /* Saved tag field for stacked ipcs */
|
||||
u32 saved_sender; /* Saved sender field for stacked ipcs */
|
||||
u8 notify[TASK_NOTIFY_SLOTS]; /* Notification slots */
|
||||
u32 mr_rest[MR_REST]; /* Complete the utcb for up to 64 words */
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include INC_GLUE(message.h)
|
||||
#include <l4/lib/wait.h>
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* Default function that handles userspace
|
||||
* threaded irqs. Increases notification count and wakes
|
||||
@@ -32,6 +33,8 @@
|
||||
*
|
||||
* - Recursive irqs are enabled, but we are also protected
|
||||
* from them because the current irq number is masked.
|
||||
*
|
||||
* FIXME: Instead of UTCB, do it by incrementing a semaphore.
|
||||
*/
|
||||
int thread_notify_default(struct irq_desc *desc)
|
||||
{
|
||||
@@ -75,9 +78,6 @@ int irq_control_register(struct ktcb *task, int notify_slot, l4id_t irqnum)
|
||||
{
|
||||
int err;
|
||||
|
||||
if (notify_slot >= TASK_NOTIFY_SLOTS)
|
||||
return -EINVAL;
|
||||
|
||||
/*
|
||||
* Check that utcb memory accesses won't fault us.
|
||||
*
|
||||
@@ -118,4 +118,14 @@ int sys_irq_control(unsigned int req, int slot, unsigned int flags, l4id_t irqno
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Register/deregister device irqs. Optional synchronous and
|
||||
* asynchronous irq handling.
|
||||
*/
|
||||
int sys_irq_control(unsigned int req, int slot, unsigned int flags, l4id_t irqno)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user