Lines Matching refs:entry

108 static int bpf_mprog_replace(struct bpf_mprog_entry *entry,  in bpf_mprog_replace()  argument
116 bpf_mprog_read(entry, idx, &fp, &cp); in bpf_mprog_replace()
123 *entry_new = entry; in bpf_mprog_replace()
127 static int bpf_mprog_insert(struct bpf_mprog_entry *entry, in bpf_mprog_insert() argument
131 int total = bpf_mprog_total(entry); in bpf_mprog_insert()
136 peer = bpf_mprog_peer(entry); in bpf_mprog_insert()
137 bpf_mprog_entry_copy(peer, entry); in bpf_mprog_insert()
151 static int bpf_mprog_delete(struct bpf_mprog_entry *entry, in bpf_mprog_delete() argument
155 int total = bpf_mprog_total(entry); in bpf_mprog_delete()
158 peer = bpf_mprog_peer(entry); in bpf_mprog_delete()
159 bpf_mprog_entry_copy(peer, entry); in bpf_mprog_delete()
178 static int bpf_mprog_pos_exact(struct bpf_mprog_entry *entry, in bpf_mprog_pos_exact() argument
185 for (i = 0; i < bpf_mprog_total(entry); i++) { in bpf_mprog_pos_exact()
186 bpf_mprog_read(entry, i, &fp, &cp); in bpf_mprog_pos_exact()
193 static int bpf_mprog_pos_before(struct bpf_mprog_entry *entry, in bpf_mprog_pos_before() argument
200 for (i = 0; i < bpf_mprog_total(entry); i++) { in bpf_mprog_pos_before()
201 bpf_mprog_read(entry, i, &fp, &cp); in bpf_mprog_pos_before()
209 static int bpf_mprog_pos_after(struct bpf_mprog_entry *entry, in bpf_mprog_pos_after() argument
216 for (i = 0; i < bpf_mprog_total(entry); i++) { in bpf_mprog_pos_after()
217 bpf_mprog_read(entry, i, &fp, &cp); in bpf_mprog_pos_after()
222 return tuple->prog ? -ENOENT : bpf_mprog_total(entry); in bpf_mprog_pos_after()
225 int bpf_mprog_attach(struct bpf_mprog_entry *entry, in bpf_mprog_attach() argument
240 if (revision && revision != bpf_mprog_revision(entry)) in bpf_mprog_attach()
242 if (bpf_mprog_exists(entry, prog_new)) in bpf_mprog_attach()
250 tidx = bpf_mprog_pos_exact(entry, &otuple); in bpf_mprog_attach()
256 } else if (bpf_mprog_total(entry) == bpf_mprog_max()) { in bpf_mprog_attach()
261 tidx = bpf_mprog_pos_before(entry, &rtuple); in bpf_mprog_attach()
269 tidx = bpf_mprog_pos_after(entry, &rtuple); in bpf_mprog_attach()
281 idx = bpf_mprog_total(entry); in bpf_mprog_attach()
289 ret = bpf_mprog_replace(entry, entry_new, &ntuple, idx); in bpf_mprog_attach()
291 ret = bpf_mprog_insert(entry, entry_new, &ntuple, idx, flags); in bpf_mprog_attach()
297 static int bpf_mprog_fetch(struct bpf_mprog_entry *entry, in bpf_mprog_fetch() argument
300 int total = bpf_mprog_total(entry); in bpf_mprog_fetch()
310 bpf_mprog_read(entry, idx, &fp, &cp); in bpf_mprog_fetch()
328 int bpf_mprog_detach(struct bpf_mprog_entry *entry, in bpf_mprog_detach() argument
341 if (revision && revision != bpf_mprog_revision(entry)) in bpf_mprog_detach()
343 if (!bpf_mprog_total(entry)) in bpf_mprog_detach()
351 tidx = bpf_mprog_pos_exact(entry, &dtuple); in bpf_mprog_detach()
359 tidx = bpf_mprog_pos_before(entry, &rtuple); in bpf_mprog_detach()
367 tidx = bpf_mprog_pos_after(entry, &rtuple); in bpf_mprog_detach()
379 idx = bpf_mprog_total(entry); in bpf_mprog_detach()
386 ret = bpf_mprog_fetch(entry, &dtuple, idx); in bpf_mprog_detach()
389 ret = bpf_mprog_delete(entry, entry_new, &dtuple, idx); in bpf_mprog_detach()
396 struct bpf_mprog_entry *entry) in bpf_mprog_query() argument
410 if (entry) { in bpf_mprog_query()
411 revision = bpf_mprog_revision(entry); in bpf_mprog_query()
412 count = bpf_mprog_total(entry); in bpf_mprog_query()
431 bpf_mprog_read(entry, i, &fp, &cp); in bpf_mprog_query()