Next:
8.1 Introduction
Up:
Part II: Interfaces
Previous:
7.7.6 flow: Suspend or
8 OSKit Device Driver (OS Environment) Framework
8.1 Introduction
8.1.1 Full versus partial compliance
8.2 Organization
8.3 Driver Sets
8.4 Execution Model
8.4.1 Use in out-of-kernel, user-mode device drivers
8.5 Performance
8.6 Device Driver Initialization
8.7 Device Classification
8.8 Buffer Management
8.9 Asynchronous I/O
8.10 Other Considerations
8.11 Common Device Driver Interface
8.11.1
dev.h
: common device driver framework definitions
8.12 Driver Memory Allocation
8.12.1
osenv_memflags_t
: memory allocation flags
8.12.2
osenv_mem_alloc
: allocate memory for use by device drivers
8.12.3
osenv_mem_free
: free memory allocated with osenv_mem_alloc
8.12.4
osenv_mem_get_phys
: find the physical address of an allocated block
8.12.5
osenv_mem_get_virt
: find the virtual address of an allocated block
8.12.6
osenv_mem_phys_max
: find the largest physical memory address
8.12.7
osenv_mem_map_phys
: map physical memory into kernel virtual memory
8.13 DMA
8.13.1
osenv_isadma_alloc
: Reserve a DMA channel
8.13.2
osenv_isadma_free
: Release a DMA channel
8.14 I/O Ports
8.14.1
osenv_io_avail
: Check availability of a range of ports
8.14.2
osenv_io_alloc
: Allocate a range of ports
8.14.3
osenv_io_free
: Release a range of ports
8.15 Hardware Interrupts
8.15.1
osenv_intr_disable
: prevent interrupts in the driver environment
8.15.2
osenv_intr_enable
: allow interrupts in the driver environment
8.15.3
osenv_intr_enabled
: determine the current interrupt enable state
8.15.4
osenv_irq_alloc
: allocate an interrupt request line
8.15.5
osenv_irq_free
: Unregister the handler for the interrupt
8.15.6
osenv_irq_disable
: Disable a single interrupt line
8.15.7
osenv_irq_enable
: Enable a single interrupt line
8.15.8
osenv_irq_pending
: Determine if an interrupt is pending for a single line
8.16 Sleep/Wakeup
8.16.1
osenv_sleep_init
: prepare to put the current process to sleep
8.16.2
osenv_sleep
: put the current process to sleep
8.16.3
osenv_wakeup
: wake up a sleeping process
8.17 Driver-Kernel Interface: Timing
8.17.1
osenv_timer_init
: Initialize the timer support code
8.17.2
osenv_timer_register
: Request a timer handler be called at the specified frequency
8.17.3
osenv_timer_unregister
: Request a timer handler not be called
8.17.4
osenv_timer_spin
: Wait for a specified amount of time without blocking.
8.18 Misc
8.18.1
osenv_vlog
: OS environment's output routine
8.18.2
osenv_log
: OS environment's output routine
8.18.3
osenv_vpanic
: Abort driver set operation
8.18.4
osenv_panic
: Abort driver set operation
8.19 Device Registration
8.20 Block Storage Device Interfaces
8.21 Serial Device Interfaces
Driver-Kernel Interface: (X86 PC) ISA device registration
8.22.1
osenv_isabus_addchild
: add a device node to an ISA bus
8.22.2
osenv_isabus_remchild
: remove a device node from an ISA bus
Utah Flux Research Group