comp.lang.ada
 help / color / mirror / Atom feed
From: Kilgallen@eisner.decus.org.nospam (Larry Kilgallen)
Subject: Re: Device drivers in Ada (was Re: Ada The Best Language?)
Date: 21 Jul 2001 14:09:01 -0500
Date: 2001-07-21T14:09:01-05:00	[thread overview]
Message-ID: <hkUiPDAaAa25@eisner.encompasserve.org> (raw)
In-Reply-To: Nlh67.385623$p33.7761469@news1.sttls1.wa.home.com

In article <Nlh67.385623$p33.7761469@news1.sttls1.wa.home.com>, "Mark Lundquist" <up.yerz@nospam.com> writes:
> 
> "McDoobie" <chris@dont.spam.me> wrote in message
> news:0Bh57.24338$JN6.5004065@news1.rdc1.mi.home.com...
> 
>> I use Ada95 because for a lot of jobs it's the right tool for me. I write
>> applications using Ada95, I do device drives with Assembler
> 
> Just out of curiosity... have you ever tried writing a device driver in Ada?
> 
> My experience is that Ada is really well-suited for device-level
> programming, and I'm curious about the experiences of others.
> 
> Why do you write device drivers in assembler instead of a higher-level
> language?  Just curious, I'm not being judgemental or anything...

I don't recall what operating system (if any) was specified in the post
from McDoobie, but on VAX VMS device drivers require special use of the
registers.  Even Bliss, with it's fine-grained control over register
usage could only be used in the drivers for pseudo-devices because it
lacked what I would call the wait-for-interrupt-and-keep-channel-linkage.
In Macro one would do something like:

	BSBW	<routine>
	.WORD   168
	<other instructions>

where the inline word was an offset to an alternate return address.

Longword size for all instructions on Alpha eliminated that problem :-),
but the register usage issues remained until Alpha VMS V6.2 when the
ability to write drivers in C was supported, mainly by adding calls
that made standard use of registers.

At this point one could write Alpha VMS device drivers in Ada, given
an Ada compiler that supports 64-bit addressing.  I am not sure that
GNAT does, and I recognize demand is low.  I have had good luck using
DEC Ada against the sorts of VMS data structures that drivers use,
in particular because a representation clause allows one to specify
where the discriminant goes, making it match the standard location
specified by the operating system for determining the nature of a
block of nonpaged pool.

 _think_ (but have not gotten far enough to know for sure) that I
