Lines Matching refs:sv

383 	smb_server_t	*sv;
388 sv = smb_llist_head(&smb_servers);
389 while (sv) {
390 SMB_SERVER_VALID(sv);
391 if (sv->sv_zid == zid) {
395 sv = smb_llist_next(&smb_servers, sv);
398 sv = kmem_zalloc(sizeof (smb_server_t), KM_SLEEP);
400 sv->sv_magic = SMB_SERVER_MAGIC;
401 sv->sv_state = SMB_SERVER_STATE_CREATED;
402 sv->sv_zid = zid;
403 sv->sv_pid = ddi_get_pid();
405 mutex_init(&sv->sv_mutex, NULL, MUTEX_DEFAULT, NULL);
406 cv_init(&sv->sv_cv, NULL, CV_DEFAULT, NULL);
407 cv_init(&sv->sp_info.sp_cv, NULL, CV_DEFAULT, NULL);
409 smb_llist_constructor(&sv->sv_event_list, sizeof (smb_event_t),
412 smb_llist_constructor(&sv->sp_info.sp_list, sizeof (smb_kspooldoc_t),
415 smb_llist_constructor(&sv->sp_info.sp_fidlist,
418 sv->sv_disp_stats1 = kmem_zalloc(SMB_COM_NUM *
421 sv->sv_disp_stats2 = kmem_zalloc(SMB2__NCMDS *
424 smb_thread_init(&sv->si_thread_timers, "smb_timers",
425 smb_server_timers, sv, smbsrv_timer_pri);
427 smb_srqueue_init(&sv->sv_srqueue);
429 smb_kdoor_init(sv);
430 smb_kshare_init(sv);
431 smb_server_kstat_init(sv);
433 smb_threshold_init(&sv->sv_ssetup_ct, SMB_SSETUP_CMD,
435 smb_threshold_init(&sv->sv_tcon_ct, SMB_TCON_CMD,
437 smb_threshold_init(&sv->sv_opipe_ct, SMB_OPIPE_CMD,
440 smb_llist_insert_tail(&smb_servers, sv);
455 smb_server_t *sv;
458 rc = smb_server_lookup(&sv);
462 mutex_enter(&sv->sv_mutex);
463 switch (sv->sv_state) {
465 sv->sv_state = SMB_SERVER_STATE_STOPPING;
466 mutex_exit(&sv->sv_mutex);
467 smb_server_shutdown(sv);
468 mutex_enter(&sv->sv_mutex);
469 cv_broadcast(&sv->sp_info.sp_cv);
470 sv->sv_state = SMB_SERVER_STATE_DELETING;
473 sv->sv_state = SMB_SERVER_STATE_DELETING;
477 sv->sv_state = SMB_SERVER_STATE_DELETING;
480 SMB_SERVER_STATE_VALID(sv->sv_state);
481 mutex_exit(&sv->sv_mutex);
482 smb_server_release(sv);
486 ASSERT(sv->sv_state == SMB_SERVER_STATE_DELETING);
488 sv->sv_refcnt--;
489 while (sv->sv_refcnt)
490 cv_wait(&sv->sv_cv, &sv->sv_mutex);
492 mutex_exit(&sv->sv_mutex);
495 smb_llist_remove(&smb_servers, sv);
498 smb_threshold_fini(&sv->sv_ssetup_ct);
499 smb_threshold_fini(&sv->sv_tcon_ct);
500 smb_threshold_fini(&sv->sv_opipe_ct);
502 smb_server_listener_destroy(&sv->sv_nbt_daemon);
503 smb_server_listener_destroy(&sv->sv_tcp_daemon);
504 rw_destroy(&sv->sv_cfg_lock);
505 smb_server_kstat_fini(sv);
506 smb_kshare_fini(sv);
507 smb_kdoor_fini(sv);
508 smb_llist_destructor(&sv->sv_event_list);
510 kmem_free(sv->sv_disp_stats1,
513 kmem_free(sv->sv_disp_stats2,
516 smb_srqueue_destroy(&sv->sv_srqueue);
517 smb_thread_destroy(&sv->si_thread_timers);
519 mutex_destroy(&sv->sv_mutex);
520 cv_destroy(&sv->sv_cv);
521 sv->sv_magic = 0;
522 kmem_free(sv, sizeof (smb_server_t));
534 smb_server_t *sv;
536 rc = smb_server_lookup(&sv);
540 mutex_enter(&sv->sv_mutex);
541 switch (sv->sv_state) {
543 smb_server_store_cfg(sv, ioc);
544 sv->sv_state = SMB_SERVER_STATE_CONFIGURED;
548 smb_server_store_cfg(sv, ioc);
553 rw_enter(&sv->sv_cfg_lock, RW_WRITER);
554 smb_server_store_cfg(sv, ioc);
555 rw_exit(&sv->sv_cfg_lock);
559 SMB_SERVER_STATE_VALID(sv->sv_state);
563 mutex_exit(&sv->sv_mutex);
565 smb_server_release(sv);
578 smb_server_t *sv;
580 rc = smb_server_lookup(&sv);
584 mutex_enter(&sv->sv_mutex);
585 switch (sv->sv_state) {
588 if ((rc = smb_server_fsop_start(sv)) != 0)
591 if ((rc = smb_kshare_start(sv)) != 0)
598 sv->sv_worker_pool = taskq_create_proc("smb_workers",
599 sv->sv_cfg.skc_maxworkers, smbsrv_worker_pri,
600 sv->sv_cfg.skc_maxworkers, INT_MAX,
603 sv->sv_receiver_pool = taskq_create_proc("smb_receivers",
604 sv->sv_cfg.skc_maxconnections, smbsrv_receive_pri,
605 sv->sv_cfg.skc_maxconnections, INT_MAX,
608 sv->sv_session = smb_session_create(NULL, 0, sv, 0);
610 if (sv->sv_worker_pool == NULL || sv->sv_session == NULL) {
616 ASSERT(sv->sv_lmshrd == NULL);
617 sv->sv_lmshrd = smb_kshare_door_init(ioc->lmshrd);
618 if (sv->sv_lmshrd == NULL)
620 if (rc = smb_kdoor_open(sv, ioc->udoor)) {
626 fksmb_kdoor_open(sv, ioc->udoor_func);
629 if (rc = smb_thread_start(&sv->si_thread_timers))
633 smb_server_listener_init(sv, &sv->sv_nbt_daemon,
635 if (sv->sv_cfg.skc_ipv6_enable)
637 smb_server_listener_init(sv, &sv->sv_tcp_daemon,
639 rc = smb_server_listener_start(&sv->sv_tcp_daemon);
642 if (sv->sv_cfg.skc_netbios_enable)
643 (void) smb_server_listener_start(&sv->sv_nbt_daemon);
645 sv->sv_state = SMB_SERVER_STATE_RUNNING;
646 sv->sv_start_time = gethrtime();
647 mutex_exit(&sv->sv_mutex);
648 smb_server_release(sv);
649 smb_export_start(sv);
652 SMB_SERVER_STATE_VALID(sv->sv_state);
653 mutex_exit(&sv->sv_mutex);
654 smb_server_release(sv);
658 mutex_exit(&sv->sv_mutex);
659 smb_server_shutdown(sv);
660 smb_server_release(sv);
670 smb_server_t *sv;
673 if ((rc = smb_server_lookup(&sv)) != 0)
676 mutex_enter(&sv->sv_mutex);
677 switch (sv->sv_state) {
679 sv->sv_state = SMB_SERVER_STATE_STOPPING;
680 mutex_exit(&sv->sv_mutex);
681 smb_server_shutdown(sv);
682 mutex_enter(&sv->sv_mutex);
683 cv_broadcast(&sv->sp_info.sp_cv);
686 SMB_SERVER_STATE_VALID(sv->sv_state);
689 mutex_exit(&sv->sv_mutex);
691 smb_server_release(sv);
696 smb_server_is_stopping(smb_server_t *sv)
700 SMB_SERVER_VALID(sv);
702 mutex_enter(&sv->sv_mutex);
704 switch (sv->sv_state) {
714 mutex_exit(&sv->sv_mutex);
719 smb_server_cancel_event(smb_server_t *sv, uint32_t txid)
721 smb_event_cancel(sv, txid);
727 smb_server_t *sv;
730 if ((rc = smb_server_lookup(&sv)) == 0) {
731 smb_event_notify(sv, ioc->txid);
732 smb_server_release(sv);
752 smb_server_t *sv;
757 if ((rc = smb_server_lookup(&sv)) != 0)
760 if (sv->sv_cfg.skc_print_enable == 0) {
765 mutex_enter(&sv->sv_mutex);
767 if (sv->sv_state != SMB_SERVER_STATE_RUNNING) {
771 if ((fid = smb_spool_get_fid(sv)) != 0) {
775 if (cv_wait_sig(&sv->sp_info.sp_cv, &sv->sv_mutex) == 0) {
780 mutex_exit(&sv->sv_mutex);
785 if (smb_spool_lookup_doc_byfid(sv, fid, spdoc)) {
799 smb_server_release(sv);
807 smb_server_t *sv;
809 if ((rc = smb_server_lookup(&sv)) == 0) {
810 sv->si_gmtoff = ioc->offset;
811 smb_server_release(sv);
820 smb_server_t *sv;
823 if ((rc = smb_server_lookup(&sv)) == 0) {
824 ioc->open_users = sv->sv_users;
825 ioc->open_trees = sv->sv_trees;
826 ioc->open_files = sv->sv_files + sv->sv_pipes;
827 smb_server_release(sv);
840 smb_server_t *sv;
843 if ((rc = smb_server_lookup(&sv)) != 0)
852 smb_server_enum_users(&sv->sv_nbt_daemon.ld_session_list,
854 smb_server_enum_users(&sv->sv_tcp_daemon.ld_session_list,
859 smb_server_enum_trees(&sv->sv_nbt_daemon.ld_session_list,
861 smb_server_enum_trees(&sv->sv_tcp_daemon.ld_session_list,
868 smb_server_release(sv);
879 smb_server_t *sv;
884 if ((rc = smb_server_lookup(&sv)) != 0)
887 ll = &sv->sv_nbt_daemon.ld_session_list;
890 ll = &sv->sv_tcp_daemon.ld_session_list;
893 smb_server_release(sv);
908 smb_server_t *sv;
911 if ((rc = smb_server_lookup(&sv)) != 0)
914 ll = &sv->sv_nbt_daemon.ld_session_list;
918 ll = &sv->sv_tcp_daemon.ld_session_list;
922 smb_server_release(sv);
931 smb_server_get_session_count(smb_server_t *sv)
935 counter = smb_llist_get_count(&sv->sv_nbt_daemon.ld_session_list);
936 counter += smb_llist_get_count(&sv->sv_tcp_daemon.ld_session_list);
948 smb_server_sharevp(smb_server_t *sv, const char *shr_path, vnode_t **vp)
958 mutex_enter(&sv->sv_mutex);
959 switch (sv->sv_state) {
963 mutex_exit(&sv->sv_mutex);
966 mutex_exit(&sv->sv_mutex);
968 if ((sr = smb_request_alloc(sv->sv_session, 0)) == NULL) {
978 sv->si_root_smb_node, dnode, last_comp, &fnode);
1009 smb_server_t *sv;
1012 if ((rc = smb_server_lookup(&sv)) == 0) {
1013 mutex_enter(&sv->sv_mutex);
1014 switch (sv->sv_state) {
1016 mutex_exit(&sv->sv_mutex);
1017 (void) smb_kshare_upcall(sv->sv_lmshrd, arg, add_share);
1020 mutex_exit(&sv->sv_mutex);
1023 smb_server_release(sv);
1033 smb_server_t *sv;
1037 if ((rc = smb_server_lookup(&sv)))
1040 mutex_enter(&sv->sv_mutex);
1041 switch (sv->sv_state) {
1046 mutex_exit(&sv->sv_mutex);
1047 smb_server_release(sv);
1050 mutex_exit(&sv->sv_mutex);
1052 ll = &sv->sv_nbt_daemon.ld_session_list;
1055 ll = &sv->sv_tcp_daemon.ld_session_list;
1058 smb_server_release(sv);
1100 smb_server_get_cfg(smb_server_t *sv, smb_kmod_cfg_t *cfg)
1102 rw_enter(&sv->sv_cfg_lock, RW_READER);
1103 bcopy(&sv->sv_cfg, cfg, sizeof (*cfg));
1104 rw_exit(&sv->sv_cfg_lock);
1111 smb_server_inc_nbt_sess(smb_server_t *sv)
1113 SMB_SERVER_VALID(sv);
1114 atomic_inc_32(&sv->sv_nbt_sess);
1118 smb_server_dec_nbt_sess(smb_server_t *sv)
1120 SMB_SERVER_VALID(sv);
1121 atomic_dec_32(&sv->sv_nbt_sess);
1125 smb_server_inc_tcp_sess(smb_server_t *sv)
1127 SMB_SERVER_VALID(sv);
1128 atomic_inc_32(&sv->sv_tcp_sess);
1132 smb_server_dec_tcp_sess(smb_server_t *sv)
1134 SMB_SERVER_VALID(sv);
1135 atomic_dec_32(&sv->sv_tcp_sess);
1139 smb_server_inc_users(smb_server_t *sv)
1141 SMB_SERVER_VALID(sv);
1142 atomic_inc_32(&sv->sv_users);
1146 smb_server_dec_users(smb_server_t *sv)
1148 SMB_SERVER_VALID(sv);
1149 atomic_dec_32(&sv->sv_users);
1153 smb_server_inc_trees(smb_server_t *sv)
1155 SMB_SERVER_VALID(sv);
1156 atomic_inc_32(&sv->sv_trees);
1160 smb_server_dec_trees(smb_server_t *sv)
1162 SMB_SERVER_VALID(sv);
1163 atomic_dec_32(&sv->sv_trees);
1167 smb_server_inc_files(smb_server_t *sv)
1169 SMB_SERVER_VALID(sv);
1170 atomic_inc_32(&sv->sv_files);
1174 smb_server_dec_files(smb_server_t *sv)
1176 SMB_SERVER_VALID(sv);
1177 atomic_dec_32(&sv->sv_files);
1181 smb_server_inc_pipes(smb_server_t *sv)
1183 SMB_SERVER_VALID(sv);
1184 atomic_inc_32(&sv->sv_pipes);
1188 smb_server_dec_pipes(smb_server_t *sv)
1190 SMB_SERVER_VALID(sv);
1191 atomic_dec_32(&sv->sv_pipes);
1195 smb_server_add_rxb(smb_server_t *sv, int64_t value)
1197 SMB_SERVER_VALID(sv);
1198 atomic_add_64(&sv->sv_rxb, value);
1202 smb_server_add_txb(smb_server_t *sv, int64_t value)
1204 SMB_SERVER_VALID(sv);
1205 atomic_add_64(&sv->sv_txb, value);
1209 smb_server_inc_req(smb_server_t *sv)
1211 SMB_SERVER_VALID(sv);
1212 atomic_inc_64(&sv->sv_nreq);
1224 smb_server_t *sv = (smb_server_t *)arg;
1226 ASSERT(sv != NULL);
1233 smb_session_timers(&sv->sv_nbt_daemon.ld_session_list);
1234 smb_session_timers(&sv->sv_tcp_daemon.ld_session_list);
1242 smb_server_kstat_init(smb_server_t *sv)
1245 sv->sv_ksp = kstat_create_zone(SMBSRV_KSTAT_MODULE, 0,
1247 sizeof (smbsrv_kstats_t), 0, sv->sv_zid);
1249 if (sv->sv_ksp != NULL) {
1250 sv->sv_ksp->ks_update = smb_server_kstat_update;
1251 sv->sv_ksp->ks_private = sv;
1252 ((smbsrv_kstats_t *)sv->sv_ksp->ks_data)->ks_start_time =
1253 sv->sv_start_time;
1254 smb_dispatch_stats_init(sv);
1255 smb2_dispatch_stats_init(sv);
1256 kstat_install(sv->sv_ksp);
1261 sv->sv_legacy_ksp = kstat_create_zone(SMBSRV_KSTAT_MODULE, 0,
1264 0, sv->sv_zid);
1266 if (sv->sv_legacy_ksp != NULL) {
1269 ksd = sv->sv_legacy_ksp->ks_data;
1283 mutex_init(&sv->sv_legacy_ksmtx, NULL, MUTEX_DEFAULT, NULL);
1284 sv->sv_legacy_ksp->ks_lock = &sv->sv_legacy_ksmtx;
1285 sv->sv_legacy_ksp->ks_update = smb_server_legacy_kstat_update;
1286 kstat_install(sv->sv_legacy_ksp);
1294 smb_server_kstat_fini(smb_server_t *sv)
1296 if (sv->sv_legacy_ksp != NULL) {
1297 kstat_delete(sv->sv_legacy_ksp);
1298 mutex_destroy(&sv->sv_legacy_ksmtx);
1299 sv->sv_legacy_ksp = NULL;
1302 if (sv->sv_ksp != NULL) {
1303 kstat_delete(sv->sv_ksp);
1304 sv->sv_ksp = NULL;
1305 smb_dispatch_stats_fini(sv);
1306 smb2_dispatch_stats_fini(sv);
1316 smb_server_t *sv;
1320 sv = ksp->ks_private;
1321 SMB_SERVER_VALID(sv);
1326 ksd->ks_nbt_sess = sv->sv_nbt_sess;
1327 ksd->ks_tcp_sess = sv->sv_tcp_sess;
1328 ksd->ks_users = sv->sv_users;
1329 ksd->ks_trees = sv->sv_trees;
1330 ksd->ks_files = sv->sv_files;
1331 ksd->ks_pipes = sv->sv_pipes;
1335 ksd->ks_txb = sv->sv_txb;
1336 ksd->ks_rxb = sv->sv_rxb;
1337 ksd->ks_nreq = sv->sv_nreq;
1341 ksd->ks_maxreqs = sv->sv_cfg.skc_maxworkers;
1342 smb_srqueue_update(&sv->sv_srqueue,
1347 smb_dispatch_stats_update(sv, ksd->ks_reqs1, 0, SMB_COM_NUM);
1348 smb2_dispatch_stats_update(sv, ksd->ks_reqs2, 0, SMB2__NCMDS);
1360 smb_server_t *sv;
1369 if (!smb_server_lookup(&sv)) {
1371 ASSERT(sv->sv_legacy_ksp == ksp);
1373 ksd->ls_files.value.ui32 = sv->sv_files + sv->sv_pipes;
1374 ksd->ls_trees.value.ui32 = sv->sv_trees;
1375 ksd->ls_users.value.ui32 = sv->sv_users;
1376 smb_server_release(sv);
1393 smb_server_shutdown(smb_server_t *sv)
1395 SMB_SERVER_VALID(sv);
1401 smb_server_listener_stop(&sv->sv_nbt_daemon);
1402 smb_server_listener_stop(&sv->sv_tcp_daemon);
1403 smb_thread_stop(&sv->si_thread_timers);
1410 smb_event_cancel(sv, 0);
1411 smb_threshold_wake_all(&sv->sv_ssetup_ct);
1412 smb_threshold_wake_all(&sv->sv_tcon_ct);
1413 smb_threshold_wake_all(&sv->sv_opipe_ct);
1415 smb_kdoor_close(sv);
1417 smb_kshare_door_fini(sv->sv_lmshrd);
1419 sv->sv_lmshrd = NULL;
1421 smb_export_stop(sv);
1423 if (sv->sv_session != NULL) {
1430 smb_slist_wait_for_empty(&sv->sv_session->s_req_list);
1432 smb_session_delete(sv->sv_session);
1433 sv->sv_session = NULL;
1436 if (sv->sv_receiver_pool != NULL) {
1437 taskq_destroy(sv->sv_receiver_pool);
1438 sv->sv_receiver_pool = NULL;
1441 if (sv->sv_worker_pool != NULL) {
1442 taskq_destroy(sv->sv_worker_pool);
1443 sv->sv_worker_pool = NULL;
1446 smb_kshare_stop(sv);
1447 smb_server_fsop_stop(sv);
1457 smb_server_t *sv,
1467 ld->ld_sv = sv;
1677 smb_server_t *sv;
1682 sv = smb_llist_head(&smb_servers);
1683 while (sv) {
1684 SMB_SERVER_VALID(sv);
1685 if (sv->sv_zid == zid) {
1686 mutex_enter(&sv->sv_mutex);
1687 if (sv->sv_state != SMB_SERVER_STATE_DELETING) {
1688 sv->sv_refcnt++;
1689 mutex_exit(&sv->sv_mutex);
1691 *psv = sv;
1694 mutex_exit(&sv->sv_mutex);
1697 sv = smb_llist_next(&smb_servers, sv);
1710 smb_server_release(smb_server_t *sv)
1712 SMB_SERVER_VALID(sv);
1714 mutex_enter(&sv->sv_mutex);
1715 ASSERT(sv->sv_refcnt);
1716 sv->sv_refcnt--;
1717 if ((sv->sv_refcnt == 0) && (sv->sv_state == SMB_SERVER_STATE_DELETING))
1718 cv_signal(&sv->sv_cv);
1719 mutex_exit(&sv->sv_mutex);
1904 smb_server_store_cfg(smb_server_t *sv, smb_ioc_cfg_t *ioc)
1910 &sv->sv_nbt_daemon.ld_session_list, ioc->keepalive);
1912 &sv->sv_tcp_daemon.ld_session_list, ioc->keepalive);
1914 sv->sv_cfg.skc_maxworkers = ioc->maxworkers;
1915 sv->sv_cfg.skc_maxconnections = ioc->maxconnections;
1916 sv->sv_cfg.skc_keepalive = ioc->keepalive;
1917 sv->sv_cfg.skc_restrict_anon = ioc->restrict_anon;
1918 sv->sv_cfg.skc_signing_enable = ioc->signing_enable;
1919 sv->sv_cfg.skc_signing_required = ioc->signing_required;
1920 sv->sv_cfg.skc_oplock_enable = ioc->oplock_enable;
1921 sv->sv_cfg.skc_sync_enable = ioc->sync_enable;
1922 sv->sv_cfg.skc_secmode = ioc->secmode;
1923 sv->sv_cfg.skc_netbios_enable = ioc->netbios_enable;
1924 sv->sv_cfg.skc_ipv6_enable = ioc->ipv6_enable;
1925 sv->sv_cfg.skc_print_enable = ioc->print_enable;
1926 sv->sv_cfg.skc_traverse_mounts = ioc->traverse_mounts;
1927 sv->sv_cfg.skc_max_protocol = ioc->max_protocol;
1928 sv->sv_cfg.skc_execflags = ioc->exec_flags;
1929 sv->sv_cfg.skc_negtok_len = ioc->negtok_len;
1930 sv->sv_cfg.skc_version = ioc->version;
1931 sv->sv_cfg.skc_initial_credits = ioc->initial_credits;
1932 sv->sv_cfg.skc_maximum_credits = ioc->maximum_credits;
1934 (void) memcpy(sv->sv_cfg.skc_machine_uuid, ioc->machine_uuid,
1936 (void) memcpy(sv->sv_cfg.skc_negtok, ioc->negtok,
1937 sizeof (sv->sv_cfg.skc_negtok));
1938 (void) memcpy(sv->sv_cfg.skc_native_os, ioc->native_os,
1939 sizeof (sv->sv_cfg.skc_native_os));
1940 (void) memcpy(sv->sv_cfg.skc_native_lm, ioc->native_lm,
1941 sizeof (sv->sv_cfg.skc_native_lm));
1943 (void) strlcpy(sv->sv_cfg.skc_nbdomain, ioc->nbdomain,
1944 sizeof (sv->sv_cfg.skc_nbdomain));
1945 (void) strlcpy(sv->sv_cfg.skc_fqdn, ioc->fqdn,
1946 sizeof (sv->sv_cfg.skc_fqdn));
1947 (void) strlcpy(sv->sv_cfg.skc_hostname, ioc->hostname,
1948 sizeof (sv->sv_cfg.skc_hostname));
1949 (void) strlcpy(sv->sv_cfg.skc_system_comment, ioc->system_comment,
1950 sizeof (sv->sv_cfg.skc_system_comment));
1954 smb_server_fsop_start(smb_server_t *sv)
1958 error = smb_node_root_init(sv, &sv->si_root_smb_node);
1960 sv->si_root_smb_node = NULL;
1966 smb_server_fsop_stop(smb_server_t *sv)
1968 if (sv->si_root_smb_node != NULL) {
1969 smb_node_release(sv->si_root_smb_node);
1970 sv->si_root_smb_node = NULL;
1975 smb_event_create(smb_server_t *sv, int timeout)
1979 if (smb_server_is_stopping(sv))
1989 event->se_server = sv;
1992 smb_llist_enter(&sv->sv_event_list, RW_WRITER);
1993 smb_llist_insert_tail(&sv->sv_event_list, event);
1994 smb_llist_exit(&sv->sv_event_list);
2002 smb_server_t *sv;
2009 sv = event->se_server;
2010 SMB_SERVER_VALID(sv);
2012 smb_llist_enter(&sv->sv_event_list, RW_WRITER);
2013 smb_llist_remove(&sv->sv_event_list, event);
2014 smb_llist_exit(&sv->sv_event_list);
2089 smb_event_cancel(smb_server_t *sv, uint32_t txid)
2094 SMB_SERVER_VALID(sv);
2096 event_list = &sv->sv_event_list;
2125 smb_event_notify(smb_server_t *sv, uint32_t txid)
2130 SMB_SERVER_VALID(sv);
2132 event_list = &sv->sv_event_list;
2195 smb_spool_lookup_doc_byfid(smb_server_t *sv, uint16_t fid,
2201 splist = &sv->sp_info.sp_list;
2233 smb_spool_add_fid(smb_server_t *sv, uint16_t fid)
2238 if (sv->sv_cfg.skc_print_enable == 0)
2242 fidlist = &sv->sp_info.sp_fidlist;
2247 cv_broadcast(&sv->sp_info.sp_cv);
2261 smb_spool_get_fid(smb_server_t *sv)
2267 splist = &sv->sp_info.sp_fidlist;
2272 smb_llist_remove(&sv->sp_info.sp_fidlist, spfid);
2292 smb_server_t *sv = tree->t_server;
2295 splist = &sv->sp_info.sp_list;
2297 sp->sd_spool_num = atomic_inc_32_nv(&sv->sp_info.sp_cnt);