summaryrefslogtreecommitdiff
path: root/src/serialport/qserialportinfo_mac.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/serialport/qserialportinfo_mac.cpp')
-rw-r--r--src/serialport/qserialportinfo_mac.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/serialport/qserialportinfo_mac.cpp b/src/serialport/qserialportinfo_mac.cpp
index 2c2564e..d540b15 100644
--- a/src/serialport/qserialportinfo_mac.cpp
+++ b/src/serialport/qserialportinfo_mac.cpp
@@ -43,6 +43,7 @@
#include "qserialportinfo.h"
#include "qserialportinfo_p.h"
+#include "qserialport_unix_p.h"
#include <sys/param.h>
@@ -290,4 +291,38 @@ QList<QSerialPortInfo> QSerialPortInfo::availablePorts()
return serialPortInfoList;
}
+QList<qint32> QSerialPortInfo::standardBaudRates()
+{
+ return QSerialPortPrivate::standardBaudRates();
+}
+
+bool QSerialPortInfo::isBusy() const
+{
+ QString lockFilePath = serialPortLockFilePath(portName());
+ if (lockFilePath.isEmpty())
+ return false;
+
+ QFile reader(lockFilePath);
+ if (!reader.open(QIODevice::ReadOnly))
+ return false;
+
+ QByteArray pidLine = reader.readLine();
+ pidLine.chop(1);
+ if (pidLine.isEmpty())
+ return false;
+
+ qint64 pid = pidLine.toLongLong();
+
+ if (pid && (::kill(pid, 0) == -1) && (errno == ESRCH))
+ return false; // PID doesn't exist anymore
+
+ return true;
+}
+
+bool QSerialPortInfo::isValid() const
+{
+ QFile f(systemLocation());
+ return f.exists();
+}
+
QT_END_NAMESPACE