Removed irq notification slots. - To be revised with a better implementation

This commit is contained in:
Bahadir Balban
2009-12-02 16:03:09 +02:00
parent c9fc6d9341
commit d210678085
2 changed files with 14 additions and 8 deletions

View File

@@ -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

View File

@@ -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;
}