Lines Matching refs:state
47 static void *parse_service(struct parse_state *state, int nargs, char **args);
48 static void parse_line_service(struct parse_state *state, int nargs, char **args);
50 static void *parse_action(struct parse_state *state, int nargs, char **args);
51 static void parse_line_action(struct parse_state *state, int nargs, char **args);
334 static void parse_import(struct parse_state *state, int nargs, char **args) in parse_import() argument
336 struct listnode *import_list = (listnode*) state->priv; in parse_import()
348 state->line, state->filename); in parse_import()
358 static void parse_new_section(struct parse_state *state, int kw, in parse_new_section() argument
365 state->context = parse_service(state, nargs, args); in parse_new_section()
366 if (state->context) { in parse_new_section()
367 state->parse_line = parse_line_service; in parse_new_section()
372 state->context = parse_action(state, nargs, args); in parse_new_section()
373 if (state->context) { in parse_new_section()
374 state->parse_line = parse_line_action; in parse_new_section()
379 parse_import(state, nargs, args); in parse_new_section()
382 state->parse_line = parse_line_no_op; in parse_new_section()
393 parse_state state; in parse_config() local
394 state.filename = fn; in parse_config()
395 state.line = 0; in parse_config()
396 state.ptr = strdup(data.c_str()); // TODO: fix this code! in parse_config()
397 state.nexttoken = 0; in parse_config()
398 state.parse_line = parse_line_no_op; in parse_config()
401 state.priv = &import_list; in parse_config()
404 switch (next_token(&state)) { in parse_config()
406 state.parse_line(&state, 0, 0); in parse_config()
409 state.line++; in parse_config()
413 state.parse_line(&state, 0, 0); in parse_config()
414 parse_new_section(&state, kw, nargs, args); in parse_config()
416 state.parse_line(&state, nargs, args); in parse_config()
423 args[nargs++] = state.text; in parse_config()
728 static void *parse_service(struct parse_state *state, int nargs, char **args) in parse_service() argument
731 parse_error(state, "services must have a name and a program\n"); in parse_service()
735 parse_error(state, "invalid service name '%s'\n", args[1]); in parse_service()
741 parse_error(state, "ignored duplicate definition of service '%s'\n", args[1]); in parse_service()
748 parse_error(state, "out of memory\n"); in parse_service()
765 static void parse_line_service(struct parse_state *state, int nargs, char **args) in parse_line_service() argument
767 struct service *svc = (service*) state->context; in parse_line_service()
781 parse_error(state, "class option requires a classname\n"); in parse_line_service()
795 parse_error(state, "ioprio optin usage: ioprio <rt|be|idle> <ioprio 0-7>\n"); in parse_line_service()
800 parse_error(state, "priority value must be range 0 - 7\n"); in parse_line_service()
811 parse_error(state, "ioprio option usage: ioprio <rt|be|idle> <0-7>\n"); in parse_line_service()
817 parse_error(state, "group option requires a group id\n"); in parse_line_service()
819 parse_error(state, "group option accepts at most %d supp. groups\n", in parse_line_service()
832 parse_error(state, "keycodes option requires atleast one keycode\n"); in parse_line_service()
836 parse_error(state, "could not allocate keycodes\n"); in parse_line_service()
853 parse_error(state, "invalid command '%s'\n", args[0]); in parse_line_service()
858 parse_error(state, "%s requires %d %s\n", args[0], kw_nargs - 1, in parse_line_service()
874 parse_error(state, "setenv option requires name and value arguments\n"); in parse_line_service()
879 parse_error(state, "out of memory\n"); in parse_line_service()
890 parse_error(state, "socket option requires name, type, perm arguments\n"); in parse_line_service()
895 parse_error(state, "socket type must be 'dgram', 'stream' or 'seqpacket'\n"); in parse_line_service()
900 parse_error(state, "out of memory\n"); in parse_line_service()
918 parse_error(state, "user option requires a user id\n"); in parse_line_service()
925 parse_error(state, "seclabel option requires a label string\n"); in parse_line_service()
932 parse_error(state, "writepid option requires at least one filename\n"); in parse_line_service()
942 parse_error(state, "invalid option '%s'\n", args[0]); in parse_line_service()
946 static void *parse_action(struct parse_state *state, int nargs, char **args) in parse_action() argument
951 parse_error(state, "actions must have a trigger\n"); in parse_action()
963 parse_error(state, "& is the only symbol allowed to concatenate actions\n"); in parse_action()
985 static void parse_line_action(struct parse_state* state, int nargs, char **args) in parse_line_action() argument
987 struct action *act = (action*) state->context; in parse_line_action()
996 parse_error(state, "invalid command '%s'\n", args[0]); in parse_line_action()
1002 parse_error(state, "%s requires %d %s\n", args[0], n - 1, in parse_line_action()
1008 cmd->line = state->line; in parse_line_action()
1009 cmd->filename = state->filename; in parse_line_action()