summaryrefslogtreecommitdiff
path: root/reader_linux.c
diff options
context:
space:
mode:
Diffstat (limited to 'reader_linux.c')
-rw-r--r--reader_linux.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/reader_linux.c b/reader_linux.c
new file mode 100644
index 0000000..588d5f0
--- /dev/null
+++ b/reader_linux.c
@@ -0,0 +1,41 @@
+#include <stdio.h>
+#include <sys/socket.h>
+#include <netlink/netlink.h>
+#include <netlink/genl/genl.h>
+#include <netlink/genl/ctrl.h>
+#include <linux/nfc.h>
+
+static struct nl_sock* nl_socket = NULL;
+static int genl_group = -1;
+
+int init(){
+ nl_socket = nl_socket_alloc();
+ if(!nl_socket || genl_connect(nl_socket)){
+ printf("Failed to connect to netlink\n");
+ return 1;
+ }
+
+ genl_group = genl_ctrl_resolve(nl_socket, NFC_GENL_NAME);
+ if(genl_group < 0){
+ printf("Failed to resolve NFC netlink control\n");
+ return 1;
+ }
+
+ //TODO
+
+ return 1;
+}
+
+int handle(int fd){
+ //TODO
+ return 1;
+}
+
+int scan(){
+ //TODO
+ return 1;
+}
+
+static void __attribute__((destructor)) cleanup(){
+ nl_socket_free(nl_socket);
+}