Lines Matching refs:state

31 	struct netlink_policy_dump_state *state = *statep;  in add_policy()  local
37 for (i = 0; i < state->n_alloc; i++) { in add_policy()
38 if (state->policies[i].policy == policy && in add_policy()
39 state->policies[i].maxtype == maxtype) in add_policy()
42 if (!state->policies[i].policy) { in add_policy()
43 state->policies[i].policy = policy; in add_policy()
44 state->policies[i].maxtype = maxtype; in add_policy()
49 n_alloc = state->n_alloc + INITIAL_POLICIES_ALLOC; in add_policy()
50 state = krealloc(state, struct_size(state, policies, n_alloc), in add_policy()
52 if (!state) in add_policy()
55 old_n_alloc = state->n_alloc; in add_policy()
56 state->n_alloc = n_alloc; in add_policy()
57 memset(&state->policies[old_n_alloc], 0, in add_policy()
58 flex_array_size(state, policies, n_alloc - old_n_alloc)); in add_policy()
60 state->policies[old_n_alloc].policy = policy; in add_policy()
61 state->policies[old_n_alloc].maxtype = maxtype; in add_policy()
62 *statep = state; in add_policy()
82 int netlink_policy_dump_get_policy_idx(struct netlink_policy_dump_state *state, in netlink_policy_dump_get_policy_idx() argument
91 for (i = 0; i < state->n_alloc; i++) { in netlink_policy_dump_get_policy_idx()
92 if (state->policies[i].policy == policy && in netlink_policy_dump_get_policy_idx()
93 state->policies[i].maxtype == maxtype) in netlink_policy_dump_get_policy_idx()
103 struct netlink_policy_dump_state *state; in alloc_state() local
105 state = kzalloc(struct_size(state, policies, INITIAL_POLICIES_ALLOC), in alloc_state()
107 if (!state) in alloc_state()
109 state->n_alloc = INITIAL_POLICIES_ALLOC; in alloc_state()
111 return state; in alloc_state()
131 struct netlink_policy_dump_state *state = *pstate; in netlink_policy_dump_add_policy() local
135 if (!state) { in netlink_policy_dump_add_policy()
136 state = alloc_state(); in netlink_policy_dump_add_policy()
137 if (IS_ERR(state)) in netlink_policy_dump_add_policy()
138 return PTR_ERR(state); in netlink_policy_dump_add_policy()
146 err = add_policy(&state, policy, maxtype); in netlink_policy_dump_add_policy()
151 policy_idx < state->n_alloc && state->policies[policy_idx].policy; in netlink_policy_dump_add_policy()
156 policy = state->policies[policy_idx].policy; in netlink_policy_dump_add_policy()
159 type <= state->policies[policy_idx].maxtype; in netlink_policy_dump_add_policy()
164 err = add_policy(&state, in netlink_policy_dump_add_policy()
176 *pstate = state; in netlink_policy_dump_add_policy()
184 netlink_policy_dump_free(state); in netlink_policy_dump_add_policy()
186 *pstate = state; in netlink_policy_dump_add_policy()
191 netlink_policy_dump_finished(struct netlink_policy_dump_state *state) in netlink_policy_dump_finished() argument
193 return state->policy_idx >= state->n_alloc || in netlink_policy_dump_finished()
194 !state->policies[state->policy_idx].policy; in netlink_policy_dump_finished()
205 bool netlink_policy_dump_loop(struct netlink_policy_dump_state *state) in netlink_policy_dump_loop() argument
207 return !netlink_policy_dump_finished(state); in netlink_policy_dump_loop()
254 __netlink_policy_dump_write_attr(struct netlink_policy_dump_state *state, in __netlink_policy_dump_write_attr() argument
280 if (state && pt->nested_policy && pt->len && in __netlink_policy_dump_write_attr()
282 netlink_policy_dump_get_policy_idx(state, in __netlink_policy_dump_write_attr()
436 struct netlink_policy_dump_state *state) in netlink_policy_dump_write() argument
446 pt = &state->policies[state->policy_idx].policy[state->attr_idx]; in netlink_policy_dump_write()
448 policy = nla_nest_start(skb, state->policy_idx); in netlink_policy_dump_write()
452 err = __netlink_policy_dump_write_attr(state, skb, pt, state->attr_idx); in netlink_policy_dump_write()
465 state->attr_idx += 1; in netlink_policy_dump_write()
466 if (state->attr_idx > state->policies[state->policy_idx].maxtype) { in netlink_policy_dump_write()
467 state->attr_idx = 0; in netlink_policy_dump_write()
468 state->policy_idx++; in netlink_policy_dump_write()
472 if (netlink_policy_dump_finished(state)) in netlink_policy_dump_write()
490 void netlink_policy_dump_free(struct netlink_policy_dump_state *state) in netlink_policy_dump_free() argument
492 kfree(state); in netlink_policy_dump_free()