summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/proc.h
diff options
context:
space:
mode:
authornn35248 <none@none>2006-09-11 22:51:59 -0700
committernn35248 <none@none>2006-09-11 22:51:59 -0700
commit9acbbeaf2a1ffe5c14b244867d427714fab43c5c (patch)
treed1ecd54896325c19a463220e9cbc50864874fc82 /usr/src/uts/common/sys/proc.h
parentda51466dc253d7c98dda4956059042bd0c476328 (diff)
downloadillumos-joyent-9acbbeaf2a1ffe5c14b244867d427714fab43c5c.tar.gz
PSARC/2005/471 BrandZ: Support for non-native zones
6374606 ::nm -D without an object may not work on processes in zones 6409350 BrandZ project integration into Solaris 6455289 pthread_setschedparam() should return EPERM rather than panic libc 6455591 setpriority(3C) gets errno wrong for deficient privileges failure 6458178 fifofs doesn't support lofs mounts of fifos 6460380 Attempted open() of a symlink with the O_NOFOLLOW flag set returns EINVAL, not ELOOP 6463857 renice(1) errors erroneously --HG-- rename : usr/src/lib/libzonecfg/zones/SUNWblank.xml => usr/src/lib/brand/native/zone/SUNWblank.xml rename : usr/src/lib/libzonecfg/zones/SUNWdefault.xml => usr/src/lib/brand/native/zone/SUNWdefault.xml
Diffstat (limited to 'usr/src/uts/common/sys/proc.h')
-rw-r--r--usr/src/uts/common/sys/proc.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/usr/src/uts/common/sys/proc.h b/usr/src/uts/common/sys/proc.h
index fadcbf4a6d..13a3605e66 100644
--- a/usr/src/uts/common/sys/proc.h
+++ b/usr/src/uts/common/sys/proc.h
@@ -115,6 +115,7 @@ typedef struct lwpdir {
struct pool;
struct task;
struct zone;
+struct brand;
struct corectl_path;
struct corectl_content;
@@ -336,6 +337,11 @@ typedef struct proc {
uintptr_t p_portcnt; /* event ports counter */
struct zone *p_zone; /* zone in which process lives */
struct vnode *p_execdir; /* directory that p_exec came from */
+ struct brand *p_brand; /* process's brand */
+ void *p_brand_data; /* per-process brand state */
+
+ /* additional lock to protect p_sessp (but not its contents) */
+ kmutex_t p_splock;
} proc_t;
#define PROC_T /* headers relying on proc_t are OK */
@@ -408,6 +414,10 @@ struct plock {
extern proc_t p0; /* process 0 */
extern struct plock p0lock; /* p0's plock */
extern struct pid pid0; /* p0's pid */
+
+/* pid_allocate() flags */
+#define PID_ALLOC_PROC 0x0001 /* assign a /proc slot as well */
+
#endif /* _KERNEL */
/* stat codes */
@@ -588,7 +598,8 @@ extern int sigcheck(proc_t *, kthread_t *);
extern void sigdefault(proc_t *);
extern void pid_setmin(void);
-extern pid_t pid_assign(proc_t *);
+extern pid_t pid_allocate(proc_t *, int);
+extern struct pid *pid_find(pid_t);
extern int pid_rele(struct pid *);
extern void pid_exit(proc_t *);
extern void proc_entry_free(struct pid *);
@@ -724,6 +735,7 @@ extern void lwp_rtt(void);
extern void lwp_rtt_initial(void);
extern int lwp_setprivate(klwp_t *, int, uintptr_t);
extern void lwp_stat_update(lwp_stat_id_t, long);
+extern void lwp_attach_brand_hdlrs(klwp_t *);
/*
* Signal queue function prototypes. Must be here due to header ordering