mirror of
https://gitlab.freedesktop.org/libfprint/libfprint.git
synced 2026-09-09 04:40:06 +00:00
egis_etu905: use const buffer for egis_etu905_exec_cmd command
The function only uses the passed command as a const buffer and makes a copy immediately. As such, there is also no need for a destroy callback as the caller can simply clean up afterwards. Signed-off-by: Benjamin Berg <benjamin@sipsolutions.net>
This commit is contained in:
committed by
Marco Trevisan
parent
f3d17a24f9
commit
f5955e7cb5
@@ -325,9 +325,8 @@ egis_etu905_get_check_bytes (FpiByteReader *reader)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
egis_etu905_exec_cmd (FpDevice *device,
|
egis_etu905_exec_cmd (FpDevice *device,
|
||||||
guchar *cmd,
|
const guchar *cmd,
|
||||||
const gsize cmd_length,
|
const gsize cmd_length,
|
||||||
GDestroyNotify cmd_destroy,
|
|
||||||
SynCmdMsgCallback callback)
|
SynCmdMsgCallback callback)
|
||||||
{
|
{
|
||||||
g_auto(FpiByteWriter) writer = {0};
|
g_auto(FpiByteWriter) writer = {0};
|
||||||
@@ -372,10 +371,6 @@ egis_etu905_exec_cmd (FpDevice *device,
|
|||||||
fpi_byte_writer_set_pos (&writer, egis_etu905_write_prefix_len);
|
fpi_byte_writer_set_pos (&writer, egis_etu905_write_prefix_len);
|
||||||
written &= fpi_byte_writer_put_uint16_be (&writer, check_value);
|
written &= fpi_byte_writer_put_uint16_be (&writer, check_value);
|
||||||
|
|
||||||
/* destroy cmd if requested */
|
|
||||||
if (cmd_destroy)
|
|
||||||
g_clear_pointer (&cmd, cmd_destroy);
|
|
||||||
|
|
||||||
/* The command runs on its own dedicated SSM, carrying all its state (the
|
/* The command runs on its own dedicated SSM, carrying all its state (the
|
||||||
* outgoing transfer and the response buffer) via the SSM data. Nothing is
|
* outgoing transfer and the response buffer) via the SSM data. Nothing is
|
||||||
* shared on the device instance, so commands issued from different contexts
|
* shared on the device instance, so commands issued from different contexts
|
||||||
@@ -515,7 +510,7 @@ egis_etu905_list_run_state (FpiSsm *ssm,
|
|||||||
switch (fpi_ssm_get_cur_state (ssm))
|
switch (fpi_ssm_get_cur_state (ssm))
|
||||||
{
|
{
|
||||||
case LIST_GET_ENROLLED_IDS:
|
case LIST_GET_ENROLLED_IDS:
|
||||||
egis_etu905_exec_cmd (device, cmd_list, cmd_list_len, NULL,
|
egis_etu905_exec_cmd (device, cmd_list, cmd_list_len,
|
||||||
egis_etu905_list_fill_enrolled_ids_cb);
|
egis_etu905_list_fill_enrolled_ids_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -735,7 +730,7 @@ egis_etu905_delete_run_state (FpiSsm *ssm,
|
|||||||
{
|
{
|
||||||
case DELETE_GET_ENROLLED_IDS:
|
case DELETE_GET_ENROLLED_IDS:
|
||||||
/* get enrolled_ids from device for use building delete payload below */
|
/* get enrolled_ids from device for use building delete payload below */
|
||||||
egis_etu905_exec_cmd (device, cmd_list, cmd_list_len, NULL,
|
egis_etu905_exec_cmd (device, cmd_list, cmd_list_len,
|
||||||
egis_etu905_list_fill_enrolled_ids_cb);
|
egis_etu905_list_fill_enrolled_ids_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -750,8 +745,8 @@ egis_etu905_delete_run_state (FpiSsm *ssm,
|
|||||||
if (!payload)
|
if (!payload)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
egis_etu905_exec_cmd (device, g_steal_pointer (&payload), payload_length,
|
egis_etu905_exec_cmd (device, payload, payload_length,
|
||||||
g_free, egis_etu905_delete_cb);
|
egis_etu905_delete_cb);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1075,17 +1070,16 @@ egis_etu905_enroll_run_state (FpiSsm *ssm,
|
|||||||
{
|
{
|
||||||
case ENROLL_START:
|
case ENROLL_START:
|
||||||
egis_etu905_exec_cmd (device, cmd_enroll_starting, cmd_enroll_starting_len,
|
egis_etu905_exec_cmd (device, cmd_enroll_starting, cmd_enroll_starting_len,
|
||||||
NULL, egis_etu905_enroll_begin_cb);
|
egis_etu905_enroll_begin_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ENROLL_CAPTURE_SENSOR_RESET:
|
case ENROLL_CAPTURE_SENSOR_RESET:
|
||||||
egis_etu905_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len,
|
egis_etu905_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len,
|
||||||
NULL, egis_etu905_task_ssm_next_state_cb);
|
egis_etu905_task_ssm_next_state_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ENROLL_CAPTURE_SENSOR_START_CAPTURE:
|
case ENROLL_CAPTURE_SENSOR_START_CAPTURE:
|
||||||
egis_etu905_exec_cmd (device, cmd_sensor_start_capture, cmd_sensor_start_capture_len,
|
egis_etu905_exec_cmd (device, cmd_sensor_start_capture, cmd_sensor_start_capture_len,
|
||||||
NULL,
|
|
||||||
egis_etu905_task_ssm_next_state_cb);
|
egis_etu905_task_ssm_next_state_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -1095,17 +1089,17 @@ egis_etu905_enroll_run_state (FpiSsm *ssm,
|
|||||||
|
|
||||||
case ENROLL_CAPTURE_READ_RESPONSE:
|
case ENROLL_CAPTURE_READ_RESPONSE:
|
||||||
egis_etu905_exec_cmd (device, cmd_read_capture, cmd_read_capture_len,
|
egis_etu905_exec_cmd (device, cmd_read_capture, cmd_read_capture_len,
|
||||||
NULL, egis_etu905_read_capture_cb);
|
egis_etu905_read_capture_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ENROLL_DUPLICATE_CHECK:
|
case ENROLL_DUPLICATE_CHECK:
|
||||||
egis_etu905_exec_cmd (device, cmd_duplicate_check, cmd_duplicate_check_len,
|
egis_etu905_exec_cmd (device, cmd_duplicate_check, cmd_duplicate_check_len,
|
||||||
NULL, egis_etu905_enroll_duplicate_check_cb);
|
egis_etu905_enroll_duplicate_check_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ENROLL_COMMIT_START:
|
case ENROLL_COMMIT_START:
|
||||||
egis_etu905_exec_cmd (device, cmd_commit_starting, cmd_commit_starting_len,
|
egis_etu905_exec_cmd (device, cmd_commit_starting, cmd_commit_starting_len,
|
||||||
NULL, egis_etu905_commit_start_cb);
|
egis_etu905_commit_start_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ENROLL_COMMIT:
|
case ENROLL_COMMIT:
|
||||||
@@ -1133,14 +1127,14 @@ egis_etu905_enroll_run_state (FpiSsm *ssm,
|
|||||||
}
|
}
|
||||||
|
|
||||||
payload_length = fpi_byte_writer_get_size (&writer);
|
payload_length = fpi_byte_writer_get_size (&writer);
|
||||||
egis_etu905_exec_cmd (device, fpi_byte_writer_reset_and_get_data (&writer),
|
payload = fpi_byte_writer_reset_and_get_data (&writer);
|
||||||
payload_length,
|
egis_etu905_exec_cmd (device, payload, payload_length,
|
||||||
g_free, egis_etu905_task_ssm_next_state_cb);
|
egis_etu905_task_ssm_next_state_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ENROLL_COMMIT_SENSOR_RESET:
|
case ENROLL_COMMIT_SENSOR_RESET:
|
||||||
egis_etu905_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len,
|
egis_etu905_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len,
|
||||||
NULL, egis_etu905_task_ssm_next_state_cb);
|
egis_etu905_task_ssm_next_state_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ENROLL_COMPLETE:
|
case ENROLL_COMPLETE:
|
||||||
@@ -1296,7 +1290,7 @@ egis_etu905_identify_run_state (FpiSsm *ssm,
|
|||||||
case IDENTIFY_GET_ENROLLED_IDS:
|
case IDENTIFY_GET_ENROLLED_IDS:
|
||||||
/* get enrolled_ids from device for use in check stages below */
|
/* get enrolled_ids from device for use in check stages below */
|
||||||
egis_etu905_exec_cmd (device, cmd_list, cmd_list_len,
|
egis_etu905_exec_cmd (device, cmd_list, cmd_list_len,
|
||||||
NULL, egis_etu905_list_fill_enrolled_ids_cb);
|
egis_etu905_list_fill_enrolled_ids_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IDENTIFY_CHECK_ENROLLED_NUM:
|
case IDENTIFY_CHECK_ENROLLED_NUM:
|
||||||
@@ -1311,12 +1305,12 @@ egis_etu905_identify_run_state (FpiSsm *ssm,
|
|||||||
|
|
||||||
case IDENTIFY_SENSOR_RESET:
|
case IDENTIFY_SENSOR_RESET:
|
||||||
egis_etu905_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len,
|
egis_etu905_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len,
|
||||||
NULL, egis_etu905_task_ssm_next_state_cb);
|
egis_etu905_task_ssm_next_state_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IDENTIFY_SENSOR_IDENTIFY:
|
case IDENTIFY_SENSOR_IDENTIFY:
|
||||||
egis_etu905_exec_cmd (device, cmd_sensor_identify, cmd_sensor_identify_len,
|
egis_etu905_exec_cmd (device, cmd_sensor_identify, cmd_sensor_identify_len,
|
||||||
NULL, egis_etu905_task_ssm_next_state_cb);
|
egis_etu905_task_ssm_next_state_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IDENTIFY_WAIT_FINGER:
|
case IDENTIFY_WAIT_FINGER:
|
||||||
@@ -1325,18 +1319,18 @@ egis_etu905_identify_run_state (FpiSsm *ssm,
|
|||||||
|
|
||||||
case IDENTIFY_SENSOR_CHECK:
|
case IDENTIFY_SENSOR_CHECK:
|
||||||
egis_etu905_exec_cmd (device, cmd_sensor_check, cmd_sensor_check_len,
|
egis_etu905_exec_cmd (device, cmd_sensor_check, cmd_sensor_check_len,
|
||||||
NULL, egis_etu905_task_ssm_next_state_cb);
|
egis_etu905_task_ssm_next_state_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IDENTIFY_CHECK:
|
case IDENTIFY_CHECK:
|
||||||
payload = egis_etu905_get_check_cmd (device, &payload_length);
|
payload = egis_etu905_get_check_cmd (device, &payload_length);
|
||||||
egis_etu905_exec_cmd (device, g_steal_pointer (&payload), payload_length,
|
egis_etu905_exec_cmd (device, payload, payload_length,
|
||||||
g_free, egis_etu905_identify_check_cb);
|
egis_etu905_identify_check_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IDENTIFY_COMPLETE_SENSOR_RESET:
|
case IDENTIFY_COMPLETE_SENSOR_RESET:
|
||||||
egis_etu905_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len,
|
egis_etu905_exec_cmd (device, cmd_sensor_reset, cmd_sensor_reset_len,
|
||||||
NULL, egis_etu905_task_ssm_next_state_cb);
|
egis_etu905_task_ssm_next_state_cb);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1491,12 +1485,12 @@ egis_etu905_dev_init_handler (FpiSsm *ssm,
|
|||||||
{
|
{
|
||||||
case DEV_GET_FW_VERSION:
|
case DEV_GET_FW_VERSION:
|
||||||
egis_etu905_exec_cmd (device, cmd_fw_version, cmd_fw_version_len,
|
egis_etu905_exec_cmd (device, cmd_fw_version, cmd_fw_version_len,
|
||||||
NULL, egis_etu905_fw_version_cb);
|
egis_etu905_fw_version_cb);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case DEV_INIT_CONTROL:
|
case DEV_INIT_CONTROL:
|
||||||
egis_etu905_exec_cmd (device, cmd_init, cmd_init_len,
|
egis_etu905_exec_cmd (device, cmd_init, cmd_init_len,
|
||||||
NULL, egis_etu905_cmd_init_cb);
|
egis_etu905_cmd_init_cb);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|||||||
Reference in New Issue
Block a user