Changeset e9d15d9 in mainline for kernel/generic/include


Ignore:
Timestamp:
2017-08-18T21:15:26Z (8 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
24abb85d
Parents:
1c85bae
Message:

Turn IRQ structures into kernel objects

ipc_irq_subscribe() now returns a capability for the underlying IRQ kernel
object. ipc_irq_unsubscribe() can now be done only with a valid IRQ capability.

Location:
kernel/generic/include
Files:
4 edited

Legend:

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

    r1c85bae re9d15d9  
    5353extern void ipc_irq_top_half_handler(irq_t *);
    5454
    55 extern int ipc_irq_unsubscribe(answerbox_t *, inr_t, devno_t);
     55extern int ipc_irq_unsubscribe(answerbox_t *, int);
    5656extern void ipc_irq_cleanup(answerbox_t *);
    5757
  • kernel/generic/include/ipc/sysipc.h

    r1c85bae re9d15d9  
    5757
    5858extern sysarg_t sys_ipc_irq_subscribe(inr_t, devno_t, sysarg_t, irq_code_t *);
    59 extern sysarg_t sys_ipc_irq_unsubscribe(inr_t, devno_t);
     59extern sysarg_t sys_ipc_irq_unsubscribe(sysarg_t);
    6060
    6161#ifdef __32_BITS__
  • kernel/generic/include/kobject/kobject.h

    r1c85bae re9d15d9  
    3838#include <typedefs.h>
    3939#include <ipc/ipc.h>
     40#include <ddi/irq.h>
    4041
    4142#define MAX_KERNEL_OBJECTS  64
    42 
    43 #define KOBJECT_INVALID_CAP -1
    4443
    4544typedef enum {
    4645        KOBJECT_TYPE_INVALID,
    4746        KOBJECT_TYPE_ALLOCATED,
    48         KOBJECT_TYPE_PHONE
     47        KOBJECT_TYPE_PHONE,
     48        KOBJECT_TYPE_IRQ
    4949} kobject_type_t;
    5050
     
    5555        union {
    5656                phone_t phone;
     57                irq_t irq;
    5758        };
    5859} kobject_t;
     
    6061struct task;
    6162
    62 extern void kobject_init(kobject_t *);
     63extern void kobject_initialize(kobject_t *);
    6364extern kobject_t *kobject_get(struct task *, int, kobject_type_t);
    6465extern kobject_t *kobject_get_current(int, kobject_type_t);
  • kernel/generic/include/proc/task.h

    r1c85bae re9d15d9  
    3737
    3838#include <cpu.h>
    39 #include <kobject/kobject.h>
    4039#include <ipc/ipc.h>
    4140#include <ipc/event.h>
     
    6665
    6766struct thread;
     67struct kobject;
    6868
    6969/** Task structure. */
     
    9898
    9999        /** Kernel objects */
    100         kobject_t kobject[MAX_KERNEL_OBJECTS];
     100        struct kobject *kobject;
    101101       
    102102        /* IPC stuff */
Note: See TracChangeset for help on using the changeset viewer.