Next:
6.1 Introduction
Up:
Part II: Interfaces
Previous:
5.7.6 flow: Suspend or
6 OSKit Device Driver (OS Environment) Framework
6.1 Introduction
6.1.1 Full versus partial compliance
6.2 Organization
6.3 Driver Sets
6.4 Execution Model
6.4.1 Use in out-of-kernel, user-mode device drivers
6.5 Performance
6.6 Device Driver Initialization
6.7 Device Classification
6.8 Buffer Management
6.9 Asynchronous I/O
6.10 Other Considerations
6.11 Common Device Driver Interface
6.11.1
dev.h
: common device driver framework definitions
6.12 Driver Memory Allocation
6.12.1
osenv_memflags_t
: memory allocation flags
6.12.2
osenv_mem_alloc
: allocate memory for use by device drivers
6.12.3
osenv_mem_free
: free memory allocated with osenv_mem_alloc
6.12.4
osenv_mem_get_phys
: find the physical address of an allocated block
6.12.5
osenv_mem_get_virt
: find the virtual address of an allocated block
6.12.6
osenv_mem_phys_max
: find the largest physical memory address
6.12.7
osenv_mem_map_phys
: map physical memory into kernel virtual memory
6.13 DMA
6.13.1
osenv_isadma_alloc
: Reserve a DMA channel
6.13.2
osenv_isadma_free
: Release a DMA channel
6.14 I/O Ports
6.14.1
osenv_io_avail
: Check availability of a range of ports
6.14.2
osenv_io_alloc
: Allocate a range of ports
6.14.3
osenv_io_free
: Release a range of ports
6.15 Hardware Interrupts
6.15.1
osenv_intr_disable
: prevent interrupts in the driver environment
6.15.2
osenv_intr_enable
: allow interrupts in the driver environment
6.15.3
osenv_intr_enabled
: determine the current interrupt enable state
6.15.4
osenv_irq_alloc
: allocate an interrupt request line
6.15.5
osenv_irq_free
: Unregister the handler for the interrupt
6.15.6
osenv_irq_disable
: Disable a single interrupt line
6.15.7
osenv_irq_enable
: Enable a single interrupt line
6.15.8
osenv_irq_pending
: Determine if an interrupt is pending for a single line
6.16 Sleep/Wakeup
6.16.1
osenv_sleep_init
: prepare to put the current process to sleep
6.16.2
osenv_sleep
: put the current process to sleep
6.16.3
osenv_wakeup
: wake up a sleeping process
6.17 Driver-Kernel Interface: Timing
6.17.1
osenv_timer_init
: Initialize the timer support code
6.17.2
osenv_timer_register
: Request a timer handler be called at the specified frequency
6.17.3
osenv_timer_unregister
: Request a timer handler not be called
6.17.4
osenv_timer_spin
: Wait for a specified amount of time without blocking.
6.18 Misc
6.18.1
osenv_vlog
: OS environment's output routine
6.18.2
osenv_log
: OS environment's output routine
6.18.3
osenv_vpanic
: Abort driver set operation
6.18.4
osenv_panic
: Abort driver set operation
6.19 Device Registration
6.20 Block Storage Device Interfaces
6.21 Serial Device Interfaces
Driver-Kernel Interface: (X86 PC) ISA device registration
6.22.1
osenv_isabus_addchild
: add a device node to an ISA bus
6.22.2
osenv_isabus_remchild
: remove a device node from an ISA bus
University of Utah Flux Research Group