Changeset af6b5157 in mainline for uspace/lib/drv/include/ddf/driver.h


Ignore:
Timestamp:
2011-02-15T20:09:24Z (13 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2a770a35
Parents:
83a2f43
Message:

Split driver.h into ddf/driver.h and ddf/interrupt.h.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • uspace/lib/drv/include/ddf/driver.h

    r83a2f43 raf6b5157  
    11/*
    22 * Copyright (c) 2010 Lenka Trochtova
     3 * Copyright (c) 2011 Jiri Svoboda
    34 * All rights reserved.
    45 *
     
    3334 */
    3435
    35 #ifndef LIBDRV_DRIVER_H_
    36 #define LIBDRV_DRIVER_H_
     36#ifndef DDF_DRIVER_H_
     37#define DDF_DRIVER_H_
    3738
    38 #include <kernel/ddi/irq.h>
    39 #include <adt/list.h>
    40 #include <devman.h>
    4139#include <ipc/devman.h>
    4240#include <ipc/dev_iface.h>
    43 #include <assert.h>
    44 #include <ddi.h>
    45 #include <libarch/ddi.h>
    46 #include <fibril_synch.h>
    47 #include <malloc.h>
    4841
    49 #include "dev_iface.h"
     42#include "../dev_iface.h"
    5043
    5144typedef struct ddf_dev ddf_dev_t;
     
    5346
    5447/*
    55  * Device class
     48 * Device
    5649 */
    5750
     
    8073        remote_handler_t *default_handler;
    8174} ddf_dev_ops_t;
    82 
    83 /*
    84  * Device
    85  */
    8675
    8776/** Device structure */
     
    160149extern int ddf_fun_add_match_id(ddf_fun_t *, const char *, int);
    161150
    162 extern void *function_get_ops(ddf_fun_t *, dev_inferface_idx_t);
    163 
    164 /*
    165  * Interrupts
    166  */
    167 
    168 typedef void interrupt_handler_t(ddf_dev_t *, ipc_callid_t, ipc_call_t *);
    169 
    170 typedef struct interrupt_context {
    171         int id;
    172         ddf_dev_t *dev;
    173         int irq;
    174         interrupt_handler_t *handler;
    175         link_t link;
    176 } interrupt_context_t;
    177 
    178 typedef struct interrupt_context_list {
    179         int curr_id;
    180         link_t contexts;
    181         fibril_mutex_t mutex;
    182 } interrupt_context_list_t;
    183 
    184 extern interrupt_context_t *create_interrupt_context(void);
    185 extern void delete_interrupt_context(interrupt_context_t *);
    186 extern void init_interrupt_context_list(interrupt_context_list_t *);
    187 extern void add_interrupt_context(interrupt_context_list_t *,
    188     interrupt_context_t *);
    189 extern void remove_interrupt_context(interrupt_context_list_t *,
    190     interrupt_context_t *);
    191 extern interrupt_context_t *find_interrupt_context_by_id(
    192     interrupt_context_list_t *, int);
    193 extern interrupt_context_t *find_interrupt_context(
    194     interrupt_context_list_t *, ddf_dev_t *, int);
    195 
    196 extern int register_interrupt_handler(ddf_dev_t *, int, interrupt_handler_t *,
    197     irq_code_t *);
    198 extern int unregister_interrupt_handler(ddf_dev_t *, int);
    199 
    200 extern remote_handler_t *function_get_default_handler(ddf_fun_t *);
    201151extern int ddf_fun_add_to_class(ddf_fun_t *fun, const char *class_name);
    202152
Note: See TracChangeset for help on using the changeset viewer.