summaryrefslogtreecommitdiff
path: root/libtwn3.h
diff options
context:
space:
mode:
Diffstat (limited to 'libtwn3.h')
-rw-r--r--libtwn3.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/libtwn3.h b/libtwn3.h
new file mode 100644
index 0000000..63e9b93
--- /dev/null
+++ b/libtwn3.h
@@ -0,0 +1,25 @@
+#include <stdlib.h>
+#include <stdint.h>
+#include <inttypes.h>
+
+/* Open a device port */
+int twn3_open(char* device);
+
+/* Low-level command API */
+#define TX_FLAG_BINARY 1
+
+#define RX_FLAG_BINARY 1
+#define RX_FLAG_UNTIL_TIMEOUT 2
+
+ssize_t twn3_send_command(int fd, uint8_t flags, uint8_t* data, size_t len);
+ssize_t twn3_receive_response(int fd, uint8_t flags, uint8_t* response, size_t max_length);
+ssize_t twn3_sync_command(int fd, uint8_t flags, uint8_t* cmd, size_t cmd_len, uint8_t* response, size_t max_length);
+
+/* Synchronous API */
+/* These calls will return data directly, at the cost of blocking execution */
+int twn3_sync_read_version(int fd, uint8_t flags, char* version, size_t max_length);
+int twn3_sync_read_eeprom(int fd, uint8_t flags, uint8_t reg, uint8_t* data);
+int twn3_sync_write_eeprom(int fd, uint8_t flags, uint8_t reg, uint8_t data);
+int twn3_sync_storekey(int fd, uint8_t flags, uint8_t keyid, uint8_t key[6]);
+int twn3_sync_antenna(int fd, uint8_t flags, uint8_t enable);
+