summaryrefslogtreecommitdiff
path: root/rootdir.c
AgeCommit message (Collapse)Author
2014-05-28Do not include the terminating zero in /proc/slabinfoJustus Winter
* rootdir.c (rootdir_gc_slabinfo): Do not zero-terminate the generated content.
2014-05-24Implement /proc/slabinfoJustus Winter
Add a node 'slabinfo' to the root directory that contains information about the slab allocator used in GNU Mach. The formatting code has been taken from Richard Braun's standalone client available here: git://darnassus.sceen.net/rbraun/slabinfo.git * rootdir.c (rootdir_gc_slabinfo): New function. (rootdir_entries): Add node 'slabinfo'. * Makefile (OBJS): Add mach_debugUser.o. (rootdir.o): Add an explicit dependency on mach_debug_U.h. Furthermore, add rules to create both functions.
2013-10-05Fix mtab translator leakRichard Braun
The node structure for the `mounts' entry is created and destroyed on each access, despite the fact a translator is activated on it. Fix the issue by caching it. * rootdir.c (rootdir_mounts_node): New variable. (rootdir_mounts_node_lock): Likewise. (rootdir_mounts_make_node): New function. (rootdir_translator_make_node): Remove function. (rootdir_entries): Replace `rootdir_translator_make_node' with `rootdir_mounts_make_node'.
2013-09-15Serve mounts node with a passive translator recordJustus Winter
Make mounts a node with a passive translator record so that the mtab translator is started on access if it is available. * rootdir.c (MTAB_TRANSLATOR): New macro. (rootdir_mounts_get_translator): New function. (rootdir_mounts_exists): New function. (rootdir_translator_make_node): Likewise. (rootdir_entries): Add "mounts" node.
2013-07-22rootdir.c: Fix declaration of rootdir_fakeself_exists.Justus Winter
* rootdir.c (rootdir_fakeself_exists): Use the correct arguments for this kind of function.
2013-07-22rootdir.c: Fix compiler warningJustus Winter
* rootdir.c (rootdir_gc_meminfo): Use unsigned long constant.
2013-01-12Report VM cache size in meminfoRichard Braun
* rootdir.c: Include <mach/gnumach.h> and <mach/vm_cache_statistics.h>. (rootdir_gc_meminfo): Call vm_cache_statistics and return the VM cache size.
2011-12-27Revert "Do not use msgport information"Samuel Thibault
This reverts commit d9fc76bd4e8c9a459fad7152135b738496318415, as it breaks /proc/pid/stat
2011-12-27Do not use msgport informationSamuel Thibault
* process.c (process_lookup_pid): Set PSTAT_NO_MSGPORT flag. * rootdir.c (get_boottime, get_idletime, rootdir_gc_cmdline): Set PSTAT_NO_MSGPORT flag.
2011-02-22Add Buffers and Cached to /proc/meminfoSamuel Thibault
* rootdir.c (rootdir_gc_meminfo): Add Buffers and Cached, set to 0.
2010-09-14Use the user-provided kernel PID for uptimeJeremie Koenig
* rootdir.c (get_boottime, get_idletime): replace KERNEL_PID with the opt_kernel_pid command-line option. * main.c (argp): Document the change.
2010-09-14Add copyright noticesJeremie Koenig
* dircat.c, dircat.h, main.c, main.h, netfs.c, process.c, process.h, procfs.c, procfs.h, procfs_dir.c, procfs_dir.h, proclist.c, proclist.h, rootdir.c, rootdir.h: Add copyright notices.
2010-08-30Add some comments in rootdir.cJeremie Koenig
* rootdir.c: Add page breaks to separate sections and add header comments for them.
2010-08-30Add swap information to the top-level stat fileJeremie Koenig
* rootdir.c (rootdir_gc_meminfo): Add swap information. * TODO: Update.
2010-08-30Add a PROFILE modeJeremie Koenig
* Makefile: Change FOOFLAGS defaults to appropriate values when $(PROFILE) is defined. * rootdir.c: Add an "exit" file, which causes exit to be called when looked up, so that profiling data can be written to disk.
2010-08-30Make sure the clock never runs backwards.Jeremie Koenig
* process.c, rootdir.c: When converting timeval structures into seconds or jiffies, make sure that floating point rounding errors don't make the clock the result jump backwards on second boundaries.
2010-08-30Fix the global idle timeJeremie Koenig
* rootdir.c: Replace INIT_PID by KERNEL_PID, for boot time and idle time purposes. (get_idletime): New function, queries the kernel's idle thread. (rootdir_gc_uptime, rootdir_gc_stat): Use the new function and provide the real idle time.
2010-08-30Revamp procfs_dirJeremie Koenig
* procfs_dir.c, procfs_dir.h: Revamp the interface to make the more complicated use cases somewhat less hackish. * process.c: Update, specify a default make_node function. * rootdir.c: Likewise; make this optional "self" link use case somewhat less hackish.
2010-08-30Detect asprintf's ENOMEM in procfs.c rather than everywhereJeremie Koenig
* procfs.h: Make CONTENTS_LEN an ssize_t rather than a size_t, and document the change. * procfs.c (procfs_get_contents): Initialize CONTENTS_LEN to a negative value, and fail with ENOMEM if it's still negative after the callback returns. (everywhere): Update to ssize_t. * dircat.c, netfs.c, process.c, procfs_dir.c, proclist.c, rootdir.c: Update to ssize_t and the new GET_CONTENTS semantics.
2010-08-30Make contents a char* to avoid typecasts all over the placeJeremie Koenig
* procfs.h (procfs_cleanup_contents_with_free, procfs_cleanup_contents_with_vm_deallocate, procfs_get_contents, struct procfs_ops): Change CONTENTS from a void pointer to a char one. * dircat.c, netfs.c, process.c, procfs.c, procfs_dir.c, proclist.c, rootdir.c: Update.
2010-08-30Use a global ps_contextJeremie Koenig
* proclist.c, proclist.h (proclist_create_node): Use a ps_context passed by the caller; errors are no longer possible, rename to proclist_make_node and change the signature accordingly. * rootdir.c, rootdir.h (rootdir_create_node): Likewise. * main.c (main): Create the ps_context here and pass it to root_make_node. (root_make_node): Pass it to proclist_make_node and rootdir_make_node.
2010-08-30Add a global cmdline fileJeremie Koenig
* main.c (argp_parser, main): Add the --kernel-pid option. * main.h: Publish it. * rootdir.c (rootdir_gc_cmdline): New function.
2010-08-30Add meminfo and vmstatJeremie Koenig
* rootdir.c: Add a (non-empty) meminfo and a vmstat file.
2010-08-30Add a fake-self option to control the self symlinkJeremie Koenig
* main.c (argp_parse, main): Add the --fake-self option. * main.h: Publish it. * rootdir.c (rootdir_gc_fakeself, rootdir_entries, rootdir_create_node): Use it.
2010-08-30Add --clk-tck to set the clock unitJeremie Koenig
* main.c (argp_parser, main): Add and parse the --clk-tck option. * main.h: Publish opt_clk_tck. * process.c (sc_tc): Use the user-provided clock frequency. * rootdir.c (rootdir_gc_stat): Likewise.
2010-08-30Play nice with the procps old_Hertz_hackJeremie Koenig
* rootdir.c (rootdir_gc_uptime, rootdir_gc_stat): assume a completely idle rather than completely busy system, so that the idle seconds can be meaningfully divided by the idle jiffies by procps.
2010-08-30Add an empty meminfo root fileJeremie Koenig
* rootdir.c: Add "meminfo", empty for now.
2010-08-30Add a fake "self" symlinkJeremie Koenig
* rootdir.c: Add a fake "self" symlink which always points to init.
2010-08-30Add loadavgJeremie Koenig
* rootdir.c: Add the root file "loadavg".
2010-08-30New root files: version, uptime, statJeremie Koenig
* rootdir.c, rootdir.h: New files. * main.c: Use rootdir_create_node. * Makefile: Add the rootdir module.