TOC PREV NEXT INDEX

Writing Device Drivers for LynxOS

A - B - C - D - E - F - G - H - I - J - K - L - M - N - O - P - Q - R - S - T - U - V - W - X - Y - Z

Symbols

#include directive  1

/dev directory  1

A

Accessing Hardware  1, 2

address

converting virtual to physical  1

device  1

flash memory base in kernel virtual space  1

kernel direct mapped  1

kernel virtual  1

physical  1

user virtual  1

validating  1

address space management  1, 2

address translation  1

creating and removing  1

UNIX drivers  1

address types, LynxOS  1

aliasing user virtual address  1

application

access to devices and drivers  1

example  1

managing Hot Swap  1

signal handler  1

using DRM facilities  1

B

base address, flash memory  1

block device  1

raw data transfer capability  1

uninstalling dynamic  1

UNIX driver  1

block device driver

buffers  1

characteristics  1

dynamic installation  1

entry point functions  1

file system support  1

install()  1

ioctl()  1

ioctl() example  1

kernel buffering  1

strategy()  1

UNIX I/O support routines  1

blocking  1

with interrupts disabled  1

bridge device, inserting  1

BSP, relationship to DRM  1

buf_entry data structure  1

buffer, block device driver  1

buffers  1

bus architecture  1

bus error handler  1, 2

bus errors  1

bus layer

of a bus node  1

of a bus/device node  1

relationship to DRM  1

C

callback routine, writing  1

flash virtual base  1

MTD specific data  1

operation code  1

operation parameter  1

return code  1

synchronization  1

Card Services  1

access to PC cards  1

advanced client services  1

bulk memory services  1

calling conventions  1

client callback  1

client device drivers  1, 2

client services  1

client utilities  1

detecting presence of  1

event notification  1

event code  1

event logical socket  1

events supported  1

groups  1

header files  1

Initialization  1

interface  1

logical sockets  1

Overview  1

reference of supported services  1

AccessConfigReg  1

DeregisterClient  1

ErrorName  1

GetCardServiceInfo  1

GetConfigurationInfo  1

GetFirstTuple  1

GetNextTuple  1

ParseTuple  1

tuple codes  1

RegisterClient  1

ReleaseConfiguration  1

ReleaseIO  1

ReleaseIRQ  1

RequestConfiguration  1

RequestIO  1

RequestIRQ  1

ServiceName  1

resource management  1

special services  1

CardServices() function  1

client device drivers  1

adding to ISA driver  1

deregistering  1

identifying PC card  1

PC card configuring  1

registration  1

sample PC card enabler  1

parameters  1

synopsis  1

changing priority of an I/O task  1

character device  1

uninstalling dynamic  1

character device driver

characteristics  1

dynamic installation  1

entry point functions  1

install()  1

ioctl() example  1

MTD  1

read()  1

write()  1

clock interrupt handler  1, 2, 3, 4

close()  1, 2, 3

example  1

code, blocking  1

code, example device driver  1

code, nesting  1

code, partitioning  1

code, protecting  1, 2

combining synchronization mechanisms  1

components, device driver, summary  1

concurrent operating system  1

CONFIG.TBL  1

configuration file, network driver  1

consumer tasks  1

contacting LynuxWorks  1

Contents  1

context switch time  1

context switch time, kernel threads  1

controlling interrupts  1

copying data from a buffer  1

copying data from a device  1

Copyright Information  1

counting semaphore  1, 2

to manage free list  1

cprintf()  1

critical code regions, UNIX driver  1

D

data availability indication  1

data packet

freeing mbuf  1

input  1

copying data to mbufs  1

determining packet type  1

enqueueing packet  1

processing  1

statistics counters  1

output  1

ether_output function  1

kernel thread processing  1

passing  1

queues  1

input  1

output  1

data structures

device information  1

dldd  1

entry_points  1

for user task priority tracking  1

functionality  1

statics  1

data transfer, limited size  1

data, holding from block device  1

deadlock  1, 2, 3

debug terminal  1

Debugging  1

bus errors  1

device driver service routines  1

hanging the system  1

overhead  1

SKDB  1

definition

device driver  1

device installation  1

interrupt handlers  1

interrupts  1, 2

kernel semaphore  1

kernel threads  1, 2

