This is the mail archive of the ecos-discuss@sourceware.cygnus.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: block transfer functions..


>>>>> "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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]