char *seq;
char *action;
char *env_path;
+ static const char keywords[] ALIGN1 = "remove\0add\0";
+ enum { OP_remove = 0, OP_add };
+ smalluint op;
/* Hotplug:
* env ACTION=... DEVPATH=... SUBSYSTEM=... [SEQNUM=...] mdev
if (!action || !env_path /*|| !subsystem*/)
bb_show_usage();
fw = getenv("FIRMWARE");
-
+ op = index_in_strings(keywords, action);
/* If it exists, does /dev/mdev.seq match $SEQNUM?
* If it does not match, earlier mdev is running
* in parallel, and we need to wait */
}
snprintf(temp, PATH_MAX, "/sys%s", env_path);
- if (strcmp(action, "remove") == 0) {
+ if (op == OP_remove) {
/* Ignoring "remove firmware". It was reported
* to happen and to cause erroneous deletion
* of device nodes. */
if (!fw)
make_device(temp, 1);
}
- else if (strcmp(action, "add") == 0) {
+ else if (op == OP_add) {
make_device(temp, 0);
if (ENABLE_FEATURE_MDEV_LOAD_FIRMWARE) {
if (fw)