|
From: <dem...@ne...> - 2008-07-12 15:24:44
|
I really don't want to, but it looks like the only viable way to port this over is to have a drm pseudo busmanager.? The drm-enabled video drivers would call this, the same way that the current ones call the PCI busmanager.? The main problem is that each drm video driver links in with the main drm object.? The drm object keeps track of basic state info & is the main point of reference when device operations are requested.? This had an added benefit when there are multiple videocards in the system, because both video drivers link with the drm driver; allowing the drm object to effectively manage both devices.? The AGP drivers were in a similiar situation, however, they were all compiled together into one object.? It's not preferable to link all of the video drivers into one, nor is it preferable to give each video driver it's own built in drm object (since that defeats the point by not allowing multiple cards to share state). And without modifications (that I have no idea of how to do) our loader doesn't support dynamically linking drivers together.? The downside to the busmanager approach is that it would be overkill for something that should be done on the end of the driver.? While looking at how the *nixen drm interfaces with the video drivers, I discovered that (with the exception of the state info) all it really adds is the same stuff that our drivers have; i.e. ioctl control, bus access, & all of the basic driver interaction functions.? Though, the thought of a bus that manages traffic between other busses is kind of intriqueing. Dee Sharpe -----Original Message----- From: Kristian Van Der Vliet <va...@li...> To: syl...@li... Sent: Sat, 12 Jul 2008 6:34 am Subject: Re: [Syllable-developer] linking magic with drivers On Fri, 2008-07-11 at 22:18 -0400, dem...@ne... wrote: > Is it possible to link one driver against another driver in the same > way that all drivers are linked against the kernel? So that driver A > is really just a loaded module in kernel space & driver B can use > driver A's functions the same way it would use kernel functions? This > would really be helpful, because multiple drivers could treat driver A > like a shared library. In effect, driver A would be more of a kernel > extension. I know that the BSD's do this & Linux does this, but I'm > kinda sketchy on how this could be done in Syllable. In theory it's possible, as drivers are ELF shared objects and the ELF loader could handle them like any other DSO with dependencies. In practise the code for loading kernel ELF objects is slightly different to the code for loading standard ELF DSOs so I don't believe this will work, sadly. The ELF loader/RTLD *could* be expanded to do this, though. -- Vanders http://www.syllable.org ------------------------------------------------------------------------- Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW! Studies have shown that voting for your favorite open source project, along with a healthy diet, reduces your potential for chronic lameness and boredom. Vote Now at http://www.sourceforge.net/community/cca08 _______________________________________________ Syllable-developer mailing list Syl...@li... https://lists.sourceforge.net/lists/listinfo/syllable-developer |