version 1.133, 2001/06/18 02:00:55 |
version 1.133.2.4, 2002/06/23 17:51:58 |
|
|
#include <sys/queue.h> |
#include <sys/queue.h> |
#include <sys/callout.h> |
#include <sys/callout.h> |
#include <sys/signalvar.h> |
#include <sys/signalvar.h> |
|
#include <sys/event.h> |
|
|
/* |
/* |
* One structure allocated per session. |
* One structure allocated per session. |
|
|
void (*e_trapsignal) __P((struct proc *, int, u_long)); |
void (*e_trapsignal) __P((struct proc *, int, u_long)); |
char *e_sigcode; /* Start of sigcode */ |
char *e_sigcode; /* Start of sigcode */ |
char *e_esigcode; /* End of sigcode */ |
char *e_esigcode; /* End of sigcode */ |
|
/* Set registers before execution */ |
|
void (*e_setregs) __P((struct proc *, struct exec_package *, |
|
u_long)); |
|
|
/* Per-process hooks */ |
/* Per-process hooks */ |
void (*e_proc_exec) __P((struct proc *, |
void (*e_proc_exec) __P((struct proc *, |
|
|
#else |
#else |
void (*e_syscall) __P((void)); |
void (*e_syscall) __P((void)); |
#endif |
#endif |
|
/* Emulation specific sysctl */ |
|
int (*e_sysctl) __P((int *, u_int , void *, size_t *, |
|
void *, size_t, struct proc *p)); |
}; |
}; |
|
|
/* |
/* |
|
|
* Per-process emulation data, or NULL. |
* Per-process emulation data, or NULL. |
* Malloc type M_EMULDATA |
* Malloc type M_EMULDATA |
*/ |
*/ |
|
const struct execsw *p_execsw; /* Exec package information */ |
|
struct klist p_klist; /* Knotes attached to this process */ |
|
|
/* |
/* |
* End area that is zeroed on creation |
* End area that is zeroed on creation |
|
|
#define P_ZOMBIE(p) ((p)->p_stat == SZOMB || (p)->p_stat == SDEAD) |
#define P_ZOMBIE(p) ((p)->p_stat == SZOMB || (p)->p_stat == SDEAD) |
|
|
/* These flags are kept in p_flag. */ |
/* These flags are kept in p_flag. */ |
#define P_ADVLOCK 0x00001 /* Process may hold a POSIX advisory lock */ |
#define P_ADVLOCK 0x000001 /* Process may hold a POSIX advisory lock */ |
#define P_CONTROLT 0x00002 /* Has a controlling terminal */ |
#define P_CONTROLT 0x000002 /* Has a controlling terminal */ |
#define P_INMEM 0x00004 /* Loaded into memory */ |
#define P_INMEM 0x000004 /* Loaded into memory */ |
#define P_NOCLDSTOP 0x00008 /* No SIGCHLD when children stop */ |
#define P_NOCLDSTOP 0x000008 /* No SIGCHLD when children stop */ |
#define P_PPWAIT 0x00010 /* Parent is waiting for child to exec/exit */ |
#define P_PPWAIT 0x000010 /* Parent is waiting for child to exec/exit */ |
#define P_PROFIL 0x00020 /* Has started profiling */ |
#define P_PROFIL 0x000020 /* Has started profiling */ |
#define P_SELECT 0x00040 /* Selecting; wakeup/waiting danger */ |
#define P_SELECT 0x000040 /* Selecting; wakeup/waiting danger */ |
#define P_SINTR 0x00080 /* Sleep is interruptible */ |
#define P_SINTR 0x000080 /* Sleep is interruptible */ |
#define P_SUGID 0x00100 /* Had set id privileges since last exec */ |
#define P_SUGID 0x000100 /* Had set id privileges since last exec */ |
#define P_SYSTEM 0x00200 /* System proc: no sigs, stats or swapping */ |
#define P_SYSTEM 0x000200 /* System proc: no sigs, stats or swapping */ |
#define P_TIMEOUT 0x00400 /* Timing out during sleep */ |
#define P_TIMEOUT 0x000400 /* Timing out during sleep */ |
#define P_TRACED 0x00800 /* Debugged process being traced */ |
#define P_TRACED 0x000800 /* Debugged process being traced */ |
#define P_WAITED 0x01000 /* Debugging process has waited for child */ |
#define P_WAITED 0x001000 /* Debugging process has waited for child */ |
#define P_WEXIT 0x02000 /* Working on exiting */ |
#define P_WEXIT 0x002000 /* Working on exiting */ |
#define P_EXEC 0x04000 /* Process called exec */ |
#define P_EXEC 0x004000 /* Process called exec */ |
#define P_OWEUPC 0x08000 /* Owe process an addupc() call at next ast */ |
#define P_OWEUPC 0x008000 /* Owe process an addupc() call at next ast */ |
#define P_FSTRACE 0x10000 /* Debugger process being traced by procfs */ |
#define P_FSTRACE 0x010000 /* Debugger process being traced by procfs */ |
#define P_NOCLDWAIT 0x20000 /* No zombies if child dies */ |
#define P_NOCLDWAIT 0x020000 /* No zombies if child dies */ |
#define P_32 0x40000 /* 32-bit process (used on 64-bit kernels) */ |
#define P_32 0x040000 /* 32-bit process (used on 64-bit kernels) */ |
#define P_BIGLOCK 0x80000 /* Process needs kernel "big lock" to run */ |
#define P_BIGLOCK 0x080000 /* Process needs kernel "big lock" to run */ |
|
#define P_INEXEC 0x100000 /* Process is exec'ing and cannot be traced */ |
|
|
|
|
/* |
/* |