-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.def.h
92 lines (89 loc) · 6.07 KB
/
config.def.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include "stddef.h"
static char* RESCAN_CMD[] = {"/bin/find", "/sys/", "-name", "uevent", "-exec", "sh", "-c", "echo add > \"$1\"", "_", "{}", ";", NULL};
static char* LOGGER_CMD[] = {"/bin/logger", "-i", "-s", "-t", "ndev", NULL};
static const char* LOG_PATH = "/var/log/ndev.log";
typedef enum {
CREATE_DEV = 1,
REMOVE_DEV = 2,
} PathRule;
typedef struct {
const char* action;
char prefixes[4];
PathRule pathRule;
} ActionType;
static ActionType actionTypes[] = {
// from mdev
{"add", {'@', '*'}, CREATE_DEV},
{"remove", {'$', '*'}, REMOVE_DEV},
// New
{"change", {'#'}},
{"bind", {'!'}},
{"unbind", {'%'}},
};
static const struct Rule {
const char *envVar;
const char *devRegex;
const char *user;
const char *group;
int mode;
const char *path;
const char *cmd;
const int noEndOnMatch;
} rules[] = {
#ifdef ENV_DUMP
{ NULL, ".*", NULL , NULL , 0000, "!", "*echo $(env)", .noEndOnMatch=1},
{ NULL, ".*", NULL , NULL , 0000, "!", "#echo $(env)", .noEndOnMatch=1},
#endif
// load driver
{ "MODALIAS", ".+", NULL , NULL , 0000, "!", "@modprobe -v -b $MODALIAS", .noEndOnMatch=1},
{ "DEVTYPE", "partition", NULL , NULL , 0000, "!", "@blkid /dev/$DEVNAME | grep -q TYPE && modprobe -q \"$(blkid /dev/$DEVNAME)\"", .noEndOnMatch=1},
// libinput-zero uevent support
{ "SUBSYSTEM", "input", NULL , "input", 0660, NULL, "*libudev-zero-helper", .noEndOnMatch=1},
{ "SUBSYSTEM", "drm", NULL , "input", 0660, NULL, "*libudev-zero-helper", .noEndOnMatch=1},
// change ownership of specified led in /sys/class/leds
{ "SUBSYSTEM", "leds", NULL , NULL, 0000, "!", "@chmod g+w /sys/$DEVPATH/brightness /sys/$DEVPATH/trigger; chown :sys /sys/$DEVPATH/brightness /sys/$DEVPATH/trigger"},
{ "SUBSYSTEM", "backlight", NULL , NULL, 0000, "!", "@chmod g+w /sys/$DEVPATH/brightness; chown :sys /sys/$DEVPATH/brightness"},
// auto power on devices
{ "DEVNAME", ".*power", "root", "root", 0660, NULL, "@printf 1 > /sys/$DEVPATH/device/powered"},
// Standard permission changes and linking
{ "DEVNAME", "console", "root", "tty", 0600, NULL, NULL },
{ "DEVNAME", "dri/.*", "root", "video", 0660, NULL, NULL },
{ "DEVNAME", "fb[0-9]", "root", "input", 0660, NULL, NULL },
{ "DEVNAME", "full", "root", "root", 0666, NULL, NULL },
{ "DEVNAME", "fuse", "root", "root", 0666, NULL, NULL },
{ "DEVNAME", "hidraw[0-9]+", "root", "input", 0660, NULL, NULL },
{ "DEVNAME", "hwrandom", "root", "root", 0660, NULL, NULL },
{ "DEVNAME", "input/.*", "root", "input", 0660, NULL, "@remapkeys /dev/$DEVNAME" },
{ "DEVNAME", "kmem", "root", "root", 0640, NULL, NULL },
{ "DEVNAME", "media[0-9]", "root", "video", 0660, NULL, NULL },
{ "DEVNAME", "mem", "root", "root", 0640, NULL, NULL },
{ "DEVNAME", "midi.*", "root", "audio", 0660, "=snd/", NULL },
{ "DEVNAME", "mmcblk[0-9].*","root", "disk", 0660, NULL, NULL },
{ "DEVNAME", "null", "root", "root", 0666, NULL, NULL },
{ "DEVNAME", "nvme[0-9].*", "root", "disk", 0660, NULL, NULL },
{ "DEVNAME", "port", "root", "root", 0640, NULL, NULL },
{ "DEVNAME", "ptmx", "root", "tty", 0666, NULL, NULL },
{ "DEVNAME", "pty.*", "root", "tty", 0660, NULL, NULL },
{ "DEVNAME", "random", "root", "root", 0666, NULL, NULL },
{ "DEVNAME", "rfkill", "root", "sys", 0666, NULL, NULL },
{ "DEVNAME", "rtc0", "root", "sys", 0664, NULL, "@ln -sf $DEVNAME /dev/rtc" },
{ "DEVNAME", "rtc[0-9]*", "root", "sys", 0664, NULL, NULL },
{ "DEVNAME", "sd[a-z].*", "root", "disk", 0660, NULL, NULL },
{ "DEVNAME", "seq", "root", "audio", 0660, "=snd/", NULL },
{ "DEVNAME", "snd/.*", "root", "audio", 0660, NULL, NULL },
{ "DEVNAME", "sr[0-9]*", "root", "disk", 0660, NULL, "@ln -sf $DEVNAME /dev/cdrom" },
{ "DEVNAME", "timer", "root", "audio", 0660, "=snd/", NULL },
{ "DEVNAME", "ts[0-9]+", "root", "root", 0660, "=input/", NULL },
{ "DEVNAME", "tty", "root", "tty", 0666, NULL, NULL },
{ "DEVNAME", "tty.+", "root", "tty", 0660, NULL, NULL },
{ "DEVNAME", "tty[0-9]+", "root", "tty", 0660, NULL, NULL },
{ "DEVNAME", "uinput", "root", "input", 0660, NULL, NULL },
{ "DEVNAME", "urandom", "root", "root", 0444, NULL, NULL },
{ "DEVNAME", "vbi[0-9]", "root", "video", 0660, NULL, NULL },
{ "DEVNAME", "vcs[0-9]*", "root", "tty", 0660, NULL, NULL },
{ "DEVNAME", "vcsa*[0-9]*", "root", "tty", 0660, NULL, NULL },
{ "DEVNAME", "video[0-9]", "root", "video", 0660, NULL, NULL },
{ "DEVNAME", "zero", "root", "root", 0666, NULL, NULL },
// Everything else
{ "DEVNAME", ".*", "root", "root", 0660, NULL, NULL },
};