Lines Matching refs:sess

960 	struct session *sess;
962 for (sess = SESSHASH(sessid)->lh_first; sess != 0; sess = sess->s_hash.le_next)
963 if (sess->s_sid == sessid)
964 return (sess);
1060 struct session *sess;
1065 MALLOC_ZONE(sess, struct session *,
1067 if (sess == NULL)
1069 sess->s_leader = p;
1070 sess->s_sid = p->p_pid;
1071 sess->s_count = 1;
1072 sess->s_ttyvp = NULL;
1073 sess->s_ttyp = TTY_NULL;
1074 sess->s_flags = 0;
1075 sess->s_listflags = 0;
1076 sess->s_ttypgrpid = NO_PID;
1078 lck_mtx_init(&sess->s_mlock, proc_mlock_grp, proc_lck_attr);
1080 lck_mtx_init(&sess->s_mlock, proc_lck_grp, proc_lck_attr);
1082 bcopy(procsp->s_login, sess->s_login,
1083 sizeof(sess->s_login));
1086 LIST_INSERT_HEAD(SESSHASH(sess->s_sid), sess, s_hash);
1088 pgrp->pg_session = sess;
2484 session_lock(struct session * sess)
2486 lck_mtx_lock(&sess->s_mlock);
2491 session_unlock(struct session * sess)
2493 lck_mtx_unlock(&sess->s_mlock);
2546 struct session * sess = SESSION_NULL;
2559 if ((p->p_pgrp != PGRP_NULL) && ((sess = p->p_pgrp->pg_session) != SESSION_NULL)) {
2560 if ((sess->s_listflags & (S_LIST_TERM | S_LIST_DEAD)) != 0)
2562 sess->s_count++;
2565 return(sess);
2569 session_rele(struct session *sess)
2572 if (--sess->s_count == 0) {
2573 if ((sess->s_listflags & (S_LIST_TERM | S_LIST_DEAD)) != 0)
2575 sess->s_listflags |= S_LIST_TERM;
2576 LIST_REMOVE(sess, s_hash);
2577 sess->s_listflags |= S_LIST_DEAD;
2578 if (sess->s_count != 0)
2582 lck_mtx_destroy(&sess->s_mlock, proc_mlock_grp);
2584 lck_mtx_destroy(&sess->s_mlock, proc_lck_grp);
2586 FREE_ZONE(sess, sizeof(struct session), M_SESSION);