--- ./include/linux/pid.h.vpid_macro 2006-01-03 06:21:10.000000000 +0300 +++ ./include/linux/pid.h 2006-02-02 14:32:41.162807472 +0300 @@ -19,6 +19,19 @@ struct pid struct list_head pid_list; }; +#ifndef CONFIG_VIRTUAL_PIDS +#define __is_virtual_pid(pid) 0 +#define is_virtual_pid(pid) 0 +#define vpid_to_pid(pid) (pid) +#define __vpid_to_pid(pid) (pid) +#define pid_type_to_vpid(type, pid) (pid) +#define __pid_type_to_vpid(type, pid) (pid) +#define comb_vpid_to_pid(pid) (pid) +#define comb_pid_to_vpid(pid) (pid) +#define alloc_vpid(pid, vpid) (pid) +#define free_vpid(vpid) do { } while (0) +#endif + #define pid_task(elem, type) \ list_entry(elem, struct task_struct, pids[type].pid_list) --- ./include/linux/sched.h.vpid_macro 2006-02-02 14:15:55.455698192 +0300 +++ ./include/linux/sched.h 2006-02-02 14:32:41.164807168 +0300 @@ -1257,6 +1257,78 @@ static inline unsigned long *end_of_stac #endif +#ifndef CONFIG_VIRTUAL_PIDS +static inline pid_t virt_pid(struct task_struct *tsk) +{ + return tsk->pid; +} + +static inline pid_t virt_tgid(struct task_struct *tsk) +{ + return tsk->tgid; +} + +static inline pid_t virt_pgid(struct task_struct *tsk) +{ + return tsk->signal->pgrp; +} + +static inline pid_t virt_sid(struct task_struct *tsk) +{ + return tsk->signal->session; +} + +static inline pid_t get_task_pid_ve(struct task_struct *tsk, + struct task_struct *ve_tsk) +{ + return tsk->pid; +} + +static inline pid_t get_task_pid(struct task_struct *tsk) +{ + return tsk->pid; +} + +static inline pid_t get_task_tgid(struct task_struct *tsk) +{ + return tsk->tgid; +} + +static inline pid_t get_task_pgid(struct task_struct *tsk) +{ + return tsk->signal->pgrp; +} + +static inline pid_t get_task_sid(struct task_struct *tsk) +{ + return tsk->signal->session; +} + +static inline int set_virt_pid(struct task_struct *tsk, pid_t pid) +{ + return 0; +} + +static inline void set_virt_tgid(struct task_struct *tsk, pid_t pid) +{ +} + +static inline void set_virt_pgid(struct task_struct *tsk, pid_t pid) +{ +} + +static inline void set_virt_sid(struct task_struct *tsk, pid_t pid) +{ +} + +static inline pid_t get_task_ppid(struct task_struct *p) +{ + if (!pid_alive(p)) + return 0; + return (p->pid > 1 ? p->group_leader->real_parent->tgid : 0); +} +#endif + /* set thread flags in other task's structures * - see asm/thread_info.h for TIF_xxxx flags available */