Introduction
Introduction Statistics Contact Development Disclaimer Help
Factor out devtomajmin() and devtype() - smdev - suckless mdev
git clone git://git.suckless.org/smdev
Log
Files
Refs
README
LICENSE
---
commit 4953771833f88278c3109e0b40d5746f9004fc9b
parent 733f60dba2b8c878945b856c23a6bc44de52fc11
Author: sin <[email protected]>
Date: Wed, 21 Aug 2013 09:13:20 +0100
Factor out devtomajmin() and devtype()
Diffstat:
M Makefile | 1 +
M smdev.c | 40 -----------------------------…
M util.h | 2 ++
A util/dev.c | 46 +++++++++++++++++++++++++++++…
4 files changed, 49 insertions(+), 40 deletions(-)
---
diff --git a/Makefile b/Makefile
@@ -6,6 +6,7 @@ include config.mk
LIB = \
util/agetcwd.o \
util/apathmax.o \
+ util/dev.o \
util/eprintf.o \
util/estrtol.o \
util/recurse.o
diff --git a/smdev.c b/smdev.c
@@ -14,8 +14,6 @@
#include "config.h"
#include "util.h"
-static int devtomajmin(const char *path, int *maj, int *min);
-static int devtype(const char *majmin);
static int create_dev(const char *path);
static void sysrecurse(const char *path);
@@ -46,44 +44,6 @@ main(int argc, char *argv[])
return 0;
}
-/* Example `path' is /sys/devices/virtual/tty/tty0/dev */
-static int
-devtomajmin(const char *path, int *maj, int *min)
-{
- char buf[BUFSIZ];
- int fd;
- ssize_t n;
-
- fd = open(path, O_RDONLY);
- if (fd < 0)
- eprintf("open %s:", path);
- n = read(fd, buf, sizeof(buf) - 1);
- close(fd);
- if (n < 0)
- eprintf("%s: read error:", path);
- if (!n)
- return -1;
- if (buf[n - 1] == '\n')
- buf[n - 1] = '\0';
- buf[n] = '\0';
- sscanf(buf, "%d:%d", maj, min);
- return 0;
-}
-
-static int
-devtype(const char *majmin)
-{
- char path[PATH_MAX];
-
- snprintf(path, sizeof(path), "/sys/dev/block/%s", majmin);
- if (!access(path, F_OK))
- return S_IFBLK;
- snprintf(path, sizeof(path), "/sys/dev/char/%s", majmin);
- if (!access(path, F_OK))
- return S_IFCHR;
- return -1;
-}
-
static int
create_dev(const char *path)
{
diff --git a/util.h b/util.h
@@ -7,6 +7,8 @@ extern char *argv0;
char *agetcwd(void);
void apathmax(char **, long *);
+int devtomajmin(const char *path, int *maj, int *min);
+int devtype(const char *majmin);
void enprintf(int, const char *, ...);
void eprintf(const char *, ...);
long estrtol(const char *, int);
diff --git a/util/dev.c b/util/dev.c
@@ -0,0 +1,46 @@
+/* See LICENSE file for copyright and license details. */
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <limits.h>
+#include <stdio.h>
+#include "../util.h"
+
+/* Example `path' is /sys/devices/virtual/tty/tty0/dev */
+int
+devtomajmin(const char *path, int *maj, int *min)
+{
+ char buf[BUFSIZ];
+ int fd;
+ ssize_t n;
+
+ fd = open(path, O_RDONLY);
+ if (fd < 0)
+ eprintf("open %s:", path);
+ n = read(fd, buf, sizeof(buf) - 1);
+ close(fd);
+ if (n < 0)
+ eprintf("%s: read error:", path);
+ if (!n)
+ return -1;
+ if (buf[n - 1] == '\n')
+ buf[n - 1] = '\0';
+ buf[n] = '\0';
+ sscanf(buf, "%d:%d", maj, min);
+ return 0;
+}
+
+/* `majmin' format is maj:min */
+int
+devtype(const char *majmin)
+{
+ char path[PATH_MAX];
+
+ snprintf(path, sizeof(path), "/sys/dev/block/%s", majmin);
+ if (!access(path, F_OK))
+ return S_IFBLK;
+ snprintf(path, sizeof(path), "/sys/dev/char/%s", majmin);
+ if (!access(path, F_OK))
+ return S_IFCHR;
+ return -1;
+}
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.