Lines Matching refs:session

24     rt_session_t session = RT_NULL;  in lwp_session_find()  local
47 session = (rt_session_t)rt_list_entry(node, struct rt_object, list); in lwp_session_find()
48 if (session->sid == sid) in lwp_session_find()
52 return session; in lwp_session_find()
63 rt_session_t session = RT_NULL; in lwp_session_create() local
71 session = rt_malloc(sizeof(struct rt_session)); in lwp_session_create()
72 if (session != RT_NULL) in lwp_session_create()
74 rt_object_init(&(session->object), RT_Object_Class_Session, "session"); in lwp_session_create()
75 rt_list_init(&(session->processgroup)); in lwp_session_create()
76 rt_mutex_init(&(session->mutex), "session", RT_IPC_FLAG_PRIO); in lwp_session_create()
77 session->leader = leader; in lwp_session_create()
78 session->sid = leader->pid; in lwp_session_create()
79 lwp_pgrp_update_children_info(leader->pgrp, session->sid, leader->pgid); in lwp_session_create()
80 session->foreground_pgid = session->sid; in lwp_session_create()
81 session->ctty = RT_NULL; in lwp_session_create()
83 return session; in lwp_session_create()
86 int lwp_session_delete(rt_session_t session) in lwp_session_delete() argument
92 if (session == RT_NULL) in lwp_session_delete()
98 lwp_session_update_children_info(session, 0); in lwp_session_delete()
103 ctty = session->ctty; in lwp_session_delete()
104 SESS_LOCK_NESTED(session); in lwp_session_delete()
106 if (session->ctty == ctty) in lwp_session_delete()
110 SESS_UNLOCK(session); in lwp_session_delete()
118 tty_rel_sess(ctty, session); in lwp_session_delete()
119 session->ctty = RT_NULL; in lwp_session_delete()
123 SESS_UNLOCK(session); in lwp_session_delete()
128 SESS_UNLOCK(session); in lwp_session_delete()
133 rt_object_detach(&(session->object)); in lwp_session_delete()
134 rt_mutex_detach(&(session->mutex)); in lwp_session_delete()
135 rt_free(session); in lwp_session_delete()
140 int lwp_session_insert(rt_session_t session, rt_processgroup_t group) in lwp_session_insert() argument
143 if (session == RT_NULL || group == RT_NULL) in lwp_session_insert()
148 SESS_LOCK_NESTED(session); in lwp_session_insert()
151 group->sid = session->sid; in lwp_session_insert()
152 group->session = session; in lwp_session_insert()
153 lwp_pgrp_update_children_info(group, session->sid, group->pgid); in lwp_session_insert()
154 rt_list_insert_after(&(session->processgroup), &(group->pgrp_list_node)); in lwp_session_insert()
157 SESS_UNLOCK(session); in lwp_session_insert()
162 int lwp_session_remove(rt_session_t session, rt_processgroup_t group) in lwp_session_remove() argument
167 if (session == RT_NULL || group == RT_NULL) in lwp_session_remove()
172 SESS_LOCK_NESTED(session); in lwp_session_remove()
179 group->session = RT_NULL; in lwp_session_remove()
183 is_empty = rt_list_isempty(&(session->processgroup)); in lwp_session_remove()
185 SESS_UNLOCK(session); in lwp_session_remove()
189 lwp_session_delete(session); in lwp_session_remove()
196 int lwp_session_move(rt_session_t session, rt_processgroup_t group) in lwp_session_move() argument
201 if (session == RT_NULL || group == RT_NULL) in lwp_session_move()
206 if (lwp_sid_get_bysession(session) == lwp_sid_get_bypgrp(group)) in lwp_session_move()
211 SESS_LOCK(session); in lwp_session_move()
213 prev_session = group->session; in lwp_session_move()
221 lwp_session_insert(session, group); in lwp_session_move()
223 SESS_UNLOCK(session); in lwp_session_move()
228 int lwp_session_update_children_info(rt_session_t session, pid_t sid) in lwp_session_update_children_info() argument
233 if (session == RT_NULL) in lwp_session_update_children_info()
238 SESS_LOCK_NESTED(session); in lwp_session_update_children_info()
240 rt_list_for_each(node, &(session->processgroup)) in lwp_session_update_children_info()
247 group->session = session; in lwp_session_update_children_info()
253 SESS_UNLOCK(session); in lwp_session_update_children_info()
257 int lwp_session_set_foreground(rt_session_t session, pid_t pgid) in lwp_session_set_foreground() argument
264 if (session == RT_NULL || pgid <= 0) in lwp_session_set_foreground()
269 SESS_LOCK(session); in lwp_session_set_foreground()
271 rt_list_for_each(node, &(session->processgroup)) in lwp_session_set_foreground()
284 session->foreground_pgid = pgid; in lwp_session_set_foreground()
288 SESS_UNLOCK(session); in lwp_session_set_foreground()
304 rt_session_t session; in sys_setsid() local
323 session = lwp_session_create(process); in sys_setsid()
324 if (session) in sys_setsid()
326 lwp_session_move(session, group); in sys_setsid()
332 err = lwp_sid_get_bysession(session); in sys_setsid()
387 rt_session_t session; in list_session() local
407 session = sessions[index]; in list_session()
408 SESS_LOCK(session); in list_session()
409 rt_memcpy(&se, session, sizeof(struct rt_session)); in list_session()
410 SESS_UNLOCK(session); in list_session()
431 MSH_CMD_EXPORT(list_session, list session);