Changeset 91b60499 in mainline for kernel/genarch/src/drivers


Ignore:
Timestamp:
2017-09-30T06:29:42Z (9 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
300f4c4
Parents:
d076f16 (diff), 6636fb19 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge support for capabilities from lp:~jakub/helenos/caps

This commit introduces capabilities as task-local names for references to kernel
objects. Kernel objects are reference-counted wrappers for a select group of
objects allocated in and by the kernel that can be made accessible to userspace
in a controlled way via integer handles.

So far, a kernel object encapsulates either an irq_t or a phone_t.

Support for the former lead to the removal of kernel-assigned devnos and
unsecure deregistration of IRQs in which a random task was able to unregister
some other task's IRQ.

Location:
kernel/genarch/src/drivers
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/src/drivers/dsrln/dsrlnin.c

    rd076f16 r91b60499  
    4040#include <mm/slab.h>
    4141#include <arch/asm.h>
    42 #include <ddi/device.h>
    4342
    4443static irq_ownership_t dsrlnin_claim(irq_t *irq)
     
    6463               
    6564                irq_initialize(&instance->irq);
    66                 instance->irq.devno = device_assign_devno();
    6765                instance->irq.inr = inr;
    6866                instance->irq.claim = dsrlnin_claim;
  • kernel/genarch/src/drivers/i8042/i8042.c

    rd076f16 r91b60499  
    4444#include <console/chardev.h>
    4545#include <mm/slab.h>
    46 #include <ddi/device.h>
    4746#include <time/delay.h>
    4847
     
    113112               
    114113                irq_initialize(&instance->irq);
    115                 instance->irq.devno = device_assign_devno();
    116114                instance->irq.inr = inr;
    117115                instance->irq.claim = i8042_claim;
  • kernel/genarch/src/drivers/ns16550/ns16550.c

    rd076f16 r91b60499  
    4141#include <console/chardev.h>
    4242#include <mm/slab.h>
    43 #include <ddi/device.h>
    4443#include <str.h>
    4544
     
    138137               
    139138                irq_initialize(&instance->irq);
    140                 instance->irq.devno = device_assign_devno();
    141139                instance->irq.inr = inr;
    142140                instance->irq.claim = ns16550_claim;
  • kernel/genarch/src/drivers/omap/uart.c

    rd076f16 r91b60499  
    3737#include <assert.h>
    3838#include <genarch/drivers/omap/uart.h>
    39 #include <ddi/device.h>
    4039#include <str.h>
    4140#include <mm/km.h>
     
    161160        /* Initialize IRQ */
    162161        irq_initialize(&uart->irq);
    163         uart->irq.devno = device_assign_devno();
    164162        uart->irq.inr = interrupt;
    165163        uart->irq.claim = omap_uart_claim;
  • kernel/genarch/src/drivers/pl011/pl011.c

    rd076f16 r91b60499  
    3939#include <console/chardev.h>
    4040#include <console/console.h>
    41 #include <ddi/device.h>
    4241#include <arch/asm.h>
    4342#include <mm/slab.h>
     
    127126        /* Initialize IRQ */
    128127        irq_initialize(&uart->irq);
    129         uart->irq.devno = device_assign_devno();
    130128        uart->irq.inr = interrupt;
    131129        uart->irq.claim = pl011_uart_claim;
  • kernel/genarch/src/drivers/pl050/pl050.c

    rd076f16 r91b60499  
    4141#include <console/chardev.h>
    4242#include <mm/slab.h>
    43 #include <ddi/device.h>
    4443
    4544#define PL050_KEY_RELEASE 0xF0
     
    8786
    8887                irq_initialize(&instance->irq);
    89                 instance->irq.devno = device_assign_devno();
    9088                instance->irq.inr = inr;
    9189                instance->irq.claim = pl050_claim;
  • kernel/genarch/src/drivers/s3c24xx/uart.c

    rd076f16 r91b60499  
    4242#include <console/chardev.h>
    4343#include <console/console.h>
    44 #include <ddi/device.h>
    4544#include <arch/asm.h>
    4645#include <mm/slab.h>
     
    123122        /* Initialize IRQ structure. */
    124123        irq_initialize(&uart->irq);
    125         uart->irq.devno = device_assign_devno();
    126124        uart->irq.inr = inr;
    127125        uart->irq.claim = s3c24xx_uart_claim;
  • kernel/genarch/src/drivers/via-cuda/cuda.c

    rd076f16 r91b60499  
    4040#include <arch/asm.h>
    4141#include <mm/slab.h>
    42 #include <ddi/device.h>
    4342#include <synch/spinlock.h>
    4443#include <mem.h>
     
    106105
    107106                irq_initialize(&instance->irq);
    108                 instance->irq.devno = device_assign_devno();
    109107                instance->irq.inr = inr;
    110108                instance->irq.claim = cuda_claim;
Note: See TracChangeset for help on using the changeset viewer.