Subject: Re: sharing drivers (was re: m68k comman...)
To: Justin T. Gibbs <gibbs@freefall.freebsd.org>
From: Julian Bean <jules@mailbox.co.uk>
List: current-users
Date: 03/22/1996 10:16:20
[Problems because some ports use memory space and some ports use I/O space
for drivers]

I don't have a great deal of experience with driver code, but can't we
#define all the interfaces to the driver data.  Something like:

#define  ADriverRegA  (*(int *)(0xAddress))
#define  ADriverRegB  (*(int *)(0xAddress))

in <machince/ADriver.h>, on a memory mapped machine, and have equivalent
code on the I/O space machines.

Then, the actual code in  ADriver.c can be

ADriverRegIER |= A_FLAG;
ADriverRegA = 0x45;

ADriverPoll();

return ADriverRegB;

or whatever is appropriate, which can be shared between all machine which
have the same chipset...


Jules


/----------------+-------------------------------+---------------------\
|  Jelibean aka  | jules@mailbox.co.uk           |  6 Evelyn Road      |
|  Jules aka     |                               |  Richmond, Surrey   |
|  Julian Bean   |(jelibean@jmlbhome.demon.co.uk)|  TW9 2TF    *UK*    |
+----------------+-------------------------------+---------------------+
|  The Other Place - n. (pop.) Depending on the affiliation of the     |
|  speaker, one of Oxford, Cambridge, The House of Lords, The House of |
|  Commons, Hell.  Draw your own conclusions.                          |
\----------------------------------------------------------------------/