MCPcopy Create free account
hub / github.com/F-Stack/f-stack / bpf_jitter

Function bpf_jitter

freebsd/net/bpf_jitter.c:67–99  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

65#endif
66
67bpf_jit_filter *
68bpf_jitter(struct bpf_insn *fp, int nins)
69{
70 bpf_jit_filter *filter;
71
72 /* Allocate the filter structure. */
73#ifdef _KERNEL
74 filter = (struct bpf_jit_filter *)malloc(sizeof(*filter),
75 M_BPFJIT, M_NOWAIT);
76#else
77 filter = (struct bpf_jit_filter *)malloc(sizeof(*filter));
78#endif
79 if (filter == NULL)
80 return (NULL);
81
82 /* No filter means accept all. */
83 if (fp == NULL || nins == 0) {
84 filter->func = bpf_jit_accept_all;
85 return (filter);
86 }
87
88 /* Create the binary. */
89 if ((filter->func = bpf_jit_compile(fp, nins, &filter->size)) == NULL) {
90#ifdef _KERNEL
91 free(filter, M_BPFJIT);
92#else
93 free(filter);
94#endif
95 return (NULL);
96 }
97
98 return (filter);
99}
100
101void
102bpf_destroy_jit_filter(bpf_jit_filter *filter)

Callers 2

bpf_setfFunction · 0.85
ng_bpf_setprogFunction · 0.85

Calls 3

mallocFunction · 0.85
bpf_jit_compileFunction · 0.50
freeFunction · 0.50

Tested by

no test coverage detected