]> sigrok.org Git - libserialport.git/blobdiff - serialport.c
Add sp_copy_port() function.
[libserialport.git] / serialport.c
index c891006ea19a622bc27d1794f8207ea142bd5c75..f7e946b44d4f850dd22f2280ac718321b7cc3f78 100644 (file)
@@ -50,6 +50,9 @@ int sp_get_port_by_name(const char *portname, struct sp_port **port_ptr)
        struct sp_port *port;
        int len;
 
+       if (!port_ptr)
+               return SP_ERR_ARG;
+
        *port_ptr = NULL;
 
        if (!portname)
@@ -73,6 +76,19 @@ int sp_get_port_by_name(const char *portname, struct sp_port **port_ptr)
        return SP_OK;
 }
 
+int sp_copy_port(const struct sp_port *port, struct sp_port **copy_ptr)
+{
+       if (!copy_ptr)
+               return SP_ERR_ARG;
+
+       *copy_ptr = NULL;
+
+       if (!port || !port->name)
+               return SP_ERR_ARG;
+
+       return sp_get_port_by_name(port->name, copy_ptr);
+}
+
 void sp_free_port(struct sp_port *port)
 {
        if (!port)