/* nommu.c: mmu-less memory info files * * 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 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "internal.h" /* * display a single region to a sequenced file */ static int nommu_region_show(struct seq_file *m, struct vm_region *region) { unsigned long ino = 0; struct file *file; dev_t dev = 0; int flags; flags = region->vm_flags; file = region->vm_file; if (file) { struct inode *inode = file_inode(region->vm_file); dev = inode->i_sb->s_dev; ino = inode->i_ino; } seq_setwidth(m, 25 + sizeof(void *) * 6 - 1); seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu ", region->vm_start, region->vm_end, flags & VM_READ ? 'r' : '-', flags & VM_WRITE ? 'w' : '-', flags & VM_EXEC ? 'x' : '-', flags & VM_MAYSHARE ? flags & VM_SHARED ? 'S' : 's' : 'p', ((loff_t)region->vm_pgoff) << PAGE_SHIFT, MAJOR(dev), MINOR(dev), ino); if (file) { seq_pad(m, ' '); seq_file_path(m, file, ""); } seq_putc(m, '\n'); return 0; } /* * display a list of all the REGIONs the kernel knows about * - nommu kernels have a single flat list */ static int nommu_region_list_show(struct seq_file *m, void *_p) { struct rb_node *p = _p; return nommu_region_show(m, rb_entry(p, struct vm_region, vm_rb)); } static void *nommu_region_list_start(struct seq_file *m, loff_t *_pos) { struct rb_node *p; loff_t pos = *_pos; down_read(&nommu_region_sem); for (p = rb_first(&nommu_region_tree); p; p = rb_next(p)) if (pos-- == 0) return p; return NULL; } static void nommu_region_list_stop(struct seq_file *m, void *v) { up_read(&nommu_region_sem); } static void *nommu_region_list_next(struct seq_file *m, void *v, loff_t *pos) { (*pos)++; return rb_next((struct rb_node *) v); } static const struct seq_operations proc_nommu_region_list_seqop = { .start = nommu_region_list_start, .next = nommu_region_list_next, .stop = nommu_region_list_stop, .show = nommu_region_list_show }; static int proc_nommu_region_list_open(struct inode *inode, struct file *file) { return seq_open(file, &proc_nommu_region_list_seqop); } static const struct file_operations proc_nommu_region_list_operations = { .open = proc_nommu_region_list_open, .read = seq_read, .llseek = seq_lseek, .release = seq_release, }; static int __init proc_nommu_init(void) { proc_create("maps", S_IRUGO, NULL, &proc_nommu_region_list_operations); return 0; } fs_initcall(proc_nommu_init); Expand)AuthorFilesLines 2017-02-14net_sched: nla_memdup_cookie() can be staticWei Yongjun1-1/+1 2017-02-14sched: Fix accidental removal of errout gotoJiri Pirko1-0/+1 2017-02-11net_sched: fix error recovery at qdisc creationEric Dumazet5-23/+19 2017-02-10net/act_pedit: Introduce 'add' operationAmir Vadai1-4/+26 2017-02-10net/act_pedit: Support using offset relative to the conventional network headersAmir Vadai1-16/+180 2017-02-10sched: check negative err value to safe one level of indentJiri Pirko1-13/+9 2017-02-10sched: add missing curly braces in else branch in tc_ctl_tfilterJiri Pirko1-1/+2 2017-02-10sched: move err set right before goto errout in tc_ctl_tfilterJiri Pirko1-10/+19 2017-02-10sched: push TC filter protocol creation into a separate functionJiri Pirko1-51/+59 2017-02-10sched: move tcf_proto_destroy and tcf_destroy_chain helpers into cls_apiJiri Pirko13-24/+32 2017-02-10sched: rename tcf_destroy to tcf_destroy_protoJiri Pirko2-6/+6 2017-02-07net/sched: act_mirred: remove duplicated include from act_mirred.cWei Yongjun1-2/+0 2017-02-03Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-nextDavid S. Miller1-1/+1 2017-02-03sched: cls_flower: expose priority to offloading netdeviceJiri Pirko1-0/+3 2017-02-03net/sched: act_ife: Change to use ife moduleYotam Gigi2-78/+33 2017-02-03net/sched: act_ife: Unexport ife_tlv_meta_encodeYotam Gigi1-2/+2 2017-02-02Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/netDavid S. Miller2-85/+48 2017-02-02skbuff: add and use skb_nfct helperFlorian Westphal1-1/+1