Ignore:
File:
1 edited

Legend:

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

    rc0699467 r180255f  
    3333 */
    3434
    35 #ifndef KERN_DDI_IRQ_H_
    36 #define KERN_DDI_IRQ_H_
     35#ifndef KERN_IRQ_H_
     36#define KERN_IRQ_H_
     37
     38#ifdef KERNEL
    3739
    3840#include <typedefs.h>
    39 #include <abi/ddi/irq.h>
    4041#include <adt/list.h>
    4142#include <adt/hash_table.h>
     
    4445#include <ipc/ipc.h>
    4546
     47#endif /* KERNEL */
     48
     49typedef enum {
     50        /** Read 1 byte from the I/O space. */
     51        CMD_PIO_READ_8 = 1,
     52        /** Read 2 bytes from the I/O space. */
     53        CMD_PIO_READ_16,
     54        /** Read 4 bytes from the I/O space. */
     55        CMD_PIO_READ_32,
     56       
     57        /** Write 1 byte to the I/O space. */
     58        CMD_PIO_WRITE_8,
     59        /** Write 2 bytes to the I/O space. */
     60        CMD_PIO_WRITE_16,
     61        /** Write 4 bytes to the I/O space. */
     62        CMD_PIO_WRITE_32,
     63       
     64        /**
     65         * Write 1 byte from the source argument
     66         * to the I/O space.
     67         */
     68        CMD_PIO_WRITE_A_8,
     69        /**
     70         * Write 2 bytes from the source argument
     71         * to the I/O space.
     72         */
     73        CMD_PIO_WRITE_A_16,
     74        /**
     75         * Write 4 bytes from the source argument
     76         * to the I/O space.
     77         */
     78        CMD_PIO_WRITE_A_32,
     79
     80        /** Read 1 byte from the memory space. */
     81        CMD_MEM_READ_8,
     82        /** Read 2 bytes from the memory space. */
     83        CMD_MEM_READ_16,
     84        /** Read 4 bytes from the memory space. */
     85        CMD_MEM_READ_32,
     86
     87        /** Write 1 byte to the memory space. */
     88        CMD_MEM_WRITE_8,
     89        /** Write 2 bytes to the memory space. */
     90        CMD_MEM_WRITE_16,
     91        /** Write 4 bytes to the memory space. */
     92        CMD_MEM_WRITE_32,
     93
     94        /** Write 1 byte from the source argument to the memory space. */
     95        CMD_MEM_WRITE_A_8,
     96        /** Write 2 bytes from the source argument to the memory space. */
     97        CMD_MEM_WRITE_A_16,
     98        /** Write 4 bytes from the source argument to the memory space. */
     99        CMD_MEM_WRITE_A_32,
     100
     101        /**
     102         * Perform a bit masking on the source argument
     103         * and store the result into the destination argument.
     104         */
     105        CMD_BTEST,
     106       
     107        /**
     108         * Predicate the execution of the following
     109         * N commands by the boolean value of the source
     110         * argument.
     111         */
     112        CMD_PREDICATE,
     113       
     114        /** Accept the interrupt. */
     115        CMD_ACCEPT,
     116       
     117        /** Decline the interrupt. */
     118        CMD_DECLINE,
     119        CMD_LAST
     120} irq_cmd_type;
     121
     122typedef struct {
     123        irq_cmd_type cmd;
     124        void *addr;
     125        uint32_t value;
     126        uintptr_t srcarg;
     127        uintptr_t dstarg;
     128} irq_cmd_t;
     129
     130typedef struct {
     131        size_t cmdcount;
     132        irq_cmd_t *cmds;
     133} irq_code_t;
     134
     135#ifdef KERNEL
     136
    46137typedef enum {
    47138        IRQ_DECLINE,  /**< Decline to service. */
     
    55146
    56147struct irq;
    57 
    58148typedef void (* irq_handler_t)(struct irq *);
    59149
     
    134224        /** Notification configuration structure. */
    135225        ipc_notif_cfg_t notif_cfg;
    136        
     226
    137227        as_t *driver_as;
    138228} irq_t;
     
    148238extern irq_t *irq_dispatch_and_lock(inr_t);
    149239
     240#endif /* KERNEL */
     241
    150242#endif
    151243
Note: See TracChangeset for help on using the changeset viewer.