diff options
-rw-r--r-- | libpager/pager-create.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libpager/pager-create.c b/libpager/pager-create.c index b583f023..422e8f4e 100644 --- a/libpager/pager-create.c +++ b/libpager/pager-create.c @@ -15,6 +15,8 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include <stdio.h> + #include "priv.h" /* Create and return a new pager with user info UPI. */ @@ -50,6 +52,23 @@ pager_create (struct user_pager_info *upi, return p; } +/* Provide a human-readable description of the given pager object. */ +static error_t +format_debug_info (const void *port, char *buffer, size_t size) +{ + const struct pager *pager = port; + const struct port_info *pi = port; + + snprintf (buffer, size, + "bucket: %s, class: %s, may_cache: %d", + pi->bucket->label, + pi->class->label, + /* XXX I have no idea what might be interesting to print + here, but it is straight forward to add stuff. */ + pager->may_cache); + + return 0; +} /* This causes the function to be run at startup by compiler magic. */ static void create_class (void) __attribute__ ((constructor)); @@ -58,5 +77,6 @@ static void create_class () { _pager_class = ports_create_class (_pager_clean, _pager_real_dropweak); + ports_label_class (_pager_class, "_pager_class", format_debug_info); (void) &create_class; /* Avoid warning */ } |