synchronization  1

timeout  1

device

access mode  1

flash, linear  1

Insertion/Removal  1

installation  1

interrupt management with DRM  1

interrupt signal  1

probing for  1, 2

readiness indication  1

resource ID  1

resource management with DRM  1

setting parameters  1

state  1

testing for presence  1

device address  1

Device Address Space Management  1, 2

device and driver configuration file, creating  1

Device Defaults

x86  1

device driver

adding to ISA driver  1

Card Services  1

components  1

components, summary  1

data structures  1

definition  1

development and installation  1

Example, LynxOS  1

Example, PCI  1

exclusive access  1

hardware access  1

installation  1

installation attributes  1

interrupt-based  1

close()  1

declaration for ioctl  1

device information declaration  1

device information definition  1

install()  1

interrupt handler  1

ioctl() entry point  1

open()  1

send()  1

source code  1

statics structure  1

uninstall()  1

write()  1

multiple access  1, 2

network  1

PC card client driver  1

PC card enabler  1

shared resources  1

Socket Services  1

static versus dynamic installation  1

supporting multiple major devices  1

types  1

UNIX initialization routine  1

using DRM facilities  1

with interrupt handler code  1

Device Driver Basics  1, 2

device I/O to drivers  1, 2

device ID  1, 2

Device Identification  1, 2

device information block  1

device information data structure  1, 2

deallocation  1

example  1

function  1

instantiating  1

parameters included  1

device information declaration  1, 2, 3

device information definition  1, 2, 3

Device Interrupt Management  1, 2

device registers, reading writing  1

Device Resource Manager  1, 2

Device Resource Manager (DRM)  1, 2

device special files  1

device tree  1

adding nodes  1

building  1

DRM bus nodes  1

DRM device nodes  1

navigating  1, 2

devices command  1

devices Command Output  1

devinfo.h header file  1

direct mapped kernel virtual address  1

direct memory access  1

disabling interrupts  1, 2

disabling preemption  1, 2, 3

dldd data structure  1

format  1

functionality  1

dldd.h include file  1

DMA buffers, obtaining  1, 2

DMA controller  1, 2, 3, 4

DMA transfer  1, 2

paging  1, 2

UNIX drivers  1

documents, LynxOS  1

documents, online  1

drinstall() system call  1

driver and device configuration tables  1

driver code

attaching to end of kernel image  1

installation  1, 2

linking with kernel  1

driver ID  1, 2

driver response time  1

drivers command  1

drivers command output  1

DRM  1, 2

bus layer relationship  1

components  1

concepts  1

device tree  1, 2

Hot Swap management facilities  1

identifying device handle  1

Initialization  1

Interface Specification  1

module view  1

Node States  1

nodes  1

bus  1

device  1

fields  1

life cycle state  1, 2

read and write to bus layer-defined resources  1

registering interrupt handlers  1

resource allocation  1

service routines  1, 2

device insertion/removal  1

summary  1

services  1

device address space management  1

device I/O to drivers  1

device identification  1

Device Interrupt Management  1

using from applications  1

sysctl() interface  1

using from device drivers  1

dynamic installation  1, 2

advantages  1

block driver  1

character driver  1

device and driver uninstallation  1

dr_install()  1

drinstall()  1

drivers  1

entry point functions  1

error messages  1

import file  1

procedure  1

All Platforms  1

device information definition and declaration  1

device installation  1

driver source code  1

node creation  1

PowerPC  1

x86  1

uninstall()  1

E

eieio()  1

Entry Point Functions  1

entry point functions  1, 2

addresses  1

close()  1

install()  1

ioctl()  1

naming  1

open()  1

read()  1

registering names  1

select()  1

sharing information  1

strategy()  1

uninstall()  1

usage guidelines  1

watchdog  1

write()  1

entry points, network driver  1

error conditions, handling  1

error messages, dynamic installation  1

ether_output function  1

Ethernet address, network driver  1

Ethernet header  1, 2, 3

event synchronization  1, 2

event synchronization semaphore  1, 2

Example Application  1

Example device driver  1

driver code  1

header files  1

PCI device  1

Example PC card enabler  1

Example, interrupt-based printer device driver  1

exception handling  1

Exclusive access  1

interrupt handler  1

kernel thread  1

