]> sigrok.org Git - libsigrok.git/blobdiff - hardware/common/serial.c
libsigrok: Fix #includes.
[libsigrok.git] / hardware / common / serial.c
index f6efe3e26465e30d42411adcd08e7d922479701f..80b6f22cd2a37e2be1edae8e1344956343397863 100644 (file)
 #include <fcntl.h>
 #include <unistd.h>
 #ifdef _WIN32
-#include <conio.h>
+#include <windows.h>
 #else
 #include <glob.h>
 #include <termios.h>
 #endif
 #include <stdlib.h>
 #include <glib.h>
-#include <sigrok.h>
-#include <sigrok-internal.h>
+#include "sigrok.h"
+#include "sigrok-internal.h"
 
 // FIXME: Must be moved, or rather passed as function argument.
 #ifdef _WIN32
-HANDLE hdl;
+static HANDLE hdl;
 #endif
 
 const char *serial_port_glob[] = {
@@ -163,7 +163,12 @@ void *serial_backup_params(int fd)
 #else
        struct termios *term;
 
-       term = malloc(sizeof(struct termios));
+       /* TODO: 'term' is never g_free()'d? */
+       if (!(term = g_try_malloc(sizeof(struct termios)))) {
+               sr_err("serial: %s: term malloc failed", __func__);
+               return NULL;
+       }
+
        tcgetattr(fd, term);
 
        return term;
@@ -243,9 +248,11 @@ int serial_set_params(int fd, int speed, int bits, int parity, int stopbits,
        case 115200:
                baud = B115200;
                break;
+#ifndef __APPLE__
        case 460800:
                baud = B460800;
                break;
+#endif
        default:
                return SR_ERR;
        }