serial-dmm: Add per-driver clear_instances() wrappers.
This commit is contained in:
parent
0c23677d0b
commit
fd9b2b865a
|
@ -143,16 +143,15 @@ SR_PRIV struct dmm_info dmms[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Properly close and free all devices. */
|
/* Properly close and free all devices. */
|
||||||
static int clear_instances(void)
|
static int clear_instances(int dmm)
|
||||||
{
|
{
|
||||||
struct sr_dev_inst *sdi;
|
struct sr_dev_inst *sdi;
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
struct dev_context *devc;
|
struct dev_context *devc;
|
||||||
GSList *l;
|
GSList *l;
|
||||||
|
struct sr_dev_driver *di;
|
||||||
|
|
||||||
/* di is not necessarily initialized */
|
di = dmms[dmm].di;
|
||||||
if (!di)
|
|
||||||
return SR_OK;
|
|
||||||
|
|
||||||
if (!(drvc = di->priv))
|
if (!(drvc = di->priv))
|
||||||
return SR_OK;
|
return SR_OK;
|
||||||
|
@ -172,6 +171,21 @@ static int clear_instances(void)
|
||||||
return SR_OK;
|
return SR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Driver-specific clear_instances() function wrappers */
|
||||||
|
#define CLEAR_INSTANCES(X) static int clear_instances_##X(void) \
|
||||||
|
{ return clear_instances(X); }
|
||||||
|
CLEAR_INSTANCES(DIGITEK_DT4000ZC)
|
||||||
|
CLEAR_INSTANCES(TEKPOWER_TP4000ZC)
|
||||||
|
CLEAR_INSTANCES(METEX_ME31)
|
||||||
|
CLEAR_INSTANCES(PEAKTECH_3410)
|
||||||
|
CLEAR_INSTANCES(MASTECH_MAS345)
|
||||||
|
CLEAR_INSTANCES(VA_VA18B)
|
||||||
|
CLEAR_INSTANCES(METEX_M3640D)
|
||||||
|
CLEAR_INSTANCES(PEAKTECH_4370)
|
||||||
|
CLEAR_INSTANCES(PCE_PCE_DM32)
|
||||||
|
CLEAR_INSTANCES(RADIOSHACK_22_168)
|
||||||
|
CLEAR_INSTANCES(RADIOSHACK_22_812)
|
||||||
|
|
||||||
static int hw_init(struct sr_context *sr_ctx, int dmm)
|
static int hw_init(struct sr_context *sr_ctx, int dmm)
|
||||||
{
|
{
|
||||||
struct drv_context *drvc;
|
struct drv_context *drvc;
|
||||||
|
@ -399,7 +413,7 @@ static int hw_dev_close(struct sr_dev_inst *sdi)
|
||||||
|
|
||||||
static int hw_cleanup(int dmm)
|
static int hw_cleanup(int dmm)
|
||||||
{
|
{
|
||||||
clear_instances();
|
clear_instances(dmm);
|
||||||
|
|
||||||
return SR_OK;
|
return SR_OK;
|
||||||
}
|
}
|
||||||
|
@ -553,7 +567,7 @@ SR_PRIV struct sr_dev_driver ID##_driver_info = { \
|
||||||
.cleanup = hw_cleanup_##ID_UPPER, \
|
.cleanup = hw_cleanup_##ID_UPPER, \
|
||||||
.scan = hw_scan_##ID_UPPER, \
|
.scan = hw_scan_##ID_UPPER, \
|
||||||
.dev_list = hw_dev_list_##ID_UPPER, \
|
.dev_list = hw_dev_list_##ID_UPPER, \
|
||||||
.dev_clear = clear_instances, \
|
.dev_clear = clear_instances_##ID_UPPER, \
|
||||||
.dev_open = hw_dev_open, \
|
.dev_open = hw_dev_open, \
|
||||||
.dev_close = hw_dev_close, \
|
.dev_close = hw_dev_close, \
|
||||||
.info_get = hw_info_get, \
|
.info_get = hw_info_get, \
|
||||||
|
|
Loading…
Reference in New Issue