kernel thread priority  1

priority tracking  1

top-half entry point  1

F

file.h header file  1, 2, 3, 4, 5, 6

fixed priority scheduler  1

flash cache  1

flash device, linear

access to partition  1

base address  1

mapping to contiguous kernel virtual space  1

MTD callback routine  1, 2

partition information  1

partitioning  1

sector size  1

size  1

two layer model for access  1

Memory Technology Driver  1

user interface  1

Flash ID, registration data  1

flash information block  1

flash_mgr module  1

deregistering with  1

flash partition data  1

registering with  1

free list

accessing from interrupt handler  1, 2

managing with counting semaphore  1

manipulating  1

functionality, data structures  1

functions, mbuf  1

G

GNU C compiler, installing driver with  1

H

handling, signals  1, 2

hardware access  1

platform-specific  1

PowerPC systems  1

ISA bus  1

PCI support facility  1

x86 systems  1

reading writing device registers  1

hardware exception conditions  1

hardware interrupt, acknowledging  1, 2

header files

Card Services  1

devinfo.h  1

example device driver  1

file.h  1, 2, 3, 4, 5, 6

kernel data structure  1

kernel.h  1, 2

mem.h  1

port_ops_x86.h  1

Socket Services  1

st.h  1

Hot Swap  1, 2, 3

PC Card Enabler  1

pcmcia_d daemon  1

Hot Swap management applications  1

I

I/O address  1, 2

I/O polling  1

I/O port address  1

I/O system calls  1

ifconfig utility  1, 2

ifnet, network driver  1

import file, dynamic installation  1

install()  1, 2, 3, 4, 5

block device driver  1

character device driver  1

example  1

functionality  1

network driver  1

finding interface name  1

initializing Ethernet address  1

initializing ifnet structure  1

Installation and Debugging  1, 2

installation attributes, device driver  1

installation, UNIX driver  1

installing, driver source code  1, 2

instantiating device information structure  1

Intel 8259 interrupt controller  1

interrupt  1

and real-time response  1

controlling  1

definition  1

disabling  1, 2

dispatch time  1

handlers  1

latency  1

levels  1

management  1

managing with DRM  1

pending  1

priority  1

processing in interrupt handler v/s kernel thread  1

response time  1

restoring  1

sharing  1

unbounded disable times  1

using kernel threads  1

vector

interrupt handler stack  1

sharing  1

values, PowerPC  1

values, x86  1

Interrupt and Timeout Handling  1, 2

interrupt controller  1

master and slave  1

programming  1

interrupt dispatcher  1

interrupt handler  1

accessing free list  1, 2

accessing user space  1

asynchronous execution  1

clearing  1

declaring and resetting  1

implementing  1

location in device driver  1

processing interrupts within  1

programming considerations  1

registering  1

registering with DRM  1

specifying  1

UNIX driver  1

interrupt handlers, LynxOS  1

interrupt service routine  1, 2

registering  1

setting and clearing  1

interrupt state, saving on a task basis  1

interrupt vector  1

interrupt vector number  1

interrupt vector space  1

interrupt vector table  1

interrupt vector, clearing  1

invoking a device driver  1

ioctl()  1

block device driver  1

example, block device driver  1

example, character device driver  1

network driver  1

SIOCSIFADDR  1

SIOCSIFFLAGS  1

validating addresses to  1

ioctl() system call  1

iointclr()  1, 2

iointset()  1, 2

IP multicasting support  1

ether_multi structure  1

IRQ

interrupt priority  1

level  1, 2

sharing  1

IRQ device default configuration  1

ISA bus access, x86  1

ISA device physical address  1

ISA interrupts  1

ISR  1

uses  1

K

kernel address space  1

kernel buffering  1

kernel data structure  1

header files included  1

host Internet address  1

socket addresses  1

symbolic constants  1

kernel direct mapped address  1

kernel rebuilding  1

kernel semaphore  1, 2

definition  1

functions  1

incrementing  1

memory allocation  1

signaling  1, 2

state  1

using as counting semaphore  1

using for mutual exclusion  1

value  1

wait queue  1

kernel support functions  1

exception handling  1

memory management  1

synchronization  1

kernel thread  1, 2, 3

accessing user space  1

context switch time  1

creating  1

data packet output  1

starting transmission  1

statistics counters  1

definition  1

execution context  1

network device  1

priority  1

processing incoming packets  1

processing interrupts within  1

scheduling priority  1, 2

signaling  1

stack size  1

static thread priority  1

structure  1

switching to  1

TCP/IP module  1

Kernel Threads and Priority Tracking  1, 2

kernel virtual address  1

kernel.h header file  1, 2

keyboard  1

kkprintf()  1

L

Linux device drivers

GPL issues  1

Linux device drivers, porting to LynxOS

Accessing a device  1

blocking & non-blocking I/O  1

bottom halves and kernel threads  1

driver setup differences  1

Entry points  1

Error Handling  1

Installation  1

Interrupts  1

kernel support  1

memory address translation  1

Preemption  1

scheduling differences  1

Signal Handling  1

System call processing  1

Linux Drivers

Porting  1

LynuxWorks, contacting  1

LynuxWorks, Inc.  1

LynxOS device driver components  1, 2

LynxOS device driver interface model  1

LynxOS driver

major number  1

priority tracking  1

LynxOS entry point functions summary  1

LynxOS features not used in UNIX drivers  1

LynxOS File System and strategy() Interface  1

M

macros, mbuf  1

major and minor device declarations  1

major and minor devices  1

major device

device information block  1

single controller card  1

major number  1

LynxOS drivers  1

major()  1

malloc()  1

mapping

device names to driver names  1

LynxOS virtual addresses to hardware  1

to entry point functions  1

user space address to virtual addresses  1

virtual to physical memory  1

mem.h header file  1

mem_unlock()  1

memlock()  1

memory

allocating  1, 2, 3

allocating for kernel semaphore  1

allocation functions  1

kernel access  1

locking  1

management  1

user accessible space  1

memory locking  1

mem_lock()  1

mem_unlock()  1, 2

Memory Management  1, 2

Memory Management Unit  1

memory mapping, virtual to physical  1

memory operations, Card Services  1

memory-mapped device  1

minor device

examples of usage  1

file descriptor  1

initialization  1

single channel or sub-device  1

synchronization between  1

minor number  1

Flash ID  1

flash partition number  1

minor()  1

mknod utility  1

mmap()  1, 2

MMU  1

bypassing  1

MTD  1

callback routine  1, 2

flash virtual base  1

MTD specific data  1

operation code  1

operation parameter  1

return code  1

synchronization  1

writing  1

character device interface routines  1

control register windows  1

deregistering with flash_mgr  1

Device Control Registers  1

Device Info String  1

flash base address  1

Flash ID  1

flash memory size  1

interface overview  1

partition information  1

registering with flash_mgr  1

registration attributes  1

registration data  1

write, read, erase flash device  1

multicast address ranges  1

Multiple access  1, 2

non-atomic requests  1

priority tracking  1

kernel thread  1

top-half entry point  1

with kernel threads

interrupt handler  1

kernel thread  1

top-half entry point  1

without kernel threads  1

multiplexing  1

mutex mechanisms  1

mutual exclusion  1, 2

disable()/restore() mechanism  1

N

naming entry point functions  1

network device

kernel thread  1

local RAM  1

resetting hardware  1

Network Device Drivers  1, 2

network driver  1

communicating with TCP/IP module  1

device configuration file  1, 2

entry points  1

hardware independent interface  1

hardware initialization  1

ioctl()  1

SIOCSIFADDR  1

SIOCSIFFLAGS  1

IP multicasting support  1

packet input  1

packet output  1

ether_output  1

kernel thread processing  1

packet queues  1

priority tracking  1

reset entry point  1

statics data structure  1

watchdog entry point  1

network interface

bring up or down  1

checking operation  1

initializing Ethernet address  1

initializing ifnet structure  1

name  1

packet queues  1

setting IP address  1

node creation  1

nodetab file  1, 2

non-atomic requests  1

non-deterministic environment  1

O

online documentation  1

open()  1, 2, 3, 4, 5

example  1

open() system call  1

OSBASE constant  1

P

packet queues  1

paging  1, 2

PC Card

adding support for new  1

new driver  1

PC Card Enabler  1

client drivers  1

Configuration Register  1

configuring by client device drivers  1

Hot Swap  1

