Changeset 2b017ba in mainline for kernel/generic/include/ipc/irq.h


Ignore:
Timestamp:
2006-10-16T20:51:55Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5f9b4d9a
Parents:
e3890b3f
Message:

Replace the old IRQ dispatcher and IPC notifier with new implementation.
Note that all architectures except for sparc64 are now broken
and don't even compile.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/ipc/irq.h

    re3890b3f r2b017ba  
    3939#define IRQ_MAX_PROG_SIZE 10
    4040
    41 /** Reserved 'virtual' messages for kernel notifications */
    42 #define IPC_IRQ_RESERVED_VIRTUAL 10
    43 
    44 #define IPC_IRQ_KLOG       (-1)
    45 #define IPC_IRQ_KBDRESTART (-2)
     41#define VIRT_INR_KLOG           -2
     42#define VIRT_INR_KBDRESTART     -3
    4643
    4744typedef enum {
     
    7673
    7774#include <ipc/ipc.h>
     75#include <typedefs.h>
     76#include <arch/types.h>
    7877
    79 extern void ipc_irq_make_table(int irqcount);
    80 extern int ipc_irq_register(answerbox_t *box, int irq, irq_code_t *ucode);
    81 extern void ipc_irq_send_notif(int irq);
    82 extern void ipc_irq_send_msg(int irq, unative_t a1, unative_t a2, unative_t a3);
    83 extern void ipc_irq_unregister(answerbox_t *box, int irq);
    84 extern void irq_ipc_bind_arch(unative_t irq);
     78/** IPC notification config structure.
     79 *
     80 * Primarily, this structure is encapsulated in the irq_t structure.
     81 * It is protected by irq_t::lock.
     82 */
     83struct ipc_notif_cfg {
     84        answerbox_t *answerbox;         /**< Answerbox for notifications. */
     85        unative_t method;               /**< Method to be used for the notification. */
     86        irq_code_t *code;               /**< Top-half pseudocode. */
     87        count_t counter;                /**< Counter. */
     88};
     89
     90extern int ipc_irq_register(answerbox_t *box, inr_t inr, devno_t devno, unative_t method,
     91        irq_code_t *ucode);
     92extern void ipc_irq_send_notif(irq_t *irq);
     93extern void ipc_irq_send_msg(irq_t *irq, unative_t a1, unative_t a2, unative_t a3);
     94extern void ipc_irq_unregister(answerbox_t *box, inr_t inr, devno_t devno);
    8595extern void ipc_irq_cleanup(answerbox_t *box);
    8696
Note: See TracChangeset for help on using the changeset viewer.