version 1.256.2.1, 2007/11/13 16:03:24 |
version 1.257, 2007/10/24 14:50:41 |
|
|
kmutex_t p_mutex; /* :: general mutex */ |
kmutex_t p_mutex; /* :: general mutex */ |
kmutex_t p_smutex; /* :: mutex on scheduling state */ |
kmutex_t p_smutex; /* :: mutex on scheduling state */ |
kmutex_t p_stmutex; /* :: mutex on profiling state */ |
kmutex_t p_stmutex; /* :: mutex on profiling state */ |
krwlock_t p_reflock; /* p: lock for debugger, procfs */ |
kcondvar_t p_refcv; /* p: reference count CV */ |
kcondvar_t p_waitcv; /* s: wait, stop CV on children */ |
kcondvar_t p_waitcv; /* s: wait, stop CV on children */ |
kcondvar_t p_lwpcv; /* s: wait, stop CV on LWPs */ |
kcondvar_t p_lwpcv; /* s: wait, stop CV on LWPs */ |
|
int p_refcnt; /* p: ref count for procfs etc */ |
|
|
/* Substructures: */ |
/* Substructures: */ |
struct kauth_cred *p_cred; /* p: Master copy of credentials */ |
struct kauth_cred *p_cred; /* p: Master copy of credentials */ |
|
|
int p_lflag; /* l: PL_* flags */ |
int p_lflag; /* l: PL_* flags */ |
int p_stflag; /* t: PST_* flags */ |
int p_stflag; /* t: PST_* flags */ |
char p_stat; /* s: S* process status. */ |
char p_stat; /* s: S* process status. */ |
char p_trace_enabled; /* Cached by some syscall_intern() */ |
char p_pad1[3]; |
char p_pad1[2]; |
|
|
|
pid_t p_pid; /* (: Process identifier. */ |
pid_t p_pid; /* (: Process identifier. */ |
LIST_ENTRY(proc) p_pglist; /* l: List of processes in pgrp. */ |
LIST_ENTRY(proc) p_pglist; /* l: List of processes in pgrp. */ |
|
|
|
|
LIST_HEAD(, lwp) p_sigwaiters; /* s: LWPs waiting for signals */ |
LIST_HEAD(, lwp) p_sigwaiters; /* s: LWPs waiting for signals */ |
sigpend_t p_sigpend; /* s: pending signals */ |
sigpend_t p_sigpend; /* s: pending signals */ |
struct lcproc *p_lwpctl; /* s: _lwp_ctl() information */ |
|
|
|
/* |
/* |
* End area that is zeroed on creation |
* End area that is zeroed on creation |
Line 467 extern struct lwp *curlwp; /* Current r |
|
Line 466 extern struct lwp *curlwp; /* Current r |
|
#endif /* MULTIPROCESSOR */ |
#endif /* MULTIPROCESSOR */ |
#endif /* ! curlwp */ |
#endif /* ! curlwp */ |
|
|
static inline bool |
#define CURCPU_IDLE_P() (curlwp == curcpu()->ci_data.cpu_idlelwp) |
CURCPU_IDLE_P(void) |
|
{ |
|
struct cpu_info *ci = curcpu(); |
|
return ci->ci_data.cpu_onproc == ci->ci_data.cpu_idlelwp; |
|
} |
|
#define curproc (curlwp->l_proc) |
#define curproc (curlwp->l_proc) |
|
|
extern struct proc proc0; /* Process slot for swapper */ |
extern struct proc proc0; /* Process slot for swapper */ |