p_str
act_version(str *p_str, led_dtls_t *dtls)
dtls->ver_maj = strtoul(*p_str, p_str, 0);
if (*(*p_str)++ != '.') {
dtls->ver_min = strtoul(*p_str, p_str, 0);
if ((**p_str != '\0') && !isspace(**p_str)) {
get_cstr(str *p_str, cstr *p_cstr_res)
while (isspace(**p_str))
(*p_str)++;
ptr = *p_str;
len = ptr - *p_str;
(void) memcpy(ptr, *p_str, len);
(*p_str) += len;
act_leds_board(str *p_str, led_dtls_t *dtls)
int res = get_cstr(p_str, &dtls->fcal_leds);
act_status_board(str *p_str, led_dtls_t *dtls)
int res = get_cstr(p_str, &dtls->fcal_status);
act_disk_driver(str *p_str, led_dtls_t *dtls)
return (get_cstr(p_str, &dtls->fcal_driver));
act_disk_parent(str *p_str, led_dtls_t *dtls)
return (get_cstr(p_str, &dtls->fcal_disk_parent));
act_unit_parent(str *p_str, led_dtls_t *dtls)
return (get_cstr(p_str, &dtls->disk_unit_parent));
act_led_nodes(str *p_str, led_dtls_t *dtls)
return (get_cstr(p_str, &dtls->disk_led_nodes));
act_n_disks(str *p_str, led_dtls_t *dtls)
dtls->n_disks = strtoul(*p_str, p_str, 0);
if ((**p_str != '\0') && !isspace(**p_str)) {
get_assert(str *p_str, int *assert)
int i = strtoul(*p_str, p_str, 0);
if ((**p_str != '\0') && !isspace(**p_str)) {
get_pnz(str *p_str, int *pnz)
int i = strtoul(*p_str, p_str, 0);
if ((**p_str != '\0') && !isspace(**p_str)) {
act_asrt_pres(str *p_str, led_dtls_t *dtls)
return (get_assert(p_str, &dtls->assert_presence));
act_asrt_fault(str *p_str, led_dtls_t *dtls)
return (get_assert(p_str, &dtls->assert_fault));
act_led_on(str *p_str, led_dtls_t *dtls)
return (get_assert(p_str, &dtls->assert_led_on));
get_mask(str *p_str, int n_disks, int *p_intarray)
int j = strtoul(*p_str, p_str, 0);
if (*(*p_str)++ != ',') {
i = strtoul(*p_str, p_str, 0);
if ((**p_str != '\0') && !isspace(**p_str)) {
act_disk_present(str *p_str, led_dtls_t *dtls)
static int get_cstr(str *p_str, cstr *p_cstr_res);
return (get_mask(p_str, dtls->n_disks, dtls->presence));
act_disk_fault(str *p_str, led_dtls_t *dtls)
return (get_mask(p_str, dtls->n_disks, dtls->faults));
static int get_assert(str *p_str, int *assert);
act_led_id(str *p_str, led_dtls_t *dtls)
int j = strtoul(*p_str, p_str, 0);
if (*(*p_str)++ != ',') {
static int get_pnz(str *p_str, int *pnz);
tok = get_token(p_str, 0, &action);
static int get_mask(str *p_str, int n_disks, int *p_intarray);
if (*(*p_str)++ != ',') {
i = strtoul(*p_str, p_str, 0);
if ((**p_str != '\0') && !isspace(**p_str)) {
act_slow_poll(str *p_str, led_dtls_t *dtls)
return (get_pnz(p_str, &dtls->slow_poll_ticks));
act_fast_poll(str *p_str, led_dtls_t *dtls)
return (get_pnz(p_str, &dtls->fast_poll));
act_relax_interval(str *p_str, led_dtls_t *dtls)
return (get_pnz(p_str, &dtls->relax_time_ticks));
act_test_interval(str *p_str, led_dtls_t *dtls)
return (get_pnz(p_str, &dtls->led_test_time));
static int act_version(str *p_str, led_dtls_t *dtls);
static int act_leds_board(str *p_str, led_dtls_t *dtls);
static int act_status_board(str *p_str, led_dtls_t *dtls);
static int act_disk_driver(str *p_str, led_dtls_t *dtls);
static int act_n_disks(str *p_str, led_dtls_t *dtls);
static int act_asrt_pres(str *p_str, led_dtls_t *dtls);
static int act_asrt_fault(str *p_str, led_dtls_t *dtls);
static int act_led_on(str *p_str, led_dtls_t *dtls);
static int act_disk_present(str *p_str, led_dtls_t *dtls);
static int act_disk_fault(str *p_str, led_dtls_t *dtls);
static int act_led_id(str *p_str, led_dtls_t *dtls);
static int act_slow_poll(str *p_str, led_dtls_t *dtls);
static int act_fast_poll(str *p_str, led_dtls_t *dtls);
static int act_relax_interval(str *p_str, led_dtls_t *dtls);
static int act_test_interval(str *p_str, led_dtls_t *dtls);
static int act_disk_parent(str *p_str, led_dtls_t *dtls);
static int act_unit_parent(str *p_str, led_dtls_t *dtls);
static int act_led_nodes(str *p_str, led_dtls_t *dtls);
typedef int (*actfun_t)(str *p_str, led_dtls_t *dtls);
static void p_str(struct parse *p);
p_str(p);