[PATCH hurd 7/8] ext2fs: annotate objects managed by libports

2014-10-23 Thread Justus Winter
Install a specialized version of libpagers format_debug_info which prints more detailed information, like the nodes inode number for file pager objects. Also label both pager buckets. * ext2fs/pager-create.c (format_debug_info): New function. (create_disk_pager): Install our own format_debug_info

[PATCH hurd 6/8] libpager: annotate objects managed by libports

2014-10-23 Thread Justus Winter
Label _pager_class and provide a function which prints a human-readable description of a pager object. * libpager/pager-create.c (format_debug_info): New function. (create_class): Label _pager_class. --- libpager/pager-create.c | 20 1 file changed, 20 insertions(+) diff --g

[PATCH hurd 2/8] libintrospection: a library for Hurd server introspection

2014-10-23 Thread Justus Winter
* Makefile (lib-subdirs): Add libintrospection. * libintrospection/Makefile: New file. * libintrospection/introspection.c: Likewise. * libintrospection/introspection.h: Likewise. * libintrospection/trace.c: Likewise. --- Makefile | 2 + libintrospection/Makefile|

[PATCH hurd 4/8] utils: implement portinfo --query-process

2014-10-23 Thread Justus Winter
Implement portinfo --query-process (hopefully) as envisaged by a comment in portinfo.c. We use the new Hurd server introspection protocol to obtain information about the objects related to ports: % utils/portinfo --receive --query-process 5586 77 77: receive [bucket: diskfs_port_bucket, class

[PATCH hurd 5/8] libdiskfs: annotate objects managed by libports

2014-10-23 Thread Justus Winter
Label all port classes and diskfs_port_bucket. Provide diskfs_format_debug_info which prints a human-readable description of a protid object, which notably includes the path and the inode number. * libdiskfs/diskfs.h (diskfs_format_debug_info): New declaration. * libdiskfs/init-init.c (diskfs_for

[PATCH hurd 8/8] utils/rpctrace: support attaching to servers

2014-10-23 Thread Justus Winter
* utils/rpctrace.c (options): Add `--pid' and `--reference-port'. (print_contents): Prevent the translation of rights if `req' is NULL. We will use this to print messages in `trace_server'. (parse_task): New function. (trace_server): Mach server function that displays relayed messages. (trace_class

[PATCH hurd 1/8] hurd: add an Hurd server introspection protocol

2014-10-23 Thread Justus Winter
Most Hurd servers use libports to manage receive rights and the associated objects. These procedures can be used to query the state associated with receive rights managed by libports. The procedures are not specific to libports. Any Hurd server can implement this protocol. To do so, a server in

Hurd server introspection and tracing

2014-10-23 Thread Justus Winter
Hello :) this patch series adds introspection and tracing facilities to the Hurd servers using libports. This isn't ready yet, but I'd like to give everyone a chance to complain early on. Some notes: * I use Machs `Inherited Ports' mechanism to install a receive right at a well-known location

[PATCH hurd 3/8] libports: implement the Hurd server introspection protocol

2014-10-23 Thread Justus Winter
Add a compact and self-contained introspection server to libports. Add functions to to label port buckets and classes. Make it possible to provide a function that given an object of a class, returns a human-readable representation for it. * libports/introspection.c: New file. * libports/create-bu