remote_bitbang: De-duplicate init code and clean up on error
Change-Id: I8be413a9e1683f96f835232f9ff25d9bd42099de Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com> Reviewed-on: http://openocd.zylin.com/1380 Tested-by: jenkins Reviewed-by: Paul Fertser <fercerpav@gmail.com> Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
This commit is contained in:
parent
00ba179dbc
commit
70a2ffac8e
|
@ -173,20 +173,7 @@ static int remote_bitbang_init_tcp(void)
|
||||||
return ERROR_FAIL;
|
return ERROR_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
remote_bitbang_in = fdopen(fd, "r");
|
return fd;
|
||||||
if (remote_bitbang_in == NULL) {
|
|
||||||
LOG_ERROR("fdopen: failed to open read stream");
|
|
||||||
return ERROR_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
remote_bitbang_out = fdopen(fd, "w");
|
|
||||||
if (remote_bitbang_out == NULL) {
|
|
||||||
LOG_ERROR("fdopen: failed to open write stream");
|
|
||||||
return ERROR_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
LOG_INFO("remote_bitbang driver initialized");
|
|
||||||
return ERROR_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int remote_bitbang_init_unix(void)
|
static int remote_bitbang_init_unix(void)
|
||||||
|
@ -213,15 +200,34 @@ static int remote_bitbang_init_unix(void)
|
||||||
return ERROR_FAIL;
|
return ERROR_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return fd;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int remote_bitbang_init(void)
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
bitbang_interface = &remote_bitbang_bitbang;
|
||||||
|
|
||||||
|
LOG_INFO("Initializing remote_bitbang driver");
|
||||||
|
if (remote_bitbang_port == NULL)
|
||||||
|
fd = remote_bitbang_init_unix();
|
||||||
|
else
|
||||||
|
fd = remote_bitbang_init_tcp();
|
||||||
|
|
||||||
|
if (fd < 0)
|
||||||
|
return fd;
|
||||||
|
|
||||||
remote_bitbang_in = fdopen(fd, "r");
|
remote_bitbang_in = fdopen(fd, "r");
|
||||||
if (remote_bitbang_in == NULL) {
|
if (remote_bitbang_in == NULL) {
|
||||||
LOG_ERROR("fdopen: failed to open read stream");
|
LOG_ERROR("fdopen: failed to open read stream");
|
||||||
|
close(fd);
|
||||||
return ERROR_FAIL;
|
return ERROR_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
remote_bitbang_out = fdopen(fd, "w");
|
remote_bitbang_out = fdopen(fd, "w");
|
||||||
if (remote_bitbang_out == NULL) {
|
if (remote_bitbang_out == NULL) {
|
||||||
LOG_ERROR("fdopen: failed to open write stream");
|
LOG_ERROR("fdopen: failed to open write stream");
|
||||||
|
fclose(remote_bitbang_in);
|
||||||
return ERROR_FAIL;
|
return ERROR_FAIL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -229,16 +235,6 @@ static int remote_bitbang_init_unix(void)
|
||||||
return ERROR_OK;
|
return ERROR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int remote_bitbang_init(void)
|
|
||||||
{
|
|
||||||
bitbang_interface = &remote_bitbang_bitbang;
|
|
||||||
|
|
||||||
LOG_INFO("Initializing remote_bitbang driver");
|
|
||||||
if (remote_bitbang_port == NULL)
|
|
||||||
return remote_bitbang_init_unix();
|
|
||||||
return remote_bitbang_init_tcp();
|
|
||||||
}
|
|
||||||
|
|
||||||
COMMAND_HANDLER(remote_bitbang_handle_remote_bitbang_port_command)
|
COMMAND_HANDLER(remote_bitbang_handle_remote_bitbang_port_command)
|
||||||
{
|
{
|
||||||
if (CMD_ARGC == 1) {
|
if (CMD_ARGC == 1) {
|
||||||
|
|
Loading…
Reference in New Issue