Changeset c0699467 in mainline for kernel/generic/include/ddi/irq.h


Ignore:
Timestamp:
2011-08-09T18:08:23Z (13 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b538ca5c
Parents:
3666d38
Message:

do not provide general access to kernel headers from uspace, only allow specific headers to be accessed or shared
externalize headers which serve as kernel/uspace API/ABI into a special tree

File:
1 edited

Legend:

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

    r3666d38 rc0699467  
    3333 */
    3434
    35 #ifndef KERN_IRQ_H_
    36 #define KERN_IRQ_H_
    37 
    38 #ifdef KERNEL
     35#ifndef KERN_DDI_IRQ_H_
     36#define KERN_DDI_IRQ_H_
    3937
    4038#include <typedefs.h>
     39#include <abi/ddi/irq.h>
    4140#include <adt/list.h>
    4241#include <adt/hash_table.h>
     
    4443#include <proc/task.h>
    4544#include <ipc/ipc.h>
    46 
    47 #endif /* KERNEL */
    48 
    49 typedef 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 
    122 typedef 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 
    130 typedef struct {
    131         size_t cmdcount;
    132         irq_cmd_t *cmds;
    133 } irq_code_t;
    134 
    135 #ifdef KERNEL
    13645
    13746typedef enum {
     
    14655
    14756struct irq;
     57
    14858typedef void (* irq_handler_t)(struct irq *);
    14959
     
    224134        /** Notification configuration structure. */
    225135        ipc_notif_cfg_t notif_cfg;
    226 
     136       
    227137        as_t *driver_as;
    228138} irq_t;
     
    238148extern irq_t *irq_dispatch_and_lock(inr_t);
    239149
    240 #endif /* KERNEL */
    241 
    242150#endif
    243151
Note: See TracChangeset for help on using the changeset viewer.