Newbie question to i/o

Thomas Doerfler Thomas.Doerfler at imd-systems.de
Mon Feb 25 08:01:36 UTC 2002


Hello,

> 
> the systems i know allocated a piece of static storage to all major
> (device) and minor (unit) instances of a device driver. if an interrupt
> was connected to the device the systems interrupthandler setup a pointer
> for the static data area of that device. currently i've no idea how to
> setup a static data area for every minor device and have a pointer
> defined to this area when the interrupt service routine is entered.
> 
> can anybody please explain the mechanisms behind the screnn to me and
> all other who don't know? thank you very much.

In RTEMS, it is the responsibility of the device driver to 
allocate any resources needed for device operation. So if you 
want to implement the static storage area, the device driver 
must allocate it (using a "region" or "malloc" call), 
initialize it with proper data (whatever is needed there) and 
store its address for further use. An alternative aproach 
would be to define an array of data structures/buffers in the 
device driver source code, with one element for each minor 
device number used.

Then, in the interrupt handler, you must determine, for which 
minor device you are working, you may use the vector number of 
the interrupt or some device specific information to 
distinguish that. Then you can use the proper pointer to the 
minor device data area.

So in short, you have to "emulate" the mechanism you mentioned 
on your own.

wkr,
	Thomas Doerfler.


> 
> --
> Schöne Grüße aus Reutlingen
> 
> Wolfram Wadepohl
> Entwicklung
> 
> --
> INDUMAT GmbH & Co. KG
> Transport- und Lagersysteme
> Dieselstraße 6
> D-72770 Reutlingen - Betzingen
> 
> Tel.  +49 (0)71 21/5 14-2 89
> Fax   +49 (0)71 21/5 14-2 99
> eMail W.Wadepohl at indumat.de
> WWW   http://www.indumat.de
> --
> 

--------------------------------------------
IMD Ingenieurbuero fuer Microcomputertechnik
Thomas Doerfler           Herbststrasse 8
D-82178 Puchheim          Germany
email:    Thomas.Doerfler at imd-systems.de
PGP public key available at: http://www.imd-
systems.de/pgp_key.htm




More information about the users mailing list