|
|
|
@ -47,7 +47,22 @@ static int BFopen(const char *devpath)
@@ -47,7 +47,22 @@ static int BFopen(const char *devpath)
|
|
|
|
|
|
|
|
|
|
static int BFopen(const char *devpath) |
|
|
|
|
{ |
|
|
|
|
return open(devpath, O_RDWR | O_CLOEXEC | O_NOCTTY); |
|
|
|
|
int fdDev = open(devpath, O_RDWR | O_CLOEXEC | O_NOCTTY); |
|
|
|
|
if (likely(fdDev != -1)) |
|
|
|
|
{ |
|
|
|
|
struct termios pattr; |
|
|
|
|
|
|
|
|
|
tcgetattr(fdDev, &pattr); |
|
|
|
|
pattr.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); |
|
|
|
|
pattr.c_oflag &= ~OPOST; |
|
|
|
|
pattr.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN); |
|
|
|
|
pattr.c_cflag &= ~(CSIZE | PARENB); |
|
|
|
|
pattr.c_cflag |= CS8; |
|
|
|
|
tcsetattr(fdDev, TCSANOW, &pattr); |
|
|
|
|
} |
|
|
|
|
tcflush(fdDev, TCOFLUSH); |
|
|
|
|
tcflush(fdDev, TCIFLUSH); |
|
|
|
|
return fdDev; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#endif |
|
|
|
@ -180,19 +195,6 @@ static bool bitforce_thread_prepare(struct thr_info *thr)
@@ -180,19 +195,6 @@ static bool bitforce_thread_prepare(struct thr_info *thr)
|
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#ifndef WIN32 |
|
|
|
|
{ |
|
|
|
|
struct termios pattr; |
|
|
|
|
|
|
|
|
|
tcgetattr(fdDev, &pattr); |
|
|
|
|
pattr.c_iflag &= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); |
|
|
|
|
pattr.c_oflag &= ~OPOST; |
|
|
|
|
pattr.c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN); |
|
|
|
|
pattr.c_cflag &= ~(CSIZE | PARENB); |
|
|
|
|
pattr.c_cflag |= CS8; |
|
|
|
|
tcsetattr(fdDev, TCSANOW, &pattr); |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
bitforce->device_fd = fdDev; |
|
|
|
|
|
|
|
|
|
applog(LOG_INFO, "Opened BitForce on %s", bitforce->device_path); |
|
|
|
|