]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/proc/proc_misc.c
proc: switch /proc/cmdline to seq_file
[linux-2.6-omap-h63xx.git] / fs / proc / proc_misc.c
index 3f5c7b9d1a70b5ddce1ae5c266df06e6a8eab3d2..15257d4b1b912cf221dd332d20f4a0dc72d2e391 100644 (file)
@@ -46,7 +46,6 @@
 #include <linux/blkdev.h>
 #include <linux/hugetlb.h>
 #include <linux/jiffies.h>
-#include <linux/sysrq.h>
 #include <linux/vmalloc.h>
 #include <linux/crash_dump.h>
 #include <linux/pid_namespace.h>
 #include <asm/div64.h>
 #include "internal.h"
 
-#define LOAD_INT(x) ((x) >> FSHIFT)
-#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)
 /*
  * Warning: stuff below (imported functions) assumes that its output will fit
  * into one page. For some of those functions it may be wrong. Moreover, we
  * have a way to deal with that gracefully. Right now I used straightforward
  * wrappers, but this needs further analysis wrt potential overflows.
  */
-extern int get_hardware_list(char *);
-extern int get_stram_list(char *);
 extern int get_exec_domain_list(char *);
 
 static int proc_calc_metrics(char *page, char **start, off_t off,
@@ -81,164 +76,6 @@ static int proc_calc_metrics(char *page, char **start, off_t off,
        return len;
 }
 
-static int loadavg_read_proc(char *page, char **start, off_t off,
-                                int count, int *eof, void *data)
-{
-       int a, b, c;
-       int len;
-       unsigned long seq;
-
-       do {
-               seq = read_seqbegin(&xtime_lock);
-               a = avenrun[0] + (FIXED_1/200);
-               b = avenrun[1] + (FIXED_1/200);
-               c = avenrun[2] + (FIXED_1/200);
-       } while (read_seqretry(&xtime_lock, seq));
-
-       len = sprintf(page,"%d.%02d %d.%02d %d.%02d %ld/%d %d\n",
-               LOAD_INT(a), LOAD_FRAC(a),
-               LOAD_INT(b), LOAD_FRAC(b),
-               LOAD_INT(c), LOAD_FRAC(c),
-               nr_running(), nr_threads,
-               task_active_pid_ns(current)->last_pid);
-       return proc_calc_metrics(page, start, off, count, eof, len);
-}
-
-static int uptime_read_proc(char *page, char **start, off_t off,
-                                int count, int *eof, void *data)
-{
-       struct timespec uptime;
-       struct timespec idle;
-       int len;
-       cputime_t idletime = cputime_add(init_task.utime, init_task.stime);
-
-       do_posix_clock_monotonic_gettime(&uptime);
-       monotonic_to_bootbased(&uptime);
-       cputime_to_timespec(idletime, &idle);
-       len = sprintf(page,"%lu.%02lu %lu.%02lu\n",
-                       (unsigned long) uptime.tv_sec,
-                       (uptime.tv_nsec / (NSEC_PER_SEC / 100)),
-                       (unsigned long) idle.tv_sec,
-                       (idle.tv_nsec / (NSEC_PER_SEC / 100)));
-
-       return proc_calc_metrics(page, start, off, count, eof, len);
-}
-
-int __attribute__((weak)) arch_report_meminfo(char *page)
-{
-       return 0;
-}
-
-static int meminfo_read_proc(char *page, char **start, off_t off,
-                                int count, int *eof, void *data)
-{
-       struct sysinfo i;
-       int len;
-       unsigned long committed;
-       unsigned long allowed;
-       struct vmalloc_info vmi;
-       long cached;
-
-/*
- * display in kilobytes.
- */
-#define K(x) ((x) << (PAGE_SHIFT - 10))
-       si_meminfo(&i);
-       si_swapinfo(&i);
-       committed = atomic_long_read(&vm_committed_space);
-       allowed = ((totalram_pages - hugetlb_total_pages())
-               * sysctl_overcommit_ratio / 100) + total_swap_pages;
-
-       cached = global_page_state(NR_FILE_PAGES) -
-                       total_swapcache_pages - i.bufferram;
-       if (cached < 0)
-               cached = 0;
-
-       get_vmalloc_info(&vmi);
-
-       /*
-        * Tagged format, for easy grepping and expansion.
-        */
-       len = sprintf(page,
-               "MemTotal:     %8lu kB\n"
-               "MemFree:      %8lu kB\n"
-               "Buffers:      %8lu kB\n"
-               "Cached:       %8lu kB\n"
-               "SwapCached:   %8lu kB\n"
-               "Active:       %8lu kB\n"
-               "Inactive:     %8lu kB\n"
-#ifdef CONFIG_HIGHMEM
-               "HighTotal:    %8lu kB\n"
-               "HighFree:     %8lu kB\n"
-               "LowTotal:     %8lu kB\n"
-               "LowFree:      %8lu kB\n"
-#endif
-               "SwapTotal:    %8lu kB\n"
-               "SwapFree:     %8lu kB\n"
-               "Dirty:        %8lu kB\n"
-               "Writeback:    %8lu kB\n"
-               "AnonPages:    %8lu kB\n"
-               "Mapped:       %8lu kB\n"
-               "Slab:         %8lu kB\n"
-               "SReclaimable: %8lu kB\n"
-               "SUnreclaim:   %8lu kB\n"
-               "PageTables:   %8lu kB\n"
-#ifdef CONFIG_QUICKLIST
-               "Quicklists:   %8lu kB\n"
-#endif
-               "NFS_Unstable: %8lu kB\n"
-               "Bounce:       %8lu kB\n"
-               "WritebackTmp: %8lu kB\n"
-               "CommitLimit:  %8lu kB\n"
-               "Committed_AS: %8lu kB\n"
-               "VmallocTotal: %8lu kB\n"
-               "VmallocUsed:  %8lu kB\n"
-               "VmallocChunk: %8lu kB\n",
-               K(i.totalram),
-               K(i.freeram),
-               K(i.bufferram),
-               K(cached),
-               K(total_swapcache_pages),
-               K(global_page_state(NR_ACTIVE)),
-               K(global_page_state(NR_INACTIVE)),
-#ifdef CONFIG_HIGHMEM
-               K(i.totalhigh),
-               K(i.freehigh),
-               K(i.totalram-i.totalhigh),
-               K(i.freeram-i.freehigh),
-#endif
-               K(i.totalswap),
-               K(i.freeswap),
-               K(global_page_state(NR_FILE_DIRTY)),
-               K(global_page_state(NR_WRITEBACK)),
-               K(global_page_state(NR_ANON_PAGES)),
-               K(global_page_state(NR_FILE_MAPPED)),
-               K(global_page_state(NR_SLAB_RECLAIMABLE) +
-                               global_page_state(NR_SLAB_UNRECLAIMABLE)),
-               K(global_page_state(NR_SLAB_RECLAIMABLE)),
-               K(global_page_state(NR_SLAB_UNRECLAIMABLE)),
-               K(global_page_state(NR_PAGETABLE)),
-#ifdef CONFIG_QUICKLIST
-               K(quicklist_total_size()),
-#endif
-               K(global_page_state(NR_UNSTABLE_NFS)),
-               K(global_page_state(NR_BOUNCE)),
-               K(global_page_state(NR_WRITEBACK_TEMP)),
-               K(allowed),
-               K(committed),
-               (unsigned long)VMALLOC_TOTAL >> 10,
-               vmi.used >> 10,
-               vmi.largest_chunk >> 10
-               );
-
-               len += hugetlb_report_meminfo(page + len);
-
-       len += arch_report_meminfo(page + len);
-
-       return proc_calc_metrics(page, start, off, count, eof, len);
-#undef K
-}
-
 static int fragmentation_open(struct inode *inode, struct file *file)
 {
        (void)inode;
@@ -276,18 +113,6 @@ static const struct file_operations proc_zoneinfo_file_operations = {
        .release        = seq_release,
 };
 
-static int version_read_proc(char *page, char **start, off_t off,
-                                int count, int *eof, void *data)
-{
-       int len;
-
-       len = snprintf(page, PAGE_SIZE, linux_proc_banner,
-               utsname()->sysname,
-               utsname()->release,
-               utsname()->version);
-       return proc_calc_metrics(page, start, off, count, eof, len);
-}
-
 extern const struct seq_operations cpuinfo_op;
 static int cpuinfo_open(struct inode *inode, struct file *file)
 {
@@ -371,24 +196,6 @@ static const struct file_operations proc_vmstat_file_operations = {
        .release        = seq_release,
 };
 
-#ifdef CONFIG_PROC_HARDWARE
-static int hardware_read_proc(char *page, char **start, off_t off,
-                                int count, int *eof, void *data)
-{
-       int len = get_hardware_list(page);
-       return proc_calc_metrics(page, start, off, count, eof, len);
-}
-#endif
-
-#ifdef CONFIG_STRAM_PROC
-static int stram_read_proc(char *page, char **start, off_t off,
-                                int count, int *eof, void *data)
-{
-       int len = get_stram_list(page);
-       return proc_calc_metrics(page, start, off, count, eof, len);
-}
-#endif
-
 #ifdef CONFIG_BLOCK
 static int partitions_open(struct inode *inode, struct file *file)
 {
@@ -509,9 +316,6 @@ static int show_stat(struct seq_file *p, void *v)
        u64 sum = 0;
        struct timespec boottime;
        unsigned int per_irq_sum;
-#ifdef CONFIG_GENERIC_HARDIRQS
-       struct irq_desc *desc;
-#endif
 
        user = nice = system = idle = iowait =
                irq = softirq = steal = cputime64_zero;
@@ -530,7 +334,7 @@ static int show_stat(struct seq_file *p, void *v)
                steal = cputime64_add(steal, kstat_cpu(i).cpustat.steal);
                guest = cputime64_add(guest, kstat_cpu(i).cpustat.guest);
 
-               for_each_irq_desc(j, desc)
+               for_each_irq_nr(j)
                        sum += kstat_irqs_cpu(j, i);
 
                sum += arch_irq_stat_cpu(i);
@@ -575,7 +379,7 @@ static int show_stat(struct seq_file *p, void *v)
        seq_printf(p, "intr %llu", (unsigned long long)sum);
 
        /* sum again ? it could be updated? */
-       for_each_irq_desc(j, desc) {
+       for_each_irq_nr(j) {
                per_irq_sum = 0;
 
                for_each_possible_cpu(i)
@@ -668,22 +472,6 @@ static const struct file_operations proc_interrupts_operations = {
        .release        = seq_release,
 };
 
-static int filesystems_read_proc(char *page, char **start, off_t off,
-                                int count, int *eof, void *data)
-{
-       int len = get_filesystem_list(page);
-       return proc_calc_metrics(page, start, off, count, eof, len);
-}
-
-static int cmdline_read_proc(char *page, char **start, off_t off,
-                                int count, int *eof, void *data)
-{
-       int len;
-
-       len = sprintf(page, "%s\n", saved_command_line);
-       return proc_calc_metrics(page, start, off, count, eof, len);
-}
-
 #ifdef CONFIG_FILE_LOCKING
 static int locks_open(struct inode *inode, struct file *filp)
 {
@@ -705,28 +493,6 @@ static int execdomains_read_proc(char *page, char **start, off_t off,
        return proc_calc_metrics(page, start, off, count, eof, len);
 }
 
-#ifdef CONFIG_MAGIC_SYSRQ
-/*
- * writing 'C' to /proc/sysrq-trigger is like sysrq-C
- */
-static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
-                                  size_t count, loff_t *ppos)
-{
-       if (count) {
-               char c;
-
-               if (get_user(c, buf))
-                       return -EFAULT;
-               __handle_sysrq(c, NULL, 0);
-       }
-       return count;
-}
-
-static const struct file_operations proc_sysrq_trigger_operations = {
-       .write          = write_sysrq_trigger,
-};
-#endif
-
 #ifdef CONFIG_PROC_PAGE_MONITOR
 #define KPMSIZE sizeof(u64)
 #define KPMMASK (KPMSIZE - 1)
@@ -866,18 +632,6 @@ void __init proc_misc_init(void)
                char *name;
                int (*read_proc)(char*,char**,off_t,int,int*,void*);
        } *p, simple_ones[] = {
-               {"loadavg",     loadavg_read_proc},
-               {"uptime",      uptime_read_proc},
-               {"meminfo",     meminfo_read_proc},
-               {"version",     version_read_proc},
-#ifdef CONFIG_PROC_HARDWARE
-               {"hardware",    hardware_read_proc},
-#endif
-#ifdef CONFIG_STRAM_PROC
-               {"stram",       stram_read_proc},
-#endif
-               {"filesystems", filesystems_read_proc},
-               {"cmdline",     cmdline_read_proc},
                {"execdomains", execdomains_read_proc},
                {NULL,}
        };
@@ -935,7 +689,4 @@ void __init proc_misc_init(void)
 #ifdef CONFIG_PROC_VMCORE
        proc_vmcore = proc_create("vmcore", S_IRUSR, NULL, &proc_vmcore_operations);
 #endif
-#ifdef CONFIG_MAGIC_SYSRQ
-       proc_create("sysrq-trigger", S_IWUSR, NULL, &proc_sysrq_trigger_operations);
-#endif
 }