aboutsummaryrefslogtreecommitdiffstats
path: root/hasplib.h
diff options
context:
space:
mode:
Diffstat (limited to 'hasplib.h')
-rw-r--r--hasplib.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/hasplib.h b/hasplib.h
new file mode 100644
index 0000000..e8662f1
--- /dev/null
+++ b/hasplib.h
@@ -0,0 +1,37 @@
+#ifndef HASPLIB_H
+#define HASPLIB_H
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+#include <stdint.h>
+#include <stdbool.h>
+#include <stddef.h>
+
+typedef struct _hasp_dongle hasp_dongle;
+
+size_t hasp_find_dongles(hasp_dongle ***dongles);
+void hasp_free_dongles(hasp_dongle **dongles);
+void hasp_free_dongle(hasp_dongle *dongle);
+
+hasp_dongle *hasp_find_login_first_dongle(uint16_t password1, uint16_t password2);
+
+bool hasp_init(hasp_dongle *dongle);
+bool hasp_login(hasp_dongle *dongle, uint16_t password1, uint16_t password2, uint16_t *memory_size);
+
+bool hasp_id(hasp_dongle *dongle, uint32_t *id);
+bool hasp_read(hasp_dongle *dongle, uint16_t location, uint16_t *value);
+bool hasp_write(hasp_dongle *dongle, uint16_t location, uint16_t value);
+
+typedef struct _hasp_simple hasp_simple;
+hasp_simple *hasp_simple_login(uint16_t password1, uint16_t password2);
+void hasp_simple_free(hasp_simple *simple);
+uint32_t hasp_simple_id(hasp_simple *simple);
+uint16_t hasp_simple_read(hasp_simple *simple, uint16_t location);
+bool hasp_simple_write(hasp_simple *simple, uint16_t location, uint16_t value);
+
+
+#if defined(__cplusplus)
+}
+#endif
+#endif