}
-struct inode;
-
-#define VXF_FAKE_INIT (VXF_INFO_INIT|VXF_STATE_INIT)
-
-static inline
-int proc_pid_visible(struct task_struct *task, int pid)
-{
- if ((pid == 1) &&
- !vx_flags(VXF_FAKE_INIT, VXF_FAKE_INIT))
- /* show a blend through init */
- goto visible;
- if (vx_check(vx_task_xid(task), VX_WATCH|VX_IDENT))
- goto visible;
- return 0;
-visible:
- return 1;
-}
-
-static inline
-struct task_struct *find_proc_task_by_pid(int pid)
-{
- struct task_struct *task = find_task_by_pid(pid);
-
- if (task && !proc_pid_visible(task, pid)) {
- vxdprintk(VXD_CBIT(misc, 6),
- "dropping task %p[#%u,%u] for %p[#%u,%u]",
- task, task->xid, task->pid,
- current, current->xid, current->pid);
- task = NULL;
- }
- return task;
-}
-
-static inline
-struct task_struct *vx_get_proc_task(struct inode *inode, struct pid *pid)
-{
- struct task_struct *task = get_pid_task(pid, PIDTYPE_PID);
-
- if (task && !proc_pid_visible(task, pid->nr)) {
- vxdprintk(VXD_CBIT(misc, 6),
- "dropping task %p[#%u,%u] for %p[#%u,%u]",
- task, task->xid, task->pid,
- current, current->xid, current->pid);
- put_task_struct(task);
- task = NULL;
- }
- return task;
-}
-
#else
#warning duplicate inclusion
#endif