diff --git a/libraries/AP_HAL_Linux/Util.cpp b/libraries/AP_HAL_Linux/Util.cpp index 6bf9b00e33..66d0291350 100644 --- a/libraries/AP_HAL_Linux/Util.cpp +++ b/libraries/AP_HAL_Linux/Util.cpp @@ -2,6 +2,7 @@ #if CONFIG_HAL_BOARD == HAL_BOARD_LINUX #include #include +#include #include #include #include @@ -62,4 +63,14 @@ void LinuxUtil::set_system_clock(uint64_t time_utc_usec) #endif } +bool LinuxUtil::is_chardev_node(const char *path) +{ + struct stat st; + + if (!path || lstat(path, &st) < 0) + return false; + + return S_ISCHR(st.st_mode); +} + #endif // CONFIG_HAL_BOARD == HAL_BOARD_LINUX diff --git a/libraries/AP_HAL_Linux/Util.h b/libraries/AP_HAL_Linux/Util.h index 83d6ecf311..2494192149 100644 --- a/libraries/AP_HAL_Linux/Util.h +++ b/libraries/AP_HAL_Linux/Util.h @@ -31,6 +31,8 @@ public: */ void set_system_clock(uint64_t time_utc_usec); + bool is_chardev_node(const char *path); + private: static Linux::ToneAlarm _toneAlarm; int saved_argc;