xfree86: move xf86AllocateInput and xf86DeleteInput to xf86Xinput.c
Make xf86AllocateInput static in the process, this function is only called from one location. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
This commit is contained in:
parent
d2a5f41664
commit
b55ac354af
|
@ -274,96 +274,6 @@ xf86AllocateScrnInfoPrivateIndex(void)
|
||||||
return idx;
|
return idx;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Allocate a new InputInfoRec and append it to the tail of xf86InputDevs. */
|
|
||||||
InputInfoPtr
|
|
||||||
xf86AllocateInput(InputDriverPtr drv, IDevPtr idev)
|
|
||||||
{
|
|
||||||
InputInfoPtr new, *prev = NULL;
|
|
||||||
|
|
||||||
if (!(new = calloc(sizeof(InputInfoRec), 1)))
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
new->drv = drv;
|
|
||||||
drv->refCount++;
|
|
||||||
new->module = DuplicateModule(drv->module, NULL);
|
|
||||||
|
|
||||||
for (prev = &xf86InputDevs; *prev; prev = &(*prev)->next)
|
|
||||||
;
|
|
||||||
|
|
||||||
*prev = new;
|
|
||||||
new->next = NULL;
|
|
||||||
|
|
||||||
new->fd = -1;
|
|
||||||
new->name = idev->identifier;
|
|
||||||
new->type_name = "UNKNOWN";
|
|
||||||
new->device_control = NULL;
|
|
||||||
new->read_input = NULL;
|
|
||||||
new->history_size = 0;
|
|
||||||
new->control_proc = NULL;
|
|
||||||
new->close_proc = NULL;
|
|
||||||
new->switch_mode = NULL;
|
|
||||||
new->conversion_proc = NULL;
|
|
||||||
new->reverse_conversion_proc = NULL;
|
|
||||||
new->dev = NULL;
|
|
||||||
new->private_flags = 0;
|
|
||||||
new->always_core_feedback = NULL;
|
|
||||||
new->private = NULL;
|
|
||||||
new->conf_idev = idev;
|
|
||||||
|
|
||||||
xf86CollectInputOptions(new, (const char**)drv->default_options, NULL);
|
|
||||||
xf86ProcessCommonOptions(new, new->options);
|
|
||||||
|
|
||||||
return new;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Remove an entry from xf86InputDevs. Ideally it should free all allocated
|
|
||||||
* data. To do this properly may require a driver hook.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void
|
|
||||||
xf86DeleteInput(InputInfoPtr pInp, int flags)
|
|
||||||
{
|
|
||||||
InputInfoPtr p;
|
|
||||||
|
|
||||||
/* First check if the inputdev is valid. */
|
|
||||||
if (pInp == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
/* If a free function is defined, call it here. */
|
|
||||||
if (pInp->free)
|
|
||||||
pInp->free(pInp, 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (pInp->module)
|
|
||||||
UnloadModule(pInp->module);
|
|
||||||
|
|
||||||
if (pInp->drv)
|
|
||||||
pInp->drv->refCount--;
|
|
||||||
|
|
||||||
/* This should *really* be handled in drv->UnInit(dev) call instead, but
|
|
||||||
* if the driver forgets about it make sure we free it or at least crash
|
|
||||||
* with flying colors */
|
|
||||||
free(pInp->private);
|
|
||||||
|
|
||||||
FreeInputAttributes(pInp->attrs);
|
|
||||||
|
|
||||||
/* Remove the entry from the list. */
|
|
||||||
if (pInp == xf86InputDevs)
|
|
||||||
xf86InputDevs = pInp->next;
|
|
||||||
else {
|
|
||||||
p = xf86InputDevs;
|
|
||||||
while (p && p->next != pInp)
|
|
||||||
p = p->next;
|
|
||||||
if (p)
|
|
||||||
p->next = pInp->next;
|
|
||||||
/* Else the entry wasn't in the xf86InputDevs list (ignore this). */
|
|
||||||
}
|
|
||||||
free(pInp);
|
|
||||||
}
|
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
xf86AddPixFormat(ScrnInfoPtr pScrn, int depth, int bpp, int pad)
|
xf86AddPixFormat(ScrnInfoPtr pScrn, int depth, int bpp, int pad)
|
||||||
{
|
{
|
||||||
|
|
|
@ -705,6 +705,95 @@ IgnoreInputClass(const IDevPtr idev, const InputAttributes *attrs)
|
||||||
return ignore;
|
return ignore;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Allocate a new InputInfoRec and append it to the tail of xf86InputDevs. */
|
||||||
|
static InputInfoPtr
|
||||||
|
xf86AllocateInput(InputDriverPtr drv, IDevPtr idev)
|
||||||
|
{
|
||||||
|
InputInfoPtr new, *prev = NULL;
|
||||||
|
|
||||||
|
if (!(new = calloc(sizeof(InputInfoRec), 1)))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
new->drv = drv;
|
||||||
|
drv->refCount++;
|
||||||
|
new->module = DuplicateModule(drv->module, NULL);
|
||||||
|
|
||||||
|
for (prev = &xf86InputDevs; *prev; prev = &(*prev)->next)
|
||||||
|
;
|
||||||
|
|
||||||
|
*prev = new;
|
||||||
|
new->next = NULL;
|
||||||
|
|
||||||
|
new->fd = -1;
|
||||||
|
new->name = idev->identifier;
|
||||||
|
new->type_name = "UNKNOWN";
|
||||||
|
new->device_control = NULL;
|
||||||
|
new->read_input = NULL;
|
||||||
|
new->history_size = 0;
|
||||||
|
new->control_proc = NULL;
|
||||||
|
new->close_proc = NULL;
|
||||||
|
new->switch_mode = NULL;
|
||||||
|
new->conversion_proc = NULL;
|
||||||
|
new->reverse_conversion_proc = NULL;
|
||||||
|
new->dev = NULL;
|
||||||
|
new->private_flags = 0;
|
||||||
|
new->always_core_feedback = NULL;
|
||||||
|
new->private = NULL;
|
||||||
|
new->conf_idev = idev;
|
||||||
|
|
||||||
|
xf86CollectInputOptions(new, (const char**)drv->default_options, NULL);
|
||||||
|
xf86ProcessCommonOptions(new, new->options);
|
||||||
|
|
||||||
|
return new;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Remove an entry from xf86InputDevs. Ideally it should free all allocated
|
||||||
|
* data. To do this properly may require a driver hook.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void
|
||||||
|
xf86DeleteInput(InputInfoPtr pInp, int flags)
|
||||||
|
{
|
||||||
|
InputInfoPtr p;
|
||||||
|
|
||||||
|
/* First check if the inputdev is valid. */
|
||||||
|
if (pInp == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
/* If a free function is defined, call it here. */
|
||||||
|
if (pInp->free)
|
||||||
|
pInp->free(pInp, 0);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (pInp->module)
|
||||||
|
UnloadModule(pInp->module);
|
||||||
|
|
||||||
|
if (pInp->drv)
|
||||||
|
pInp->drv->refCount--;
|
||||||
|
|
||||||
|
/* This should *really* be handled in drv->UnInit(dev) call instead, but
|
||||||
|
* if the driver forgets about it make sure we free it or at least crash
|
||||||
|
* with flying colors */
|
||||||
|
free(pInp->private);
|
||||||
|
|
||||||
|
FreeInputAttributes(pInp->attrs);
|
||||||
|
|
||||||
|
/* Remove the entry from the list. */
|
||||||
|
if (pInp == xf86InputDevs)
|
||||||
|
xf86InputDevs = pInp->next;
|
||||||
|
else {
|
||||||
|
p = xf86InputDevs;
|
||||||
|
while (p && p->next != pInp)
|
||||||
|
p = p->next;
|
||||||
|
if (p)
|
||||||
|
p->next = pInp->next;
|
||||||
|
/* Else the entry wasn't in the xf86InputDevs list (ignore this). */
|
||||||
|
}
|
||||||
|
free(pInp);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a new input device, activate and enable it.
|
* Create a new input device, activate and enable it.
|
||||||
*
|
*
|
||||||
|
|
|
@ -188,7 +188,6 @@ int xf86NewInputDevice(IDevPtr idev, DeviceIntPtr *pdev, BOOL is_auto);
|
||||||
/* xf86Helper.c */
|
/* xf86Helper.c */
|
||||||
extern _X_EXPORT void xf86AddInputDriver(InputDriverPtr driver, pointer module, int flags);
|
extern _X_EXPORT void xf86AddInputDriver(InputDriverPtr driver, pointer module, int flags);
|
||||||
extern _X_EXPORT void xf86DeleteInputDriver(int drvIndex);
|
extern _X_EXPORT void xf86DeleteInputDriver(int drvIndex);
|
||||||
extern _X_INTERNAL InputInfoPtr xf86AllocateInput(InputDriverPtr drv, IDevPtr idev);
|
|
||||||
extern _X_EXPORT InputDriverPtr xf86LookupInputDriver(const char *name);
|
extern _X_EXPORT InputDriverPtr xf86LookupInputDriver(const char *name);
|
||||||
extern _X_EXPORT InputInfoPtr xf86LookupInput(const char *name);
|
extern _X_EXPORT InputInfoPtr xf86LookupInput(const char *name);
|
||||||
extern _X_EXPORT void xf86DeleteInput(InputInfoPtr pInp, int flags);
|
extern _X_EXPORT void xf86DeleteInput(InputInfoPtr pInp, int flags);
|
||||||
|
|
Loading…
Reference in New Issue