2005-04-16 15:20:36 -07: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-01 23:49:35 -07:00
# ifdef CONFIG_PROC_SYSCTL
2007-02-14 00:34:12 -08:00
extern int proc_sys_init ( void ) ;
2007-04-01 23:49:35 -07:00
# else
static inline void proc_sys_init ( void ) { }
# endif
2007-09-12 12:01:34 +02:00
# ifdef CONFIG_NET
extern int proc_net_init ( void ) ;
# else
static inline int proc_net_init ( void ) { return 0 ; }
# endif
2007-02-14 00:34:12 -08:00
2005-04-16 15:20:36 -07:00
struct vmalloc_info {
unsigned long used ;
unsigned long largest_chunk ;
} ;
2008-01-02 14:09:57 +00:00
extern struct mm_struct * mm_for_maps ( struct task_struct * ) ;
2005-04-16 15:20:36 -07:00
# 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 01:50:19 -07:00
extern int nommu_vma_show ( struct seq_file * , struct vm_area_struct * ) ;
2005-04-16 15:20:36 -07:00
# endif
2007-05-08 00:26:04 -07:00
extern int maps_protect ;
2008-02-08 04:18:31 -08:00
extern void create_seq_entry ( char * name , mode_t mode ,
const struct file_operations * f ) ;
2005-04-16 15:20:36 -07:00
extern int proc_exe_link ( struct inode * , struct dentry * * , struct vfsmount * * ) ;
2008-02-08 04:18:31 -08:00
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 ) ;
2008-02-08 04:18:33 -08:00
extern int proc_pid_status ( struct seq_file * m , struct pid_namespace * ns ,
struct pid * pid , struct task_struct * task ) ;
2008-02-08 04:18:32 -08:00
extern int proc_pid_statm ( struct seq_file * m , struct pid_namespace * ns ,
struct pid * pid , struct task_struct * task ) ;
2008-02-04 22:29:04 -08:00
extern loff_t mem_lseek ( struct file * file , loff_t offset , int orig ) ;
2005-04-16 15:20:36 -07:00
2007-02-12 00:55:34 -08: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 ;
2008-02-04 22:29:03 -08:00
extern const struct file_operations proc_clear_refs_operations ;
2008-02-04 22:29:04 -08:00
extern const struct file_operations proc_pagemap_operations ;
2006-06-26 00:25:55 -07:00
2006-01-08 01:04:16 -08:00
void free_proc_entry ( struct proc_dir_entry * de ) ;
int proc_init_inodecache ( void ) ;
2006-06-26 00:25:56 -07:00
static inline struct pid * proc_pid ( struct inode * inode )
2006-06-26 00:25:55 -07:00
{
2006-06-26 00:25:56 -07:00
return PROC_I ( inode ) - > pid ;
2006-06-26 00:25:55 -07:00
}
static inline struct task_struct * get_proc_task ( struct inode * inode )
2005-04-16 15:20:36 -07:00
{
2006-06-26 00:25:56 -07:00
return get_pid_task ( proc_pid ( inode ) , PIDTYPE_PID ) ;
2005-04-16 15:20:36 -07:00
}
2006-06-26 00:25:44 -07:00
static inline int proc_fd ( struct inode * inode )
2005-04-16 15:20:36 -07:00
{
2006-06-26 00:25:44 -07:00
return PROC_I ( inode ) - > fd ;
2005-04-16 15:20:36 -07:00
}