This is the mail archive of the
ecos-discuss@sourceware.cygnus.com
mailing list for the eCos project.
Re: block transfer functions..
- To: airlied at parthus dot com
- Subject: Re: [ECOS] block transfer functions..
- From: Bart Veer <bartv at redhat dot com>
- Date: Mon, 3 Jul 2000 19:04:52 +0100
- CC: ecos-discuss at sourceware dot cygnus dot com
- References: <Pine.LNX.4.21.0007031430310.30324-200000@limerickpc103>
- Reply-to: bartv at redhat dot com
>>>>> "Dave" == Dave Airlie <airlied@parthus.com> writes:
Dave> The reason I don't want to add CDL is that the driver is
Dave> part of a separate build process, that uses a completed eCos
Dave> build, i.e. I build eCos once and then just link my driver
Dave> against it, I don't want to make any changes to eCos outside
Dave> of the CVS tree/public releases so that I can just point
Dave> people to the CVS tree...
The preferred approach, as Jesper indicated, is to turn the driver
into a separate eCos package, complete with CDL script, and release it
as a .epk file. People can then take the current release of eCos and
add this package. That is how eCos is intended to work: a core
distribution, plus add-on packages from various sources.
There is an alternative approach, which may be appropriate in some
circumstances. If there is some eCos functionality which only gets
built if there is an implementation of a specific CDL interface, and
if that functionality could reasonably be invoked directly by
application code as well as by other packages such as device drivers,
then you could have a configuration option of the form:
cdl_option CYGIMP_IO_SERIAL_BLOCK_TRANSFER_APPLICATION {
implements CYGINT_IO_SERIAL_BLOCK_TRANSFER
default_value 0
...
}
Application developers can then enable this option, causing the
interface to be implemented and the relevant functionality to be added
to the eCos system.
In this case I suspect that CYGINT_IO_SERIAL_BLOCK_TRANSFER should
only be implemented by device driver packages, not by application
code, so it would be inappropriate to add such an option. However I
have not examined the relevant code in any detail.
Bart