From 481c8554fec914391adc3adfeb431c4b131b37f2 Mon Sep 17 00:00:00 2001 From: James Maki Date: Thu, 13 May 2010 10:46:40 -0500 Subject: show sw version --- src/venus_api.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'src/venus_api.c') diff --git a/src/venus_api.c b/src/venus_api.c index c1ae5d4..839d9ed 100644 --- a/src/venus_api.c +++ b/src/venus_api.c @@ -107,6 +107,16 @@ void venus_msg_data_free(struct venus_msg *msg) msg->data = NULL; } +void venus_msg_free(struct venus_msg *msg) +{ + if (!msg) { + return; + } + + venus_msg_data_free(msg); + free(msg); +} + uint8_t venus_checksum(void *data, uint16_t len) { int i; @@ -384,36 +394,34 @@ int venus_conf_format(int fd, uint8_t type, uint8_t attr) return 0; } -int venus_query_sw_version(int fd, uint8_t type) +int venus_query_sw_version(int fd, uint8_t type, struct venus_msg *msg) { int err; uint8_t data[2]; - struct venus_msg msg; data[0] = ID_QUERY_SW_VERSION; data[1] = type; - msg.data = data; - msg.len = sizeof(data); - err = venus_write_msg(fd, &msg); + msg->data = data; + msg->len = sizeof(data); + err = venus_write_msg(fd, msg); if (err < 0) { log_error("venus_write_msg: %d", err); return -1; } - err = venus_read_msg(fd, &msg); + err = venus_read_msg(fd, msg); if (err < 0) { log_error("venus_read_msg: %d", err); return -1; } - venus_msg_data_free(&msg); + venus_msg_data_free(msg); - err = venus_read_msg(fd, &msg); + err = venus_read_msg(fd, msg); if (err < 0) { log_error("venus_read_msg: %d", err); return -1; } - venus_msg_data_free(&msg); return 0; } -- cgit v1.2.3