Files | |
file | ddi.h |
ia32 specific DDI declarations and macros. | |
file | ddi.c |
Functions | |
void | io_perm_bitmap_install (void) |
int | ddi_iospace_enable_arch (task_t *task, __address ioaddr, size_t size) |
|
Enable I/O space range for task. Interrupts are disabled and task is locked.
Definition at line 59 of file ddi.c. References task::arch, bitmap_clear_range(), bitmap_copy(), bitmap_initialize(), bitmap_set_range(), bitmap_t::bits, BITS2BYTES, ENOENT, ENOMEM, FRAME_ATOMIC, free(), IO_PORTS, task_arch_t::iomap, task_arch_t::iomapver, malloc(), and bitmap_t::map. Referenced by ddi_iospace_enable(). Here is the call graph for this function: ![]() |
|
Install I/O Permission bitmap. Current task's I/O permission bitmap, if any, is installed in the current CPU's TSS. Interrupts must be disabled prior this call. Definition at line 117 of file ddi.c. References descriptor::access, ALIGN_UP, AR_PRESENT, AR_TSS, ASSERT, ptr_16_32::base, bitmap_copy(), bitmap_initialize(), bitmap_set_range(), BITS2BYTES, CPU, DPL_KERNEL, gdt_setlimit(), gdtr_load(), gdtr_store(), selector, spinlock_lock, spinlock_unlock(), TASK, tr_load(), TSS_BASIC_SIZE, TSS_DES, and TSS_IOMAP_SIZE. Referenced by before_task_runs_arch(), and gp_fault(). Here is the call graph for this function: ![]() |