X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=fs%2Fproc%2Finternal.h;h=bc72f5c8c47d34704cb6a76ef450e1bd6dc84f0d;hb=98af37fba9b3e601ca4bded51ef51a2be4e8c97b;hp=3e55198f980628558cb0465280a6f7d46798dcaa;hpb=1da177e4c3f41524e886b7f1b8a0c1fc7321cac2;p=safe%2Fjmp%2Flinux-2.6 diff --git a/fs/proc/internal.h b/fs/proc/internal.h index 3e55198..bc72f5c 100644 --- a/fs/proc/internal.h +++ b/fs/proc/internal.h @@ -11,11 +11,24 @@ #include +#ifdef CONFIG_PROC_SYSCTL +extern int proc_sys_init(void); +#else +static inline void proc_sys_init(void) { } +#endif +#ifdef CONFIG_NET +extern int proc_net_init(void); +#else +static inline int proc_net_init(void) { return 0; } +#endif + struct vmalloc_info { unsigned long used; unsigned long largest_chunk; }; +extern struct mm_struct *mm_for_maps(struct task_struct *); + #ifdef CONFIG_MMU #define VMALLOC_TOTAL (VMALLOC_END - VMALLOC_START) extern void get_vmalloc_info(struct vmalloc_info *vmi); @@ -28,21 +41,52 @@ do { \ (vmi)->largest_chunk = 0; \ } while(0) +extern int nommu_vma_show(struct seq_file *, struct vm_area_struct *); #endif -extern void create_seq_entry(char *name, mode_t mode, struct file_operations *f); -extern int proc_exe_link(struct inode *, struct dentry **, struct vfsmount **); -extern int proc_tid_stat(struct task_struct *, char *); -extern int proc_tgid_stat(struct task_struct *, char *); -extern int proc_pid_status(struct task_struct *, char *); -extern int proc_pid_statm(struct task_struct *, char *); +extern int maps_protect; + +extern void create_seq_entry(char *name, mode_t mode, + const struct file_operations *f); +extern int proc_exe_link(struct inode *, struct path *); +extern int proc_tid_stat(struct seq_file *m, struct pid_namespace *ns, + struct pid *pid, struct task_struct *task); +extern int proc_tgid_stat(struct seq_file *m, struct pid_namespace *ns, + struct pid *pid, struct task_struct *task); +extern int proc_pid_status(struct seq_file *m, struct pid_namespace *ns, + struct pid *pid, struct task_struct *task); +extern int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns, + struct pid *pid, struct task_struct *task); +extern loff_t mem_lseek(struct file *file, loff_t offset, int orig); -static inline struct task_struct *proc_task(struct inode *inode) +extern const struct file_operations proc_maps_operations; +extern const struct file_operations proc_numa_maps_operations; +extern const struct file_operations proc_smaps_operations; +extern const struct file_operations proc_clear_refs_operations; +extern const struct file_operations proc_pagemap_operations; +extern const struct file_operations proc_net_operations; +extern const struct inode_operations proc_net_inode_operations; + +void free_proc_entry(struct proc_dir_entry *de); + +int proc_init_inodecache(void); + +static inline struct pid *proc_pid(struct inode *inode) { - return PROC_I(inode)->task; + return PROC_I(inode)->pid; } -static inline int proc_type(struct inode *inode) +static inline struct task_struct *get_proc_task(struct inode *inode) { - return PROC_I(inode)->type; + return get_pid_task(proc_pid(inode), PIDTYPE_PID); } + +static inline int proc_fd(struct inode *inode) +{ + return PROC_I(inode)->fd; +} + +struct dentry *proc_lookup_de(struct proc_dir_entry *de, struct inode *ino, + struct dentry *dentry); +int proc_readdir_de(struct proc_dir_entry *de, struct file *filp, void *dirent, + filldir_t filldir);