hot-swap capable driver  1

identification by client device drivers  1

IRQ  1

manipulating  1, 2

removing from running system  1

Socket Services

writing  1

supported by Enabler  1

using  1

PC Card Enabler  1

configuration tables  1

static driver installation  1

PC Card package architecture, LynxOS  1

PC Card Support

architecture  1

Card Services  1

features  1

installing  1

Socket Services  1

Troubleshooting  1

utilities  1

PCI address  1

PCI devices, managing  1

PCI support facility, PowerPC  1

PCMCIA Adapter

adding support for new  1

supported  1

PCMCIA/JEIDA PC Card architecture specification  1, 2

pcmcia_d daemon, dynamic driver installation  1

permap()  1

permissions for LynxOS virtual memory access  1

PHYSBASE constant  1

physical address  1

ISA devices  1

physical device layout  1

physical memory  1

allocating  1

allocating contiguous  1

PID, getting for task  1

port_ops_x86.h header file  1

Porting Linux Drivers to LynxOS  1

Porting UNIX Drivers to LynxOS  1, 2

PowerPC

ddld structure  1

dynamic driver installation  1

interrupt vector values  1

ISA Bridge  1

PCI-to-ISA bridge  1

subtractive decoding  1

VME-to-PCI bridge  1

PowerPC hardware access  1

PCI support facility  1

PowerPC Kernel Access Virtual Memory Map, LynxOS  1

PowerPC User Access Virtual Memory Map, LynxOS  1

preemption  1

restoring  1

UNIX driver code  1

preemption, disabling  1, 2, 3

preemptive operating system  1

pre-mapped region  1

printf()  1

priority

interrupts v/s tasks  1

inversion  1

kernel thread  1, 2

UNIX driver  1

user v/s kernel  1

priority inheritance  1, 2

semaphores  1

priority levels, user applications  1

priority scheduler, fixed  1

priority tracking  1, 2, 3

driver-level requests  1

exclusive access driver  1

multiple access driver  1

network driver  1

w_count  1

probing for devices  1

processes

awakening  1

number of, waiting on a semaphore  1

producer process  1

protecting critical code sections  1, 2

Q

queues  1

in device driver code  1

using  1

R

race conditions  1, 2, 3

rbounds()  1

values returned  1

read()  1, 2

example  1

read() system call  1, 2

reading writing device registers, x86  1

real-time clock  1

real-time response  1, 2

and interrupts  1

and signal handling  1

rebuilding kernel  1

Reference manuals  1

requests, driver-level  1

reset Entry Point  1

resource

allocation  1

availability  1, 2

required by device driver  1, 2

resource pool management  1

S

scatter/gather transfers  1

scheduling with static thread priorities  1

select()  1, 2

example  1

select() system call  1

semaphores  1

event synchronization  1

priority inheritance  1

serial device, data transfer  1

service routines, DRM  1

shared resources  1

accessing  1

shared static data structures and queues, allocating  1

sharing IRQs  1

signal handler, application  1

signal handling  1

signal handling and real-time response  1

signaling, kernel thread  1

signaling, semaphore  1

signals and tasks  1

Simple Kernel Debugger  1

SKDB  1

sleep()  1

Socket Services  1

access to PC Cards  1, 2

callback entry point  1

event notification  1

Groups  1

Adapter Services  1

Socket Services  1

Window Services  1

header files  1

identification number  1

information structure  1

invoking  1

overview  1

PC Card, writing  1

reference  1

registering with Card Services  1

SS_GetInfo  1

SS_GetSocket  1

SS_GetWindow  1

SS_InquireSocket  1

SS_InquireWindow  1

SS_SetSocket  1

SS_SetWindow  1

status change reporting  1

status changes  1

structure  1

Special Note formats  1

sreset()  1

caution when using  1

handling error conditions  1

synchronizing with calls to ssignal()  1

using with event synchronization semaphores  1

variable length transfers  1

st.h header file  1

stack size, kernel thread  1

state, semaphore  1

static installation  1

advantages  1

code organization  1

entry point functions  1

procedure  1

CONFIG.TBL  1

device and driver configuration file  1

driver source code  1

statics data structure  1, 2, 3, 4, 5, 6, 7, 8, 9, 10

example  1

function  1

network driver  1

