2005-04-17 02:20:36 +04:00
/* internal.h: internal procfs definitions
*
* Copyright ( C ) 2004 Red Hat , Inc . All Rights Reserved .
* Written by David Howells ( dhowells @ redhat . com )
*
* This program is free software ; you can redistribute it and / or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation ; either version
* 2 of the License , or ( at your option ) any later version .
*/
# include <linux/proc_fs.h>
2007-04-02 10:49:35 +04:00
# ifdef CONFIG_PROC_SYSCTL
2007-02-14 11:34:12 +03:00
extern int proc_sys_init ( void ) ;
2007-04-02 10:49:35 +04:00
# else
static inline void proc_sys_init ( void ) { }
# endif
2007-09-12 14:01:34 +04:00
# ifdef CONFIG_NET
extern int proc_net_init ( void ) ;
# else
static inline int proc_net_init ( void ) { return 0 ; }
# endif
2007-02-14 11:34:12 +03:00
2005-04-17 02:20:36 +04:00
struct vmalloc_info {
unsigned long used ;
unsigned long largest_chunk ;
} ;
# ifdef CONFIG_MMU
# define VMALLOC_TOTAL (VMALLOC_END - VMALLOC_START)
extern void get_vmalloc_info ( struct vmalloc_info * vmi ) ;
# else
# define VMALLOC_TOTAL 0UL
# define get_vmalloc_info(vmi) \
do { \
( vmi ) - > used = 0 ; \
( vmi ) - > largest_chunk = 0 ; \
} while ( 0 )
2006-09-27 12:50:19 +04:00
extern int nommu_vma_show ( struct seq_file * , struct vm_area_struct * ) ;
2005-04-17 02:20:36 +04:00
# endif
2007-05-08 11:26:04 +04:00
extern int maps_protect ;
2006-03-28 13:56:41 +04:00
extern void create_seq_entry ( char * name , mode_t mode , const struct file_operations * f ) ;
2005-04-17 02:20:36 +04:00
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 * ) ;
2007-02-12 11:55:34 +03:00
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 ;
2006-06-26 11:25:48 +04:00
2007-02-12 11:55:34 +03:00
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 ;
2006-06-26 11:25:55 +04:00
2006-01-08 12:04:16 +03:00
void free_proc_entry ( struct proc_dir_entry * de ) ;
int proc_init_inodecache ( void ) ;
2006-06-26 11:25:56 +04:00
static inline struct pid * proc_pid ( struct inode * inode )
2006-06-26 11:25:55 +04:00
{
2006-06-26 11:25:56 +04:00
return PROC_I ( inode ) - > pid ;
2006-06-26 11:25:55 +04:00
}
static inline struct task_struct * get_proc_task ( struct inode * inode )
2005-04-17 02:20:36 +04:00
{
2006-06-26 11:25:56 +04:00
return get_pid_task ( proc_pid ( inode ) , PIDTYPE_PID ) ;
2005-04-17 02:20:36 +04:00
}
2006-06-26 11:25:44 +04:00
static inline int proc_fd ( struct inode * inode )
2005-04-17 02:20:36 +04:00
{
2006-06-26 11:25:44 +04:00
return PROC_I ( inode ) - > fd ;
2005-04-17 02:20:36 +04:00
}