Changeset View
Changeset View
Standalone View
Standalone View
sys/sys/proc.h
Show First 20 Lines • Show All 105 Lines • ▼ Show 20 Lines | |||||
* (c) const until freeing | * (c) const until freeing | ||||
*/ | */ | ||||
struct pgrp { | struct pgrp { | ||||
LIST_ENTRY(pgrp) pg_hash; /* (e) Hash chain. */ | LIST_ENTRY(pgrp) pg_hash; /* (e) Hash chain. */ | ||||
LIST_HEAD(, proc) pg_members; /* (m + e) Pointer to pgrp members. */ | LIST_HEAD(, proc) pg_members; /* (m + e) Pointer to pgrp members. */ | ||||
struct session *pg_session; /* (c) Pointer to session. */ | struct session *pg_session; /* (c) Pointer to session. */ | ||||
struct sigiolst pg_sigiolst; /* (m) List of sigio sources. */ | struct sigiolst pg_sigiolst; /* (m) List of sigio sources. */ | ||||
pid_t pg_id; /* (c) Process group id. */ | pid_t pg_id; /* (c) Process group id. */ | ||||
int pg_jobc; /* (m) Job control process count. */ | |||||
struct mtx pg_mtx; /* Mutex to protect members */ | struct mtx pg_mtx; /* Mutex to protect members */ | ||||
int pg_flags; /* (m) PGRP_ flags */ | |||||
}; | }; | ||||
#define PGRP_ORPHANED 0x00000001 /* Group is orphaned */ | |||||
/* | /* | ||||
* pargs, used to hold a copy of the command line, if it had a sane length. | * pargs, used to hold a copy of the command line, if it had a sane length. | ||||
*/ | */ | ||||
struct pargs { | struct pargs { | ||||
u_int ar_ref; /* Reference count. */ | u_int ar_ref; /* Reference count. */ | ||||
u_int ar_length; /* Length. */ | u_int ar_length; /* Length. */ | ||||
u_char ar_args[1]; /* Arguments. */ | u_char ar_args[1]; /* Arguments. */ | ||||
}; | }; | ||||
▲ Show 20 Lines • Show All 733 Lines • ▼ Show 20 Lines | |||||
/* How values for thread_single(). */ | /* How values for thread_single(). */ | ||||
#define SINGLE_NO_EXIT 0 | #define SINGLE_NO_EXIT 0 | ||||
#define SINGLE_EXIT 1 | #define SINGLE_EXIT 1 | ||||
#define SINGLE_BOUNDARY 2 | #define SINGLE_BOUNDARY 2 | ||||
#define SINGLE_ALLPROC 3 | #define SINGLE_ALLPROC 3 | ||||
#ifdef MALLOC_DECLARE | #ifdef MALLOC_DECLARE | ||||
MALLOC_DECLARE(M_PARGS); | MALLOC_DECLARE(M_PARGS); | ||||
MALLOC_DECLARE(M_PGRP); | |||||
MALLOC_DECLARE(M_SESSION); | MALLOC_DECLARE(M_SESSION); | ||||
MALLOC_DECLARE(M_SUBPROC); | MALLOC_DECLARE(M_SUBPROC); | ||||
#endif | #endif | ||||
#define FOREACH_PROC_IN_SYSTEM(p) \ | #define FOREACH_PROC_IN_SYSTEM(p) \ | ||||
LIST_FOREACH((p), &allproc, p_list) | LIST_FOREACH((p), &allproc, p_list) | ||||
#define FOREACH_THREAD_IN_PROC(p, td) \ | #define FOREACH_THREAD_IN_PROC(p, td) \ | ||||
TAILQ_FOREACH((td), &(p)->p_threads, td_plist) | TAILQ_FOREACH((td), &(p)->p_threads, td_plist) | ||||
▲ Show 20 Lines • Show All 141 Lines • ▼ Show 20 Lines | |||||
LIST_HEAD(proclist, proc); | LIST_HEAD(proclist, proc); | ||||
TAILQ_HEAD(procqueue, proc); | TAILQ_HEAD(procqueue, proc); | ||||
TAILQ_HEAD(threadqueue, thread); | TAILQ_HEAD(threadqueue, thread); | ||||
extern struct proclist allproc; /* List of all processes. */ | extern struct proclist allproc; /* List of all processes. */ | ||||
extern struct proc *initproc, *pageproc; /* Process slots for init, pager. */ | extern struct proc *initproc, *pageproc; /* Process slots for init, pager. */ | ||||
extern struct uma_zone *proc_zone; | extern struct uma_zone *proc_zone; | ||||
extern struct uma_zone *pgrp_zone; | |||||
struct proc *pfind(pid_t); /* Find process by id. */ | struct proc *pfind(pid_t); /* Find process by id. */ | ||||
struct proc *pfind_any(pid_t); /* Find (zombie) process by id. */ | struct proc *pfind_any(pid_t); /* Find (zombie) process by id. */ | ||||
struct proc *pfind_any_locked(pid_t pid); /* Find process by id, locked. */ | struct proc *pfind_any_locked(pid_t pid); /* Find process by id, locked. */ | ||||
struct pgrp *pgfind(pid_t); /* Find process group by id. */ | struct pgrp *pgfind(pid_t); /* Find process group by id. */ | ||||
void pidhash_slockall(void); /* Shared lock all pid hash lists. */ | void pidhash_slockall(void); /* Shared lock all pid hash lists. */ | ||||
void pidhash_sunlockall(void); /* Shared unlock all pid hash lists. */ | void pidhash_sunlockall(void); /* Shared unlock all pid hash lists. */ | ||||
▲ Show 20 Lines • Show All 236 Lines • Show Last 20 Lines |