amd64
[Device Driver Interface]


Files

file  ddi.h
 amd64 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 58 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 116 of file ddi.c.

References ALIGN_UP, AR_TSS, ASSERT, ptr_16_64::base, bitmap_copy(), bitmap_initialize(), bitmap_set_range(), BITS2BYTES, CPU, gdt_tss_setlimit(), gdtr_load(), gdtr_store(), gdtselector, spinlock_lock, spinlock_unlock(), TASK, tr_load(), TSS_BASIC_SIZE, TSS_DES, TSS_IOMAP_SIZE, and tss_descriptor::type.

Referenced by before_task_runs_arch(), and gp_fault().

Here is the call graph for this function:


Generated on Sun Jun 18 16:36:29 2006 for HelenOS Kernel (amd64) by  doxygen 1.4.6