fst               169 dev/systrace.c struct str_process *systrace_findpid(struct fsystrace *fst, pid_t pid);
fst               209 dev/systrace.c 	struct fsystrace *fst = (struct fsystrace *)fp->f_data;
fst               218 dev/systrace.c 	rw_enter_write(&fst->lock);
fst               220 dev/systrace.c 	if ((process = TAILQ_FIRST(&fst->messages)) != NULL) {
fst               224 dev/systrace.c 			TAILQ_REMOVE(&fst->messages, process, msg_next);
fst               231 dev/systrace.c 	} else if (TAILQ_FIRST(&fst->processes) == NULL) {
fst               238 dev/systrace.c 			rw_exit_write(&fst->lock);
fst               239 dev/systrace.c 			error = tsleep(fst, PWAIT|PCATCH, "systrrd", 0);
fst               247 dev/systrace.c 	rw_exit_write(&fst->lock);
fst               276 dev/systrace.c 	struct fsystrace *fst = (struct fsystrace *)fp->f_data;
fst               335 dev/systrace.c 	rw_enter_write(&fst->lock);
fst               338 dev/systrace.c 		strp = systrace_findpid(fst, pid);
fst               351 dev/systrace.c 			ret = systrace_attach(fst, pid);
fst               374 dev/systrace.c 		ret = systrace_policy(fst, (struct systrace_policy *)data);
fst               380 dev/systrace.c 		if (!fst->fd_pid) {
fst               392 dev/systrace.c 		fdp->fd_cdir = fst->fd_cdir;
fst               393 dev/systrace.c 		fdp->fd_rdir = fst->fd_rdir;
fst               395 dev/systrace.c 		fst->fd_pid = 0;
fst               396 dev/systrace.c 		fst->fd_cdir = fst->fd_rdir = NULL;
fst               399 dev/systrace.c 		ret = systrace_getcwd(fst, strp);
fst               407 dev/systrace.c 	rw_exit_write(&fst->lock);
fst               418 dev/systrace.c 	struct fsystrace *fst = (struct fsystrace *)fp->f_data;
fst               425 dev/systrace.c 	rw_enter_write(&fst->lock);
fst               427 dev/systrace.c 	if (!TAILQ_EMPTY(&fst->messages))
fst               430 dev/systrace.c 		selrecord(p, &fst->si);
fst               431 dev/systrace.c 	rw_exit_write(&fst->lock);
fst               461 dev/systrace.c 	struct fsystrace *fst = (struct fsystrace *)fp->f_data;
fst               466 dev/systrace.c 	rw_enter_write(&fst->lock);
fst               470 dev/systrace.c 	for (strp = TAILQ_FIRST(&fst->processes); strp;
fst               471 dev/systrace.c 	    strp = TAILQ_FIRST(&fst->processes)) {
fst               479 dev/systrace.c 	for (strp = TAILQ_FIRST(&fst->messages); strp;
fst               480 dev/systrace.c 	    strp = TAILQ_FIRST(&fst->messages)) {
fst               481 dev/systrace.c 		TAILQ_REMOVE(&fst->messages, strp, msg_next);
fst               486 dev/systrace.c 	for (strpol = TAILQ_FIRST(&fst->policies); strpol;
fst               487 dev/systrace.c 	    strpol = TAILQ_FIRST(&fst->policies))
fst               488 dev/systrace.c 		systrace_closepolicy(fst, strpol);
fst               491 dev/systrace.c 	if (fst->fd_cdir)
fst               492 dev/systrace.c 		vrele(fst->fd_cdir);
fst               493 dev/systrace.c 	if (fst->fd_rdir)
fst               494 dev/systrace.c 		vrele(fst->fd_rdir);
fst               495 dev/systrace.c 	rw_exit_write(&fst->lock);
fst               560 dev/systrace.c 	struct fsystrace *fst = NULL;
fst               565 dev/systrace.c 		MALLOC(fst, struct fsystrace *, sizeof(struct fsystrace),
fst               568 dev/systrace.c 		memset(fst, 0, sizeof(struct fsystrace));
fst               569 dev/systrace.c 		rw_init(&fst->lock, "systrace");
fst               570 dev/systrace.c 		TAILQ_INIT(&fst->processes);
fst               571 dev/systrace.c 		TAILQ_INIT(&fst->messages);
fst               572 dev/systrace.c 		TAILQ_INIT(&fst->policies);
fst               575 dev/systrace.c 			fst->issuser = 1;
fst               576 dev/systrace.c 		fst->p_ruid = p->p_cred->p_ruid;
fst               577 dev/systrace.c 		fst->p_rgid = p->p_cred->p_rgid;
fst               581 dev/systrace.c 			FREE(fst, M_XDATA);
fst               587 dev/systrace.c 		f->f_data = (caddr_t) fst;
fst               608 dev/systrace.c systrace_wakeup(struct fsystrace *fst)
fst               610 dev/systrace.c 	wakeup((caddr_t)fst);
fst               611 dev/systrace.c 	selwakeup(&fst->si);
fst               635 dev/systrace.c 	struct fsystrace *fst;
fst               640 dev/systrace.c 		fst = strp->parent;
fst               641 dev/systrace.c 		rw_enter_write(&fst->lock);
fst               645 dev/systrace.c 		systrace_msg_child(fst, strp, -1);
fst               648 dev/systrace.c 		rw_exit_write(&fst->lock);
fst               658 dev/systrace.c 	struct fsystrace *fst;
fst               667 dev/systrace.c 	fst = oldstrp->parent;
fst               668 dev/systrace.c 	rw_enter_write(&fst->lock);
fst               671 dev/systrace.c 	if (systrace_insert_process(fst, p))
fst               673 dev/systrace.c 	if ((strp = systrace_findpid(fst, p->p_pid)) == NULL)
fst               681 dev/systrace.c 	systrace_msg_child(fst, oldstrp, p->p_pid);
fst               683 dev/systrace.c 	rw_exit_write(&fst->lock);
fst               693 dev/systrace.c 	fst = strp->parent; \
fst               694 dev/systrace.c 	rw_enter_write(&fst->lock); \
fst               704 dev/systrace.c 	struct fsystrace *fst = NULL;
fst               725 dev/systrace.c 	fst = strp->parent;
fst               727 dev/systrace.c 	rw_enter_write(&fst->lock);
fst               737 dev/systrace.c 	if (fst->issuser) {
fst               742 dev/systrace.c 		maycontrol = fst->p_ruid == p->p_cred->p_ruid &&
fst               743 dev/systrace.c 		    fst->p_rgid == p->p_cred->p_rgid;
fst               771 dev/systrace.c 		rw_exit_write(&fst->lock);
fst               786 dev/systrace.c 	error = systrace_msg_ask(fst, strp, code, callp->sy_argsize, v);
fst               799 dev/systrace.c 	fst = strp->parent;
fst               800 dev/systrace.c 	rw_enter_write(&fst->lock);
fst               835 dev/systrace.c 	rw_exit_write(&fst->lock);
fst               862 dev/systrace.c 		if ((fst = strp->parent) == NULL || !fst->issuser) {
fst               877 dev/systrace.c 	fst = strp->parent;
fst               878 dev/systrace.c 	rw_enter_write(&fst->lock);
fst               884 dev/systrace.c 			systrace_closepolicy(fst, strp->policy);
fst               887 dev/systrace.c 		systrace_msg_emul(fst, strp);
fst               895 dev/systrace.c 		systrace_msg_ugid(fst, strp);
fst               902 dev/systrace.c 		systrace_msg_result(fst, strp, error, code,
fst               910 dev/systrace.c 	rw_exit_write(&fst->lock);
fst              1063 dev/systrace.c systrace_policy(struct fsystrace *fst, struct systrace_policy *pol)
fst              1074 dev/systrace.c 		strpol = systrace_newpolicy(fst, pol->strp_maxents);
fst              1084 dev/systrace.c 		TAILQ_FOREACH(strpol, &fst->policies, next)
fst              1090 dev/systrace.c 		strp = systrace_findpid(fst, pol->strp_pid);
fst              1099 dev/systrace.c 			systrace_closepolicy(fst, strp->policy);
fst              1103 dev/systrace.c 		TAILQ_REMOVE(&fst->policies, strpol, next);
fst              1104 dev/systrace.c 		TAILQ_INSERT_TAIL(&fst->policies, strpol, next);
fst              1117 dev/systrace.c 		TAILQ_FOREACH(strpol, &fst->policies, next)
fst              1149 dev/systrace.c systrace_getcwd(struct fsystrace *fst, struct str_process *strp)
fst              1166 dev/systrace.c 	fst->fd_pid = strp->pid;
fst              1167 dev/systrace.c 	fst->fd_cdir = myfdp->fd_cdir;
fst              1168 dev/systrace.c 	fst->fd_rdir = myfdp->fd_rdir;
fst              1221 dev/systrace.c systrace_attach(struct fsystrace *fst, pid_t pid)
fst              1289 dev/systrace.c 	error = systrace_insert_process(fst, proc);
fst              1310 dev/systrace.c 	struct fsystrace *fst;
fst              1322 dev/systrace.c 		fst = strp->parent;
fst              1323 dev/systrace.c 		rw_enter_write(&fst->lock);
fst              1331 dev/systrace.c 		if (fst->issuser ||
fst              1332 dev/systrace.c 		    fst->p_ruid != p->p_cred->p_ruid ||
fst              1333 dev/systrace.c 		    fst->p_rgid != p->p_cred->p_rgid) {
fst              1334 dev/systrace.c 			rw_exit_write(&fst->lock);
fst              1481 dev/systrace.c 	struct fsystrace *fst;
fst              1486 dev/systrace.c 	fst = strp->parent;
fst              1488 dev/systrace.c 	rw_enter_write(&fst->lock);
fst              1491 dev/systrace.c 	if (!fst->issuser && (ISSET(p->p_flag, P_SUGID) ||
fst              1493 dev/systrace.c 		fst->p_ruid != p->p_cred->p_ruid ||
fst              1494 dev/systrace.c 		fst->p_rgid != p->p_cred->p_rgid)) {
fst              1511 dev/systrace.c 	rw_exit_write(&fst->lock);
fst              1520 dev/systrace.c 	struct fsystrace *fst;
fst              1528 dev/systrace.c 		fst = strp->parent;
fst              1529 dev/systrace.c 		rw_enter_write(&fst->lock);
fst              1542 dev/systrace.c 		rw_exit_write(&fst->lock);
fst              1555 dev/systrace.c systrace_findpid(struct fsystrace *fst, pid_t pid)
fst              1560 dev/systrace.c 	TAILQ_FOREACH(strp, &fst->processes, next)
fst              1576 dev/systrace.c 	struct fsystrace *fst = NULL;
fst              1592 dev/systrace.c 	fst = strp->parent;
fst              1593 dev/systrace.c 	systrace_wakeup(fst);
fst              1596 dev/systrace.c 		TAILQ_REMOVE(&fst->messages, strp, msg_next);
fst              1598 dev/systrace.c 	TAILQ_REMOVE(&fst->processes, strp, next);
fst              1599 dev/systrace.c 	fst->nprocesses--;
fst              1602 dev/systrace.c 		systrace_closepolicy(fst, strp->policy);
fst              1610 dev/systrace.c systrace_closepolicy(struct fsystrace *fst, struct str_policy *policy)
fst              1615 dev/systrace.c 	fst->npolicies--;
fst              1620 dev/systrace.c 	TAILQ_REMOVE(&fst->policies, policy, next);
fst              1627 dev/systrace.c systrace_insert_process(struct fsystrace *fst, struct proc *proc)
fst              1638 dev/systrace.c 	strp->parent = fst;
fst              1640 dev/systrace.c 	TAILQ_INSERT_TAIL(&fst->processes, strp, next);
fst              1641 dev/systrace.c 	fst->nprocesses++;
fst              1650 dev/systrace.c systrace_newpolicy(struct fsystrace *fst, int maxents)
fst              1655 dev/systrace.c 	if (fst->npolicies > SYSTR_MAX_POLICIES && !fst->issuser) {
fst              1659 dev/systrace.c 		TAILQ_FOREACH(tmp, &fst->policies, next) {
fst              1668 dev/systrace.c 		systrace_msg_policyfree(fst, tmp);
fst              1670 dev/systrace.c 		systrace_closepolicy(fst, tmp);
fst              1688 dev/systrace.c 	fst->npolicies++;
fst              1689 dev/systrace.c 	pol->nr = fst->npolicynr++;
fst              1692 dev/systrace.c 	TAILQ_INSERT_TAIL(&fst->policies, pol, next);
fst              1698 dev/systrace.c systrace_msg_ask(struct fsystrace *fst, struct str_process *strp,
fst              1713 dev/systrace.c systrace_msg_result(struct fsystrace *fst, struct str_process *strp,
fst              1732 dev/systrace.c systrace_msg_emul(struct fsystrace *fst, struct str_process *strp)
fst              1743 dev/systrace.c systrace_msg_ugid(struct fsystrace *fst, struct str_process *strp)
fst              1758 dev/systrace.c 	struct fsystrace *fst = strp->parent;
fst              1777 dev/systrace.c 	TAILQ_INSERT_TAIL(&fst->messages, strp, msg_next);
fst              1781 dev/systrace.c 	systrace_wakeup(fst);
fst              1784 dev/systrace.c 	rw_exit_write(&fst->lock);
fst              1801 dev/systrace.c systrace_msg_child(struct fsystrace *fst, struct str_process *strp, pid_t npid)
fst              1824 dev/systrace.c 	TAILQ_INSERT_TAIL(&fst->messages, nstrp, msg_next);
fst              1826 dev/systrace.c 	systrace_wakeup(fst);
fst              1832 dev/systrace.c systrace_msg_policyfree(struct fsystrace *fst, struct str_policy *strpol)
fst              1847 dev/systrace.c 	TAILQ_INSERT_TAIL(&fst->messages, nstrp, msg_next);
fst              1849 dev/systrace.c 	systrace_wakeup(fst);
fst                98 kern/kern_timeout.c #define CIRCQ_APPEND(fst, snd) do {             \
fst               100 kern/kern_timeout.c                 (fst)->prev->next = (snd)->next;\
fst               101 kern/kern_timeout.c                 (snd)->next->prev = (fst)->prev;\
fst               102 kern/kern_timeout.c                 (snd)->prev->next = (fst);      \
fst               103 kern/kern_timeout.c                 (fst)->prev = (snd)->prev;      \