summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndi Shyti <andi.shyti@samsung.com>2016-12-15 15:22:00 +0900
committerAndi Shyti <andi.shyti@samsung.com>2016-12-15 15:22:00 +0900
commit23701b28174a47ddf1d0eabd3c6d74640bae0e9f (patch)
tree00acd17dd277bac126e09ba57170f8c41fcf5ccd
initial commit
the repository contains ep.c, Makefile and .gitignore Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
-rw-r--r--.gitignore3
-rw-r--r--Makefile10
-rw-r--r--ep.c59
3 files changed, 72 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..368279e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+ep
+*.o
+*.swp
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..bf8ba12
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,10 @@
+TARGET = ep
+SRC = $(TARGET).c
+FLAGS = -g -Wall
+
+$(TARGET):
+ cc $(FLAGS) $(SRC) -o $(TARGET)
+
+.PHONY: clean
+clean:
+ rm -f $(TARGET)
diff --git a/ep.c b/ep.c
new file mode 100644
index 0000000..81546b9
--- /dev/null
+++ b/ep.c
@@ -0,0 +1,59 @@
+#include <dirent.h>
+#include <fcntl.h>
+#include <linux/input.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#define EP_INPUT_PATH "/dev/input/"
+#define EP_INPUT_NAME_SIZE 256
+
+static int ep_select(const struct dirent *ep)
+{
+ if(ep->d_type != DT_CHR)
+ return 0;
+
+ if(!strstr(ep->d_name, "event"))
+ return 0;
+
+ return 1;
+}
+
+int main(int argc, char *argv[])
+{
+ struct dirent **eps;
+ int i;
+ int n;
+ int ret = 0;
+
+ n = scandir(EP_INPUT_PATH, &eps, ep_select, alphasort);
+ if (!n) {
+ perror ("couldn't open the directory");
+ return -1;
+ }
+
+ for (i = 0; i < n; i++) {
+ char path[64];
+ int fd;
+ char dev_name[EP_INPUT_NAME_SIZE];
+
+ sprintf(path, EP_INPUT_PATH "%s", eps[i]->d_name);
+
+ fd = open(path, O_RDONLY);
+ if (fd < 0) {
+ perror("cannot open file");
+ return -1;
+ }
+
+ ret = ioctl(fd, EVIOCGNAME(EP_INPUT_NAME_SIZE), dev_name);
+ if (ret < 0) {
+ perror("unable to get the name");
+ } else {
+ printf("%s is %s\n", eps[i]->d_name, dev_name);
+ }
+
+ close(fd);
+ }
+
+ return 0;
+}