X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=linux.c;h=dbff4c4459282a376e2035c6e3f005474939d9a4;hb=7f450f46bda085943df503d9d74ed1c8f9d42e7f;hp=d70a45f90a2260041c9d1722daa192bb69f55faa;hpb=5bd33b7c8be499b970192d144409bec7072fc701;p=libserialport.git diff --git a/linux.c b/linux.c index d70a45f..dbff4c4 100644 --- a/linux.c +++ b/linux.c @@ -35,12 +35,12 @@ SP_PRIV enum sp_return get_port_details(struct sp_port *port) int i, count; if (strncmp(port->name, "/dev/", 5)) - RETURN_ERROR(SP_ERR_ARG, "Device name not recognized (%s)", port->name); + RETURN_ERROR(SP_ERR_ARG, "Device name not recognized."); snprintf(file_name, sizeof(file_name), "/sys/class/tty/%s", dev); count = readlink(file_name, file_name, sizeof(file_name)); if (count <= 0 || count >= (int) sizeof(file_name)-1) - RETURN_ERROR(SP_ERR_ARG, "Device not found (%s)", port->name); + RETURN_ERROR(SP_ERR_ARG, "Device not found."); file_name[count] = 0; if (strstr(file_name, "bluetooth")) port->transport = SP_TRANSPORT_BLUETOOTH; @@ -160,11 +160,14 @@ SP_PRIV enum sp_return list_ports(struct sp_port ***list) { char name[PATH_MAX], target[PATH_MAX]; struct dirent entry, *result; +#ifdef HAVE_SERIAL_STRUCT struct serial_struct serial_info; + int ioctl_result; +#endif #ifndef HAVE_READLINKAT char buf[sizeof(entry.d_name) + 16]; #endif - int len, fd, ioctl_result; + int len, fd; DIR *dir; int ret = SP_OK; @@ -186,7 +189,7 @@ SP_PRIV enum sp_return list_ports(struct sp_port ***list) if (strstr(target, "virtual")) continue; snprintf(name, sizeof(name), "/dev/%s", entry.d_name); - DEBUG("Found device %s", name); + DEBUG_FMT("Found device %s", name); if (strstr(target, "serial8250")) { /* The serial8250 driver has a hardcoded number of ports. * The only way to tell which actually exist on a given system @@ -196,8 +199,11 @@ SP_PRIV enum sp_return list_ports(struct sp_port ***list) DEBUG("open failed, skipping"); continue; } +#ifdef HAVE_SERIAL_STRUCT ioctl_result = ioctl(fd, TIOCGSERIAL, &serial_info); +#endif close(fd); +#ifdef HAVE_SERIAL_STRUCT if (ioctl_result != 0) { DEBUG("ioctl failed, skipping"); continue; @@ -206,8 +212,9 @@ SP_PRIV enum sp_return list_ports(struct sp_port ***list) DEBUG("port type is unknown, skipping"); continue; } +#endif } - DEBUG("Found port %s", name); + DEBUG_FMT("Found port %s", name); *list = list_append(*list, name); if (!list) { SET_ERROR(ret, SP_ERR_MEM, "list append failed");