statistics counters, data packet input  1

statistics counters, data packet output  1

strategy()  1, 2

UNIX driver  1

struct arpcom  1

struct ether_header  1

struct ifnet  1

network interface attach routine  1

struct in_addr  1

struct mbuf  1

adding or removing data  1

allocating  1

clusters  1

commonly used functions  1

commonly used macros  1

copying incoming packets to  1

freeing  1

packet header  1

position and size of data  1

struct sockaddr  1

struct sockaddr_in  1

structure, interrupt-based driver  1

structure, kernel thread  1

symbolic constants, kernel data structure  1

Synchronization  1, 2

synchronization  1, 2

between minor devices  1

by flash_mgr for flash device  1

combining mechanisms  1

manipulating free list  1

definition  1

event  1, 2

mutual exclusion  1

preemption  1

UNIX driver  1, 2

synchronization functions

disable()  1

pi_init()  1

restore()  1

scount()  1

sdisable()  1

signaln()  1

sreset()  1

srestore()  1

ssignal()  1

swait()  1

sysbrk()  1

sysctl() interface

accessing DRM  1

parameters  1

sysfree()  1

system calls, I/O  1

system halts  1

system management service routines  1

system response time  1

SystemV, interrupt capabilities  1

T

task

completion time  1

consumer  1

getting PID  1

indefinite blocking  1

preemption  1

priority  1

response time  1

semaphore signaling  1

signal handler  1

virtual address space  1

TCP/IP module

calling driver start routine  1

communicating with driver  1

kernel threads  1

transmitting packets  1

Technical Support  1

timeout  1

cancelling  1

interrupts  1

interval  1

lengthy processing  1

using for events  1

timeout handler  1, 2, 3, 4

algorithm  1

algorithm with kernel threads  1

calling  1

timeout ID  1

timeout()  1

transfers, direct memory  1

Typographical Conventions  1

U

U structure  1

u_base, u_count, u_offset  1

u_error  1

u_fmode  1

u_procp  1

u_segflg  1

u_tsav, u_nofault  1

uninstall()  1, 2, 3

example  1

functions  1

uninstallation, dynamic  1

UNIX driver

address translation  1

block I/O support routines  1

buf structure  1

debugging  1

DMA transfers and raw I/O  1

event synchronization  1

handling interrupts  1

initialization routine  1

probing for devices  1

installation method  1

interface with kernel  1

driver service calls  1

interface with user applications  1

accessing user space  1

entry points  1

error return  1

ioctl  1

major and minor numbers  1

open/close  1

read/write  1

select  1

interrupt handling  1, 2

kernel and driver goals  1

LynxOS features not used  1

memory management functions  1

porting strategy  1

porting to LynxOS  1

POSIX model  1

reentrance and synchronization  1

sleep() function  1

source/binary compatibility  1

structure  1

global variables  1

synchronization  1

transfers to block devices  1

U structure  1

user and kernel priorities  1

user space address, mapping to virtual addresses  1

user space, accessing from interrupt handler and kernel threads  1

user virtual address  1

aliasing  1

V

validating addresses  1

variable length transfers  1

vector, interrupt  1

clearing  1

interrupt handler stack  1

sharing  1

values, PowerPC  1

values, x86  1

virtual address conversion  1

Virtual Address Model, LynxOS  1

virtual map

memory-mapped device  1

PowerPC kernel access  1

PowerPC user access  1

remapping during context switches  1

x86 kernel access  1

x86 user access  1

virtual memory

LynxOS access permissions  1

mapping to physical memory  1

pre-mapped region  1

VME address  1

VME interrupts  1

vmstart command  1

W

watchdog entry point  1

disabling  1

wbounds()  1

write()  1, 2

example  1

write() system call  1, 2

Writing Flash Memory Technology Drivers (MTDs)  1, 2

Writing PC Card Client Drivers  1, 2

X

x86

devices  1

dynamic driver installation  1

interrupt vector values  1

Kernel Access Virtual Memory Map  1

User Access Virtual Memory Map  1

x86 hardware access  1

ISA bus  1

reading writing device registers  1




LynuxWorks, Inc.
855 Branham Lane East
San Jose, CA 95138
http://www.lynuxworks.com
1.800.255.5969
TOC PREV NEXT INDEX