+ return SP_OK;
+}
+
+#define TRY(x) do { int ret = x; if (ret != SP_OK) return ret; } while (0)
+
+int sp_set_params(struct sp_port *port, int baudrate, int bits, int parity,
+ int stopbits, int flowcontrol, int rts, int dtr)
+{
+ struct sp_port_data data;
+
+ TRY(start_config(port, &data));
+ TRY(set_baudrate(&data, baudrate));
+ TRY(set_bits(&data, bits));
+ TRY(set_parity(&data, parity));
+ TRY(set_stopbits(&data, stopbits));
+ TRY(set_flowcontrol(&data, flowcontrol));
+ TRY(set_rts(&data, rts));
+ TRY(set_dtr(&data, dtr));
+ TRY(apply_config(port, &data));