Home | History | Annotate | Download | only in npf

Lines Matching defs:winfo

73 	npf_workerinfo_t *winfo;
81 winfo = kmem_zalloc(len, KM_SLEEP);
82 winfo->worker_count = nworkers;
83 mutex_init(&winfo->lock, MUTEX_DEFAULT, IPL_SOFTNET);
84 cv_init(&winfo->exit_cv, "npfgcx");
85 cv_init(&winfo->cv, "npfgcw");
86 LIST_INIT(&winfo->instances);
87 worker_info = winfo;
91 NULL, npf_worker, winfo, &winfo->worker[i], "npfgc%u", i)) {
102 npf_workerinfo_t *winfo = worker_info;
105 if (!winfo) {
110 mutex_enter(&winfo->lock);
111 winfo->exit = true;
112 cv_broadcast(&winfo->cv);
113 mutex_exit(&winfo->lock);
116 nworkers = winfo->worker_count;
120 if ((worker = winfo->worker[i]) != NULL) {
124 cv_destroy(&winfo->cv);
125 cv_destroy(&winfo->exit_cv);
126 mutex_destroy(&winfo->lock);
127 kmem_free(winfo, offsetof(npf_workerinfo_t, worker[nworkers]));
149 npf_workerinfo_t *winfo = worker_info;
154 KASSERT(winfo != NULL);
156 mutex_enter(&winfo->lock);
157 cv_signal(&winfo->cv);
158 mutex_exit(&winfo->lock);
167 npf_workerinfo_t *winfo = worker_info;
170 if (!winfo) {
174 mutex_enter(&winfo->lock);
175 LIST_INSERT_HEAD(&winfo->instances, npf, worker_entry);
177 mutex_exit(&winfo->lock);
188 npf_workerinfo_t *winfo = worker_info;
193 KASSERT(winfo != NULL);
198 mutex_enter(&winfo->lock);
201 cv_broadcast(&winfo->cv);
205 cv_wait(&winfo->exit_cv, &winfo->lock);
207 mutex_exit(&winfo->lock);
212 remove_npf_instance(npf_workerinfo_t *winfo, npf_t *npf)
214 KASSERT(mutex_owned(&winfo->lock));
229 cv_broadcast(&winfo->exit_cv);
233 process_npf_instance(npf_workerinfo_t *winfo, npf_t *npf)
237 KASSERT(mutex_owned(&winfo->lock));
240 remove_npf_instance(winfo, npf);
270 npf_workerinfo_t *winfo = arg;
273 mutex_enter(&winfo->lock);
281 npf = LIST_FIRST(&winfo->instances);
284 unsigned i_wait_time = process_npf_instance(winfo, npf);
292 if (winfo->exit) {
295 cv_timedwait(&winfo->cv, &winfo->lock, mstohz(wait_time));
297 mutex_exit(&winfo->lock);
299 KASSERTMSG(LIST_EMPTY(&winfo->instances),