would prefer a mechanism in Ada to specify where the cell (dope vector?)
goes that tells one tagged type from another.  For most drivers tagged
types should not be necessary to meet the requirements set by the
operating system, but I would prefer some control in that regard.
(I realize compiler vendors do not want to be constrained, and tagged
types are certainly more useful within pure Ada code rather than for
interfacing to already-established operating system conventions.



  reply	other threads:[~2001-07-21 19:09 UTC|newest]

Thread overview: 161+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-17 16:38 Ada The Best Language? codesavvy
2001-07-17 17:16 ` chris.danx
2001-07-17 21:35   ` JP
2001-07-18 12:04     ` Marc A. Criley
2001-07-18 13:13       ` Colin Paul Gloster
2001-07-18 15:03         ` OO Zealotry horror stories (was Re: Ada the Best Language) Marc A. Criley
2001-07-17 17:53 ` Ada The Best Language? Larry Kilgallen
2001-07-17 18:01 ` Marin David Condic
2001-07-18  2:10   ` codesavvy
2001-07-18 10:43     ` Larry Kilgallen
2001-07-18 14:27     ` Marin David Condic
2001-07-18 20:37       ` codesavvy
2001-07-18 21:11         ` Marin David Condic
2001-07-19 21:45           ` codesavvy
2001-07-18 22:02         ` Ed Falis
2001-07-19 21:50           ` codesavvy
2001-07-18 23:00         ` Larry Kilgallen
2001-07-19 21:55           ` codesavvy
2001-07-21  8:39             ` Martin Dowie
2001-07-22 14:18             ` John R. Strohm
2001-07-23  6:13               ` 
2001-07-23 11:16                 ` Lutz Donnerhacke
2001-07-23 12:27                 ` Marc A. Criley
2001-07-24  2:07                 ` Warren W. Gay VE3WWG
2001-07-20  4:12         ` Adrian Hoe
2001-07-18 17:26     ` Darren New
2001-07-18 18:03       ` Pascal Obry
2001-07-18 20:51       ` codesavvy
2001-07-18 21:03         ` David C. Hoos
2001-07-20  4:00           ` Adrian Hoe
2001-07-18 21:22         ` Darren New
2001-07-19  4:12         ` James Rogers
2001-07-19  8:59           ` Michal Nowak
2001-07-19 10:40           ` Larry Kilgallen
2001-07-19 12:20           ` codesavvy
2001-07-21 18:20         ` Lao Xiao Hai
2001-07-22  3:55           ` Robert C. Leif, Ph.D.
2001-07-18 21:08     ` Tucker Taft
2001-07-17 20:12 ` Jeffrey Carter
2001-07-17 21:15   ` Gerhard Häring
2001-07-17 21:38   ` Paul Storm
2001-07-18  2:03 ` Tomasz Wegrzanowski
2001-07-18  9:28   ` Gary Lisyansky
2001-07-18 10:42   ` Larry Kilgallen
2001-07-18  2:40 ` Beau
2001-07-18 10:35   ` codesavvy
2001-07-18 11:27     ` Jean-Pierre Rosen
2001-07-18 18:28       ` Brian Rogoff
2001-07-18 21:00         ` codesavvy
2001-07-19 17:31           ` Warren W. Gay VE3WWG
2001-07-19 21:36             ` codesavvy
2001-07-24  3:22               ` Warren W. Gay VE3WWG
2001-07-25  0:11                 ` David Bolen
2001-07-25  3:09                   ` Recent Ada Information (was: zhttp://www.aceshardware.com/Spades/r Larry Kilgallen
2001-07-25  3:32                     ` David Bolen
2001-07-25  4:53                     ` Larry Kilgallen
2001-07-25 10:50                   ` Ada The Best Language? codesavvy
2001-07-25 16:04                     ` Warren W. Gay VE3WWG
2001-07-25 21:49                       ` codesavvy
2001-07-26 17:24                         ` Warren W. Gay VE3WWG
2001-07-26 18:48                           ` Marin David Condic
2001-07-26 20:21                             ` Warren W. Gay VE3WWG
2001-07-26 20:52                               ` Marin David Condic
2001-07-26 17:26                         ` Pascal Obry
2001-07-25 19:39                     ` tmoran
2001-07-27  0:35                       ` David Bolen
2001-07-27  1:50                         ` Gary Scott
2001-07-27 14:05                         ` Marin David Condic
2001-07-28  6:42                         ` tmoran
2001-07-28 12:53                           ` When correct software meets illegal data (was: Ada The Best...) Larry Kilgallen
2001-07-28 18:42                             ` tmoran
2001-07-28 20:52                               ` Al Christians
2001-07-28 21:42                                 ` tmoran
2001-07-30  1:53                                 ` Warren W. Gay VE3WWG
2001-07-28  5:32                       ` Ada The Best Language? JM
2001-07-28  6:49                         ` Gerhard Häring
2001-07-28 12:04                           ` Matthew Woodcraft
2001-07-28 19:46                           ` tmoran
2001-07-29  1:01                             ` Gerhard Häring
2001-07-31  2:59                           ` Tom Moran
2001-07-31  9:40                             ` Larry Kilgallen
2001-07-31 10:10                               ` Preben Randhol
2001-07-26 13:22                   ` Marin David Condic
2001-07-20 11:20             ` Bertrand Augereau
2001-07-20 12:56               ` Marin David Condic
2001-07-20 13:18               ` Dmitry Kazakov
2001-07-20 17:27               ` Warren W. Gay VE3WWG
2001-07-20 18:14                 ` Bertrand Augereau
2001-07-20 19:10                   ` Marin David Condic
2001-07-20 20:12                     ` Bertrand Augereau
2001-07-20 20:48                       ` Marin David Condic
2001-07-23 11:09                       ` Lutz Donnerhacke
2001-07-20 19:38                   ` David C. Hoos
2001-07-22 13:13                     ` Bertrand Augereau
2001-07-22 20:35                       ` David C. Hoos, Sr.
2001-07-22 21:12                         ` Bertrand Augereau
2001-07-22 22:34                           ` David C. Hoos, Sr.
2001-07-23  7:41                           ` Dmitry Kazakov
2001-07-23  8:27                             ` Bertrand Augereau
2001-07-23 11:51                               ` Dmitry Kazakov
2001-07-23 12:06                                 ` Bertrand Augereau
2001-07-24  1:57                                   ` Warren W. Gay VE3WWG
2001-07-26 22:31                                   ` Larry Elmore
2001-07-24 14:08                           ` Pat Rogers
2001-07-24 14:29                             ` Bertrand Augereau
2001-07-24 14:49                               ` Pat Rogers
2001-07-24  1:51                   ` Warren W. Gay VE3WWG
2001-07-18 18:29       ` codesavvy
2001-07-18 21:48         ` Hambut
2001-07-18 22:00           ` Marin David Condic
2001-07-19 21:43           ` codesavvy
2001-07-19  7:45         ` Jean-Pierre Rosen
2001-07-18 11:55     ` Larry Kilgallen
2001-07-18 15:49     ` Alfred Hilscher
2001-07-18 20:48       ` codesavvy
2001-07-18 22:12         ` Pascal Obry
2001-07-18 23:22         ` chris.danx
2001-07-20 11:26           ` Bertrand Augereau
2001-07-20 12:11             ` chris.danx
2001-07-20 12:43               ` Bertrand Augereau
2001-07-20 17:37                 ` Warren W. Gay VE3WWG
2001-07-24 16:52                   ` Ted Dennison
2001-07-24 16:59                     ` Lutz Donnerhacke
2001-07-24 18:25                       ` Ted Dennison
2001-07-25 10:19                         ` Lutz Donnerhacke
2001-07-25 18:53                           ` Teergrubing (was: Ada The Best Language?) Ted Dennison
2001-07-24 20:14                     ` Ada The Best Language? Warren W. Gay VE3WWG
2001-07-24 21:11                     ` Florian Weimer
2001-07-24 22:52                       ` tmoran
2001-07-25  7:08                         ` Florian Weimer
2001-07-25  7:45                           ` tmoran
2001-07-25 15:44                       ` Warren W. Gay VE3WWG
2001-07-25 20:39                         ` Florian Weimer
2001-07-26 17:13                           ` Warren W. Gay VE3WWG
2001-07-26 21:08                             ` Florian Weimer
2001-07-25  4:03                     ` Tomasz Wegrzanowski
2001-07-24 17:23                 ` Ted Dennison
2001-07-20 12:14             ` Lutz Donnerhacke
2001-07-20 12:32               ` Bertrand Augereau
2001-07-20 12:39                 ` Lutz Donnerhacke
2001-07-20 13:28                   ` Bertrand Augereau
2001-07-20 14:19                     ` Lutz Donnerhacke
2001-07-20 15:39                       ` Bertrand Augereau
2001-07-20 15:47                         ` Lutz Donnerhacke
2001-07-20 16:55                           ` Bertrand Augereau
2001-07-23 11:05                             ` Lutz Donnerhacke
2001-07-23 19:42             ` Lao Xiao Hai
2001-07-19 10:43         ` Alfred Hilscher
2001-07-19 12:47         ` Marc A. Criley
2001-07-19 17:01           ` codesavvy
2001-07-21 12:53             ` Marc A. Criley
2001-07-23 19:26         ` Lao Xiao Hai
2001-07-18 15:05 ` McDoobie
2001-07-18 20:42   ` codesavvy
2001-07-21 15:38   ` Device drivers in Ada (was Re: Ada The Best Language?) Mark Lundquist
2001-07-21 19:09     ` Larry Kilgallen [this message]
2001-07-21 15:31 ` Ada The Best Language? Mark Lundquist
2001-07-23  4:15   ` codesavvy
2001-07-23  7:26     ` Martin Dowie
2001-07-23 14:18   ` Marin David Condic
2001-07-24  2:13   ` Warren W. Gay VE3WWG
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox