mirror of
https://github.com/linux-usb-gadgets/libusbgx.git
synced 2025-07-26 02:05:06 +03:00
libusbgx: Introduce usbg_cleanup_function_attrs() function
We would like to eliminate static buffers from function attributes. To achieve this we should ensure that there is some function which free the memory allocated in usbg_get_function_attrs() Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com> Reviewed-by: Pawel Szewczyk <p.szewczyk@samsung.com> Reviewed-by: Philippe De Swert <philippedeswert@gmail.com>
This commit is contained in:
parent
752e9ee578
commit
cee215c1df
4 changed files with 36 additions and 0 deletions
|
@ -132,6 +132,8 @@ void show_function(usbg_function *f)
|
||||||
default:
|
default:
|
||||||
fprintf(stdout, " UNKNOWN\n");
|
fprintf(stdout, " UNKNOWN\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
usbg_cleanup_function_attrs(&f_attrs);
|
||||||
}
|
}
|
||||||
|
|
||||||
void show_config(usbg_config *c)
|
void show_config(usbg_config *c)
|
||||||
|
|
|
@ -710,6 +710,16 @@ extern int usbg_lookup_function_type(const char *name);
|
||||||
*/
|
*/
|
||||||
extern int usbg_lookup_function_attrs_type(int f_type);
|
extern int usbg_lookup_function_attrs_type(int f_type);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Cleanup content of function attributes
|
||||||
|
* @param f_attrs function attributes which should be cleaned up.
|
||||||
|
* @note This function should be called to free
|
||||||
|
* additional memory allocated by usbg_get_function_attrs().
|
||||||
|
* @warning None of attributes in passed structure should be
|
||||||
|
* accessed after returning from this function.
|
||||||
|
*/
|
||||||
|
extern void usbg_cleanup_function_attrs(usbg_function_attrs *f_attrs);
|
||||||
|
|
||||||
/* USB configurations allocation and configuration */
|
/* USB configurations allocation and configuration */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
23
src/usbg.c
23
src/usbg.c
|
@ -2581,6 +2581,29 @@ int usbg_get_function_attrs(usbg_function *f, usbg_function_attrs *f_attrs)
|
||||||
: USBG_ERROR_INVALID_PARAM;
|
: USBG_ERROR_INVALID_PARAM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void usbg_cleanup_function_attrs(usbg_function_attrs *f_attrs)
|
||||||
|
{
|
||||||
|
if (!f_attrs)
|
||||||
|
return;
|
||||||
|
|
||||||
|
switch (f_attrs->header.attrs_type) {
|
||||||
|
case USBG_F_ATTRS_SERIAL:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case USBG_F_ATTRS_NET:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case USBG_F_ATTRS_PHONET:
|
||||||
|
break;
|
||||||
|
|
||||||
|
case USBG_F_ATTRS_FFS:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
ERROR("Unsupported attrs type\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int usbg_set_function_net_attrs(usbg_function *f, const usbg_f_net_attrs *attrs)
|
int usbg_set_function_net_attrs(usbg_function *f, const usbg_f_net_attrs *attrs)
|
||||||
{
|
{
|
||||||
int ret = USBG_SUCCESS;
|
int ret = USBG_SUCCESS;
|
||||||
|
|
|
@ -397,6 +397,7 @@ static int usbg_export_function_attrs(usbg_function *f, config_setting_t *root)
|
||||||
ret = USBG_ERROR_NOT_SUPPORTED;
|
ret = USBG_ERROR_NOT_SUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
usbg_cleanup_function_attrs(&f_attrs);
|
||||||
out:
|
out:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue