Lines Matching refs:job
584 job_request_t *job = (job_request_t *)buf; in fctl_cache_constructor() local
586 mutex_init(&job->job_mutex, NULL, MUTEX_DRIVER, NULL); in fctl_cache_constructor()
587 sema_init(&job->job_fctl_sema, 0, NULL, SEMA_DEFAULT, NULL); in fctl_cache_constructor()
588 sema_init(&job->job_port_sema, 0, NULL, SEMA_DEFAULT, NULL); in fctl_cache_constructor()
598 job_request_t *job = (job_request_t *)buf; in fctl_cache_destructor() local
600 sema_destroy(&job->job_fctl_sema); in fctl_cache_destructor()
601 sema_destroy(&job->job_port_sema); in fctl_cache_destructor()
602 mutex_destroy(&job->job_mutex); in fctl_cache_destructor()
626 job_request_t *job; in fc_ulp_add() local
719 job = fctl_alloc_job(JOB_ATTACH_ULP, JOB_TYPE_FCTL_ASYNC, in fc_ulp_add()
722 fctl_enque_job(fca_port->port_handle, job); in fc_ulp_add()
940 job_request_t *job; in fc_ulp_getportmap() local
999 job = fctl_alloc_job(job_code, 0, NULL, NULL, KM_SLEEP); in fc_ulp_getportmap()
1000 job->job_private = (opaque_t)map; in fc_ulp_getportmap()
1001 job->job_arg = (opaque_t)len; in fc_ulp_getportmap()
1002 fctl_enque_job(port, job); in fc_ulp_getportmap()
1004 fctl_jobwait(job); in fc_ulp_getportmap()
1012 fctl_dealloc_job(job); in fc_ulp_getportmap()
1046 job_request_t *job; in fc_ulp_login() local
1107 job = fctl_alloc_job(JOB_PLOGI_GROUP, job_flags, NULL, NULL, KM_SLEEP); in fc_ulp_login()
1108 job->job_ulp_pkts = tmp_array; in fc_ulp_login()
1109 job->job_ulp_listlen = listlen; in fc_ulp_login()
1143 fctl_enque_job(port, job); in fc_ulp_login()
1146 fctl_jobwait(job); in fc_ulp_login()
1147 rval = job->job_result; in fc_ulp_login()
1148 fctl_dealloc_job(job); in fc_ulp_login()
1160 job_request_t *job; in fc_ulp_get_remote_port() local
1184 job = fctl_alloc_job(JOB_NS_CMD, 0, NULL, NULL, KM_SLEEP); in fc_ulp_get_remote_port()
1186 if (job == NULL) { in fc_ulp_get_remote_port()
1196 fctl_dealloc_job(job); in fc_ulp_get_remote_port()
1203 job->job_result = FC_SUCCESS; in fc_ulp_get_remote_port()
1204 job->job_private = (void *)ns_cmd; in fc_ulp_get_remote_port()
1205 job->job_counter = 1; in fc_ulp_get_remote_port()
1206 fctl_enque_job(port, job); in fc_ulp_get_remote_port()
1207 fctl_jobwait(job); in fc_ulp_get_remote_port()
1209 if (job->job_result != FC_SUCCESS) { in fc_ulp_get_remote_port()
1210 *error = job->job_result; in fc_ulp_get_remote_port()
1212 fctl_dealloc_job(job); in fc_ulp_get_remote_port()
1229 job->job_result = FC_SUCCESS; in fc_ulp_get_remote_port()
1230 job->job_private = (void *)ns_cmd; in fc_ulp_get_remote_port()
1231 job->job_counter = 1; in fc_ulp_get_remote_port()
1232 fctl_enque_job(port, job); in fc_ulp_get_remote_port()
1233 fctl_jobwait(job); in fc_ulp_get_remote_port()
1236 if (job->job_result != FC_SUCCESS) { in fc_ulp_get_remote_port()
1237 *error = job->job_result; in fc_ulp_get_remote_port()
1238 fctl_dealloc_job(job); in fc_ulp_get_remote_port()
1241 fctl_dealloc_job(job); in fc_ulp_get_remote_port()
1280 job_request_t *job; in fc_ulp_port_ns() local
1330 job = fctl_alloc_job(JOB_NS_CMD, 0, NULL, NULL, KM_SLEEP); in fc_ulp_port_ns()
1331 ASSERT(job != NULL); in fc_ulp_port_ns()
1340 job->job_private = (void *)ns_cmd; in fc_ulp_port_ns()
1341 fctl_enque_job(port, job); in fc_ulp_port_ns()
1342 fctl_jobwait(job); in fc_ulp_port_ns()
1343 rval = job->job_result; in fc_ulp_port_ns()
1353 fctl_dealloc_job(job); in fc_ulp_port_ns()
1601 job_request_t *job; in fc_ulp_linkreset() local
1634 job = fctl_alloc_job(JOB_LINK_RESET, 0, NULL, NULL, sleep); in fc_ulp_linkreset()
1635 ASSERT(job != NULL); in fc_ulp_linkreset()
1637 job->job_private = (void *)pwwn; in fc_ulp_linkreset()
1638 job->job_counter = 1; in fc_ulp_linkreset()
1639 fctl_enque_job(port, job); in fc_ulp_linkreset()
1640 fctl_jobwait(job); in fc_ulp_linkreset()
1648 rval = job->job_result; in fc_ulp_linkreset()
1649 fctl_dealloc_job(job); in fc_ulp_linkreset()
1651 job = fctl_alloc_job(JOB_LINK_RESET, JOB_TYPE_FCTL_ASYNC, in fc_ulp_linkreset()
1653 if (job == NULL) { in fc_ulp_linkreset()
1660 job->job_private = (void *)pwwn; in fc_ulp_linkreset()
1661 job->job_counter = 1; in fc_ulp_linkreset()
1662 fctl_priority_enque_job(port, job); in fc_ulp_linkreset()
4298 job_request_t *job; in fctl_alloc_job() local
4300 job = (job_request_t *)kmem_cache_alloc(fctl_job_cache, sleep); in fctl_alloc_job()
4301 if (job != NULL) { in fctl_alloc_job()
4302 job->job_result = FC_SUCCESS; in fctl_alloc_job()
4303 job->job_code = job_code; in fctl_alloc_job()
4304 job->job_flags = job_flags; in fctl_alloc_job()
4305 job->job_cb_arg = arg; in fctl_alloc_job()
4306 job->job_comp = comp; in fctl_alloc_job()
4307 job->job_private = NULL; in fctl_alloc_job()
4308 job->job_ulp_pkts = NULL; in fctl_alloc_job()
4309 job->job_ulp_listlen = 0; in fctl_alloc_job()
4311 job->job_counter = 0; in fctl_alloc_job()
4312 job->job_next = NULL; in fctl_alloc_job()
4316 return (job); in fctl_alloc_job()
4321 fctl_dealloc_job(job_request_t *job) in fctl_dealloc_job() argument
4323 kmem_cache_free(fctl_job_cache, (void *)job); in fctl_dealloc_job()
4328 fctl_enque_job(fc_local_port_t *port, job_request_t *job) in fctl_enque_job() argument
4336 port->fp_job_head = port->fp_job_tail = job; in fctl_enque_job()
4338 port->fp_job_tail->job_next = job; in fctl_enque_job()
4339 port->fp_job_tail = job; in fctl_enque_job()
4341 job->job_next = NULL; in fctl_enque_job()
4351 job_request_t *job; in fctl_deque_job() local
4357 job = NULL; in fctl_deque_job()
4359 job = port->fp_job_head; in fctl_deque_job()
4360 if (job->job_next == NULL) { in fctl_deque_job()
4361 ASSERT(job == port->fp_job_tail); in fctl_deque_job()
4364 port->fp_job_head = job->job_next; in fctl_deque_job()
4367 return (job); in fctl_deque_job()
4372 fctl_priority_enque_job(fc_local_port_t *port, job_request_t *job) in fctl_priority_enque_job() argument
4379 port->fp_job_head = port->fp_job_tail = job; in fctl_priority_enque_job()
4380 job->job_next = NULL; in fctl_priority_enque_job()
4382 job->job_next = port->fp_job_head; in fctl_priority_enque_job()
4383 port->fp_job_head = job; in fctl_priority_enque_job()
4391 fctl_jobwait(job_request_t *job) in fctl_jobwait() argument
4393 ASSERT(!(job->job_flags & JOB_TYPE_FCTL_ASYNC)); in fctl_jobwait()
4394 sema_p(&job->job_fctl_sema); in fctl_jobwait()
4395 ASSERT(!MUTEX_HELD(&job->job_mutex)); in fctl_jobwait()
4400 fctl_jobdone(job_request_t *job) in fctl_jobdone() argument
4402 if (job->job_flags & JOB_TYPE_FCTL_ASYNC) { in fctl_jobdone()
4403 if (job->job_comp) { in fctl_jobdone()
4404 job->job_comp(job->job_cb_arg, job->job_result); in fctl_jobdone()
4406 fctl_dealloc_job(job); in fctl_jobdone()
4408 sema_v(&job->job_fctl_sema); in fctl_jobdone()