[DGD]DGD extension interface, some thoughts
Felix A. Croes
felix at dworkin.nl
Tue Sep 26 15:05:10 CEST 2000
John "West" McKenna <john at ucc.gu.uwa.edu.au> wrote:
> >At initialization time, a specific function will be called to
> >initialize external modules. By default, this function will exist
> >in dgd/src/config.c and do nothing. Module writers should supply
> >their own version of this function. The preferred method will be
> >to comment it out in config.c, and link DGD with additional module
> >code at compile time. Replacing the function will be the only
> >change that has to be made to the source code of DGD itself.
>
> I assume you're working out a cleaner method of adding extensions like
> the networking package. If there's a single function that gets called,
> and packages over-write its definition, what happens when there is more
> than one package?
I hereby (arbitrarily) rule that to redefine a kfun more than once
is an error.
> A better way might be to have the installation process write the config.c
> file itself, based on the contents of an "extensions" directory (does
> this sound familiar?). It would undoubtedly be a pain to implement,
> considering the range of ports that must be supported.
I am not interested in resolving conflicts between different packages.
I will just offer an interface by which DGD can be extended, and the
rest is for the package writers to work out.
It would be a good idea to decide on some sort of package manager
standard beyond DGD's extension interface, certainly; feel free to
discuss it. I doubt that a solution exists which is both platform-
independent and sufficiently configurable, but something can probably
be negotiated which satisfies most people.
> [adding/replacing kfuns, replacing the swapping mechanism]
>
> Adding/replacing kfuns allows customisation of the LPC interface.
> I haven't looked at the driver source at all, so I don't know how practical
> this would be: it might be good to have some standard hooks on the other
> side of the driver - nearer the OS interface.
I don't understand what the purpose of that would be. Please clarify?
Regards,
Dworkin
List config page: http://list.imaginary.com/mailman/listinfo/dgd
More information about the DGD
mailing list