void prepare_data( RTC_Clock clock) { power_screen(true); display_clear(); show_picture(15, 30, IMAGE_LOGO); // get_up_config(); get_down_config(); // get_gen_config(); get_relation(); get_base(); get_act(); get_step(); get_position(); get_event(); }
int parse_gact(struct action_util *a, int *argc_p, char ***argv_p, int tca_id, struct nlmsghdr *n) { int argc = *argc_p; char **argv = *argv_p; int ok = 0; int action = TC_POLICE_RECLASSIFY; struct tc_gact p; #ifdef CONFIG_GACT_PROB int rd = 0; struct tc_gact_p pp; #endif struct rtattr *tail; memset(&p, 0, sizeof (p)); p.action = TC_POLICE_RECLASSIFY; if (argc < 0) return -1; if (matches(*argv, "gact") == 0) { ok++; } else { action = get_act(&argv); if (action != -10) { p.action = action; ok++; } else { explain(); return action; } } if (ok) { argc--; argv++; } #ifdef CONFIG_GACT_PROB if (ok && argc > 0) { if (matches(*argv, "random") == 0) { rd = 1; NEXT_ARG(); if (matches(*argv, "netrand") == 0) { NEXT_ARG(); pp.ptype = PGACT_NETRAND; } else if (matches(*argv, "determ") == 0) { NEXT_ARG(); pp.ptype = PGACT_DETERM; } else { fprintf(stderr, "Illegal \"random type\"\n"); return -1; } action = get_act(&argv); if (action != -10) { /* FIXME */ pp.paction = action; } else { explain(); return -1; } argc--; argv++; if (get_u16(&pp.pval, *argv, 10)) { fprintf(stderr, "Illegal probability val 0x%x\n",pp.pval); return -1; } if (pp.pval > 10000) { fprintf(stderr, "Illegal probability val 0x%x\n",pp.pval); return -1; } argc--; argv++; } } #endif if (argc > 0) { if (matches(*argv, "index") == 0) { NEXT_ARG(); if (get_u32(&p.index, *argv, 10)) { fprintf(stderr, "Illegal \"index\"\n"); return -1; } argc--; argv++; ok++; } } if (!ok) return -1; tail = NLMSG_TAIL(n); addattr_l(n, MAX_MSG, tca_id, NULL, 0); addattr_l(n, MAX_MSG, TCA_GACT_PARMS, &p, sizeof (p)); #ifdef CONFIG_GACT_PROB if (rd) { addattr_l(n, MAX_MSG, TCA_GACT_PROB, &pp, sizeof (pp)); } #endif tail->rta_len = (void *) NLMSG_TAIL(n) - (void *) tail; *argc_p = argc; *argv_p = argv; return 0; }