Lines Matching refs:ipss

54 	ipsec_stack_t *ipss = (ipsec_stack_t *)arg;  in ipsec_loader()  local
56 CALLB_CPR_INIT(&cprinfo, &ipss->ipsec_loader_lock, callb_generic_cpr, in ipsec_loader()
58 mutex_enter(&ipss->ipsec_loader_lock); in ipsec_loader()
64 while (ipss->ipsec_loader_sig == IPSEC_LOADER_WAIT) { in ipsec_loader()
66 cv_wait(&ipss->ipsec_loader_sig_cv, in ipsec_loader()
67 &ipss->ipsec_loader_lock); in ipsec_loader()
68 CALLB_CPR_SAFE_END(&cprinfo, &ipss->ipsec_loader_lock); in ipsec_loader()
72 if (ipss->ipsec_loader_sig == IPSEC_LOADER_EXITNOW) { in ipsec_loader()
77 ipss->ipsec_loader_state = IPSEC_LOADER_FAILED; in ipsec_loader()
78 ipss->ipsec_loader_sig = IPSEC_LOADER_WAIT; in ipsec_loader()
81 ASSERT(MUTEX_HELD(&ipss->ipsec_loader_lock)); in ipsec_loader()
83 ASSERT(MUTEX_NOT_HELD(&ipss->ipsec_loader_lock)); in ipsec_loader()
86 mutex_exit(&ipss->ipsec_loader_lock); in ipsec_loader()
102 } else if (keysock_plumb_ipsec(ipss->ipsec_netstack) != 0) { in ipsec_loader()
114 mutex_enter(&ipss->ipsec_loader_lock); in ipsec_loader()
116 if (ipss->ipsec_loader_sig == IPSEC_LOADER_LOADNOW) in ipsec_loader()
117 ipss->ipsec_loader_sig = IPSEC_LOADER_WAIT; in ipsec_loader()
118 ipss->ipsec_loader_state = IPSEC_LOADER_FAILED; in ipsec_loader()
120 ipss->ipsec_loader_state = IPSEC_LOADER_SUCCEEDED; in ipsec_loader()
122 mutex_exit(&ipss->ipsec_loader_lock); in ipsec_loader()
124 mutex_enter(&ipss->ipsec_loader_lock); in ipsec_loader()
127 ASSERT(MUTEX_NOT_HELD(&ipss->ipsec_loader_lock)); in ipsec_loader()
138 ipsec_loader_init(ipsec_stack_t *ipss) in ipsec_loader_init() argument
140 mutex_init(&ipss->ipsec_loader_lock, NULL, MUTEX_DEFAULT, NULL); in ipsec_loader_init()
141 cv_init(&ipss->ipsec_loader_sig_cv, NULL, CV_DEFAULT, NULL); in ipsec_loader_init()
148 ipsec_loader_destroy(ipsec_stack_t *ipss) in ipsec_loader_destroy() argument
152 mutex_enter(&ipss->ipsec_loader_lock); in ipsec_loader_destroy()
153 tid = ipss->ipsec_loader_tid; in ipsec_loader_destroy()
155 ipss->ipsec_loader_sig = IPSEC_LOADER_EXITNOW; in ipsec_loader_destroy()
156 cv_signal(&ipss->ipsec_loader_sig_cv); in ipsec_loader_destroy()
157 ipss->ipsec_loader_tid = 0; in ipsec_loader_destroy()
159 mutex_exit(&ipss->ipsec_loader_lock); in ipsec_loader_destroy()
168 mutex_destroy(&ipss->ipsec_loader_lock); in ipsec_loader_destroy()
169 cv_destroy(&ipss->ipsec_loader_sig_cv); in ipsec_loader_destroy()
173 ipsec_loader_start(ipsec_stack_t *ipss) in ipsec_loader_start() argument
177 mutex_enter(&ipss->ipsec_loader_lock); in ipsec_loader_start()
179 if (ipss->ipsec_loader_tid == 0) { in ipsec_loader_start()
180 tp = thread_create(NULL, 0, ipsec_loader, ipss, 0, &p0, in ipsec_loader_start()
182 ipss->ipsec_loader_tid = tp->t_did; in ipsec_loader_start()
185 mutex_exit(&ipss->ipsec_loader_lock); in ipsec_loader_start()
189 ipsec_loader_loadnow(ipsec_stack_t *ipss) in ipsec_loader_loadnow() argument
199 spdsock_update_pending_algs(ipss->ipsec_netstack); in ipsec_loader_loadnow()
201 mutex_enter(&ipss->ipsec_loader_lock); in ipsec_loader_loadnow()
202 if ((ipss->ipsec_loader_state == IPSEC_LOADER_WAIT) && in ipsec_loader_loadnow()
203 (ipss->ipsec_loader_sig == IPSEC_LOADER_WAIT)) { in ipsec_loader_loadnow()
204 ipss->ipsec_loader_sig = IPSEC_LOADER_LOADNOW; in ipsec_loader_loadnow()
205 cv_signal(&ipss->ipsec_loader_sig_cv); in ipsec_loader_loadnow()
207 mutex_exit(&ipss->ipsec_loader_lock); in ipsec_loader_loadnow()
228 ipsec_loader_wait(queue_t *q, ipsec_stack_t *ipss) in ipsec_loader_wait() argument
235 while (ipss->ipsec_loader_state == IPSEC_LOADER_WAIT) { in ipsec_loader_wait()
240 return (ipss->ipsec_loader_state == IPSEC_LOADER_SUCCEEDED); in ipsec_loader_wait()
247 ipsec_loaded(ipsec_stack_t *ipss) in ipsec_loaded() argument
249 return (ipss->ipsec_loader_state == IPSEC_LOADER_SUCCEEDED); in ipsec_loaded()
256 ipsec_failed(ipsec_stack_t *ipss) in ipsec_failed() argument
258 return (ipss->ipsec_loader_state == IPSEC_LOADER_FAILED); in ipsec_failed()