Changeset 84afc7b in mainline for uspace


Ignore:
Timestamp:
2009-03-18T10:53:12Z (16 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e749794
Parents:
8015eeec
Message:

as kernel little brother drivers are not needed anymore, the device numbers do not have to be correlated between kernel and uspace in any way
introduce new syscall sys_device_assign_devno() for generating system-wide unique device numbers for uspace

Location:
uspace
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/klog/klog.c

    r8015eeec r84afc7b  
    8282        }
    8383       
    84         int devno = sysinfo_value("klog.devno");
    85         int inr = sysinfo_value("klog.inr");
    86         if (ipc_register_irq(inr, devno, 0, NULL) != EOK) {
    87                 printf(NAME ": Error registering klog notifications\n");
    88                 return -1;
    89         }
     84//      int inr = sysinfo_value("klog.inr");
     85//      if (ipc_register_irq(inr, devno, 0, NULL) != EOK) {
     86//              printf(NAME ": Error registering klog notifications\n");
     87//              return -1;
     88//      }
    9089       
    9190        async_set_interrupt_received(interrupt_received);
  • uspace/lib/libc/generic/ddi.c

    r8015eeec r84afc7b  
    4141#include <libarch/config.h>
    4242#include <kernel/ddi/ddi_arg.h>
     43
     44/** Return unique device number.
     45 *
     46 * @return New unique device number.
     47 *
     48 */
     49int device_assign_devno(void)
     50{
     51        return __SYSCALL0(SYS_DEVICE_ASSIGN_DEVNO);
     52}
    4353
    4454/** Map piece of physical memory to task.
  • uspace/lib/libc/include/ddi.h

    r8015eeec r84afc7b  
    3838#include <task.h>
    3939
     40extern int device_assign_devno(void);
    4041extern int physmem_map(void *, void *, unsigned long, int);
    4142extern int iospace_enable(task_id_t, void *, unsigned long);
  • uspace/srv/console/console.c

    r8015eeec r84afc7b  
    587587       
    588588        /* Receive kernel notifications */
    589         if (sysinfo_value("kconsole.present")) {
    590                 int devno = sysinfo_value("kconsole.devno");
    591                 int inr = sysinfo_value("kconsole.inr");
    592                 if (ipc_register_irq(inr, devno, 0, NULL) != EOK)
    593                         printf(NAME ": Error registering kconsole notifications\n");
    594                
    595                 async_set_interrupt_received(interrupt_received);
    596         }
     589//      if (sysinfo_value("kconsole.present")) {
     590//              int inr = sysinfo_value("kconsole.inr");
     591//              if (ipc_register_irq(inr, device_assign_devno(), 0, NULL) != EOK)
     592//                      printf(NAME ": Error registering kconsole notifications\n");
     593//             
     594//              async_set_interrupt_received(interrupt_received);
     595//      }
    597596       
    598597        // FIXME: avoid connectiong to itself, keep using klog
  • uspace/srv/kbd/port/gxemul.c

    r8015eeec r84afc7b  
    4040#include <kbd_port.h>
    4141#include <kbd.h>
     42#include <ddi.h>
    4243
    4344static irq_cmd_t gxemul_cmds[] = {
     
    6465        async_set_interrupt_received(gxemul_irq_handler);
    6566        gxemul_cmds[0].addr = (void *) sysinfo_value("kbd.address.virtual");
    66         ipc_register_irq(sysinfo_value("kbd.inr"), sysinfo_value("kbd.devno"),
     67        ipc_register_irq(sysinfo_value("kbd.inr"), device_assign_devno(),
    6768            0, &gxemul_kbd);
    6869        return 0;
  • uspace/srv/kbd/port/i8042.c

    r8015eeec r84afc7b  
    4444#include <kbd_port.h>
    4545#include <kbd.h>
     46#include <ddi.h>
    4647#include "i8042.h"
    4748
     
    137138        i8042_kbd.cmds[0].addr = &((i8042_t *) i8042_kernel)->status;
    138139        i8042_kbd.cmds[3].addr = &((i8042_t *) i8042_kernel)->data;
    139         ipc_register_irq(sysinfo_value("kbd.inr"), sysinfo_value("kbd.devno"), 0, &i8042_kbd);
     140        ipc_register_irq(sysinfo_value("kbd.inr"), device_assign_devno(), 0, &i8042_kbd);
    140141
    141142        int newcontrol = i8042_KBD_IE | i8042_KBD_TRANSLATE;
  • uspace/srv/kbd/port/msim.c

    r8015eeec r84afc7b  
    4040#include <kbd_port.h>
    4141#include <kbd.h>
     42#include <ddi.h>
    4243
    4344irq_cmd_t msim_cmds[] = {
     
    6465        async_set_interrupt_received(msim_irq_handler);
    6566        msim_cmds[0].addr = sysinfo_value("kbd.address.virtual");
    66         ipc_register_irq(sysinfo_value("kbd.inr"), sysinfo_value("kbd.devno"),
     67        ipc_register_irq(sysinfo_value("kbd.inr"), device_assign_devno(),
    6768            0, &msim_kbd);
    6869        return 0;
  • uspace/srv/kbd/port/ns16550.c

    r8015eeec r84afc7b  
    100100        ns16550_kbd.cmds[0].addr = (void *) (ns16550_kernel + LSR_REG);
    101101        ns16550_kbd.cmds[3].addr = (void *) (ns16550_kernel + RBR_REG);
    102         ipc_register_irq(sysinfo_value("kbd.inr"), sysinfo_value("kbd.devno"),
     102        ipc_register_irq(sysinfo_value("kbd.inr"), device_assign_devno(),
    103103            0, &ns16550_kbd);
    104104        return pio_enable((void *) ns16550_physical, 8, &vaddr);
  • uspace/srv/kbd/port/z8530.c

    r8015eeec r84afc7b  
    9090        z8530_cmds[3].addr = (void *) sysinfo_value("kbd.address.kernel") +
    9191            CHAN_A_DATA;
    92         ipc_register_irq(sysinfo_value("kbd.inr"), sysinfo_value("kbd.devno"),
     92        ipc_register_irq(sysinfo_value("kbd.inr"), device_assign_devno(),
    9393            sysinfo_value("kbd.inr"), &z8530_kbd);
    9494        return 0;
Note: See TracChangeset for help on using the changeset viewer.