ia32
[Device Driver Interface]


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)

Function Documentation

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.

Parameters:
task Task.
ioaddr Startign I/O space address.
size Size of the enabled I/O range.
Returns:
0 on success or an error code from errno.h.

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:

void io_perm_bitmap_install void   ) 
 

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:


Generated on Sun Jun 18 16:48:31 2006 for HelenOS Kernel (ia32) by  doxygen 1.4.6