Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/ddi/ddi.c

    r77429d3 r3f5b4e0d  
    232232 *
    233233 */
    234 sysarg_t sys_physmem_map(sysarg_t phys_base, sysarg_t virt_base,
    235     sysarg_t pages, sysarg_t flags)
    236 {
    237         return (sysarg_t) ddi_physmem_map(ALIGN_DOWN((uintptr_t) phys_base,
     234unative_t sys_physmem_map(unative_t phys_base, unative_t virt_base,
     235    unative_t pages, unative_t flags)
     236{
     237        return (unative_t) ddi_physmem_map(ALIGN_DOWN((uintptr_t) phys_base,
    238238            FRAME_SIZE), ALIGN_DOWN((uintptr_t) virt_base, PAGE_SIZE),
    239239            (size_t) pages, (int) flags);
     
    247247 *
    248248 */
    249 sysarg_t sys_iospace_enable(ddi_ioarg_t *uspace_io_arg)
     249unative_t sys_iospace_enable(ddi_ioarg_t *uspace_io_arg)
    250250{
    251251        ddi_ioarg_t arg;
    252252        int rc = copy_from_uspace(&arg, uspace_io_arg, sizeof(ddi_ioarg_t));
    253253        if (rc != 0)
    254                 return (sysarg_t) rc;
    255        
    256         return (sysarg_t) ddi_iospace_enable((task_id_t) arg.task_id,
     254                return (unative_t) rc;
     255       
     256        return (unative_t) ddi_iospace_enable((task_id_t) arg.task_id,
    257257            (uintptr_t) arg.ioaddr, (size_t) arg.size);
    258258}
    259259
     260/** Disable or enable specified interrupts.
     261 *
     262 * @param irq the interrupt to be enabled/disabled.
     263 * @param enable if true enable the interrupt, disable otherwise.
     264 *
     265 * @retutn Zero on success, error code otherwise.
     266 */
     267unative_t sys_interrupt_enable(int irq, int enable)
     268{
     269/* FIXME: this needs to be generic code, or better not be in kernel at all. */
     270#if 0
     271        cap_t task_cap = cap_get(TASK);
     272        if (!(task_cap & CAP_IRQ_REG))
     273                return EPERM;
     274               
     275        if (irq < 0 || irq > 16) {
     276                return EINVAL;
     277        }
     278       
     279        uint16_t irq_mask = (uint16_t)(1 << irq);
     280        if (enable) {
     281                trap_virtual_enable_irqs(irq_mask);
     282        } else {
     283                trap_virtual_disable_irqs(irq_mask);
     284        }
     285       
     286#endif
     287        return 0;
     288}
     289
    260290/** @}
    261291 */
Note: See TracChangeset for help on using the changeset viewer.