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;
|
||||
}
|
||||
|
||||
remote_bitbang_in = fdopen(fd, "r");
|
||||
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;
|
||||
return fd;
|
||||
}
|
||||
|
||||
static int remote_bitbang_init_unix(void)
|
||||
|
@ -213,15 +200,34 @@ static int remote_bitbang_init_unix(void)
|
|||
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");
|
||||
if (remote_bitbang_in == NULL) {
|
||||
LOG_ERROR("fdopen: failed to open read stream");
|
||||
close(fd);
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
remote_bitbang_out = fdopen(fd, "w");
|
||||
if (remote_bitbang_out == NULL) {
|
||||
LOG_ERROR("fdopen: failed to open write stream");
|
||||
fclose(remote_bitbang_in);
|
||||
return ERROR_FAIL;
|
||||
}
|
||||
|
||||
|
@ -229,16 +235,6 @@ static int remote_bitbang_init_unix(void)
|
|||
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)
|
||||
{
|
||||
if (CMD_ARGC == 1) {
|
||||
|
|
Loading…
Reference in New Issue