diff options
author | Andi Shyti <andi.shyti@samsung.com> | 2016-12-15 15:22:00 +0900 |
---|---|---|
committer | Andi Shyti <andi.shyti@samsung.com> | 2016-12-15 15:22:00 +0900 |
commit | 23701b28174a47ddf1d0eabd3c6d74640bae0e9f (patch) | |
tree | 00acd17dd277bac126e09ba57170f8c41fcf5ccd |
initial commit
the repository contains ep.c, Makefile and .gitignore
Signed-off-by: Andi Shyti <andi.shyti@samsung.com>
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | Makefile | 10 | ||||
-rw-r--r-- | ep.c | 59 |
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) @@ -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; +} |