+ if (*arg >= '0' && *arg <= '9') {
+ int64_t val;
+ ret = dss_atoi64(arg, &val);
+ if (ret < 0)
+ return ret;
+ if (val < 0 || val > SIGRTMAX)
+ return -ERRNO_TO_DSS_ERROR(EINVAL);
+ return send_signal(val, w_given);
+ }
+ if (strncasecmp(arg, "sig", 3) == 0)
+ arg += 3;
+ if (strcasecmp(arg, "CLD") == 0)
+ return send_signal(SIGCHLD, w_given);
+ if (strcasecmp(arg, "IOT") == 0)
+ return send_signal(SIGABRT, w_given);
+ for (i = 0; i < SIGNAL_TABLE_SIZE; i++)
+ if (strcasecmp(arg, signal_table[i].name) == 0)
+ return send_signal(signal_table[i].num, w_given);
+ DSS_ERROR_LOG(("invalid sigspec: %s\n", arg));
+ return -ERRNO_TO_DSS_ERROR(EINVAL);