On Wed, Jun 13, 2012 at 3:52 PM, walter harms <wha...@bfs.de> wrote: > > > Am 13.06.2012 15:53, schrieb Dave Airlie: >> From: Dave Airlie <airl...@redhat.com> >> >> This adds the framework for DDX provider support. >> >> Signed-off-by: Dave Airlie <airl...@redhat.com> >> --- >> hw/xfree86/common/xf86str.h | 4 +++ >> hw/xfree86/modes/xf86Crtc.c | 46 ++++++++++++++++++++++++++++++ >> hw/xfree86/modes/xf86Crtc.h | 58 ++++++++++++++++++++++++++++++++++++++ >> hw/xfree86/modes/xf86RandR12.c | 60 >> ++++++++++++++++++++++++++++++++++++++++ >> 4 files changed, 168 insertions(+) >> >> diff --git a/hw/xfree86/common/xf86str.h b/hw/xfree86/common/xf86str.h >> index 6bd6a62..56397f1 100644 >> --- a/hw/xfree86/common/xf86str.h >> +++ b/hw/xfree86/common/xf86str.h >> @@ -814,6 +814,10 @@ typedef struct _ScrnInfoRec { >> funcPointer reservedFuncs[NUM_RESERVED_FUNCS]; >> >> Bool is_gpu; >> + uint32_t roles; >> + uint32_t abilities; >> + uint32_t current_role; >> + >> } ScrnInfoRec; >> >> typedef struct { >> diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c >> index 2c8878f..238fb91 100644 >> --- a/hw/xfree86/modes/xf86Crtc.c >> +++ b/hw/xfree86/modes/xf86Crtc.c >> @@ -3202,3 +3202,49 @@ xf86_crtc_supports_gamma(ScrnInfoPtr pScrn) >> >> return FALSE; >> } >> + >> +xf86ProviderPtr >> +xf86ProviderCreate(ScrnInfoPtr scrn, >> + const xf86ProviderFuncsRec *funcs, const char *name) >> +{ >> + xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn); >> + xf86ProviderPtr provider; >> + int len; >> + >> + if (xf86_config->provider) >> + return xf86_config->provider; >> + >> + if (name) >> + len = strlen(name) + 1; >> + else >> + len = 0; >> + >> + provider = calloc(sizeof(xf86ProviderRec) + len, 1); >> + if (!provider) >> + return NULL; >> + >> + provider->scrn = scrn; >> + provider->funcs = funcs; >> + if (name) { >> + provider->name = (char *) (provider + 1); >> + strcpy(provider->name, name); >> + } >> +#ifdef RANDR_12_INTERFACE >> + provider->randr_provider = NULL; >> +#endif >> + >> + xf86_config->provider = provider; >> + return provider; >> +} >> + > > Is it possible to make this more simple > by using a char name[80] or strdup() (keeping it char *) ?
Its the same as the other crtc/output implementations and I rather not diverge unless we repair all of them the same way. Dave. _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel