Having decided not to provide a libmemstat(3) error number to text

conversion routine, now change my mind and add one, memstat_strerror(3),
which returns a const char * pointer to a string describing the error,
to be used on the results of memstat_mtl_geterror().

While here, also correct a minor typo in the HISTORY man page.

Pointers on improving ease of internationalization would be
appreciated.

MFC after:	1 day
This commit is contained in:
rwatson 2005-07-24 01:41:47 +00:00
parent f689e777d1
commit 560d460544
4 changed files with 38 additions and 3 deletions

View File

@ -17,6 +17,7 @@ MLINKS+= libmemstat.3 memstat_mtl_next.3
MLINKS+= libmemstat.3 memstat_mtl_find.3
MLINKS+= libmemstat.3 memstat_mtl_free.3
MLINKS+= libmemstat.3 memstat_mtl_geterror.3
MLINKS+= libmemstat.3 memstat_strerror.3
MLINKS+= libmemstat.3 memstat_sysctl_all.3
MLINKS+= libmemstat.3 memstat_sysctl_malloc.3
MLINKS+= libmemstat.3 memstat_sysctl_uma.3

View File

@ -35,6 +35,9 @@
.Sh SYNOPSIS
.In sys/types.h
.In memstat.h
.Ss General Functions
.Ft const char *
.Fn memstat_strerror "int error"
.Ss Memory Type List Management Functions
.Ft struct memory_type_list *
.Fn memstat_mtl_alloc "void"
@ -150,7 +153,9 @@ Repeated calls will incrementally update the list of memory types, permitting
tracking over time without recreating all list state.
If an error is detected during a query call, error condition information may
be retrieved using
.Fn memstat_mtl_geterror .
.Fn memstat_mtl_geterror ,
and converted to a user-readable string using
.Fn memstat_strerror .
.Pp
Freeing the list will free all memory type data in the list, and so
invalidates any outstanding pointers to entries in the list.
@ -356,7 +361,10 @@ on success, or
on failure.
If a failure is returned, the list error access method,
.Fn memstat_mtl_geterror ,
may be used to retrieve the error state. Possible error values are:
may be used to retrieve the error state.
The string representation of the error may be retrieved using
.Fn memstat_strerror .
Possible error values are:
.Pp
.Bl -tag -width "MEMSTAT_ERROR_TOOMANYCPUS" -compact -offset wee
.It Dv MEMSTAT_ERROR_UNDEFINED
@ -426,7 +434,7 @@ printf("Mbufs: %llu\\n", (unsigned long long)mbuf_count);
.Xr uma 9
.Sh HISTORY
The
.Nm memstat
.Nm libmemstat
library appeared in
.Fx 6.0 .
.Sh AUTHORS

View File

@ -38,6 +38,27 @@
#include "memstat.h"
#include "memstat_internal.h"
const char *
memstat_strerror(int error)
{
switch (error) {
case MEMSTAT_ERROR_NOMEMORY:
return ("Cannot allocate memory");
case MEMSTAT_ERROR_VERSION:
return ("Version mismatch");
case MEMSTAT_ERROR_PERMISSION:
return ("Permission denied");
case MEMSTAT_ERROR_TOOMANYCPUS:
return ("Too many CPUs");
case MEMSTAT_ERROR_DATAERROR:
return ("Data format error");
case MEMSTAT_ERROR_UNDEFINED:
default:
return ("Unknown error");
}
}
struct memory_type_list *
memstat_mtl_alloc(void)
{

View File

@ -89,6 +89,11 @@ struct memory_type;
struct memory_type_list;
__BEGIN_DECLS
/*
* Functions that operate without memory type or memory type list context.
*/
const char *memstat_strerror(int error);
/*
* Functions for managing memory type and statistics data.
*/