Lines Matching defs:ipss

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