kallsyms: allow creating from kallsyms data

This commit is contained in:
Christian Hergert
2019-05-09 16:31:16 -07:00
parent 5b40ce4f88
commit 935328356a
2 changed files with 26 additions and 10 deletions

View File

@ -50,6 +50,20 @@ sysprof_kallsyms_free (SysprofKallsyms *self)
}
}
SysprofKallsyms *
sysprof_kallsyms_new_take (gchar *data)
{
g_autoptr(SysprofKallsyms) self = NULL;
self = g_slice_new0 (SysprofKallsyms);
self->buf = g_steal_pointer (&data);
self->buflen = strlen (self->buf);
self->endptr = self->buf + self->buflen;
self->iter = self->buf;
return g_steal_pointer (&self);
}
SysprofKallsyms *
sysprof_kallsyms_new (const gchar *path)
{
@ -70,10 +84,10 @@ sysprof_kallsyms_new (const gchar *path)
}
gboolean
sysprof_kallsyms_next (SysprofKallsyms *self,
const gchar **name,
guint64 *address,
guint8 *type)
sysprof_kallsyms_next (SysprofKallsyms *self,
const gchar **name,
guint64 *address,
guint8 *type)
{
guint64 addr;
char *tok;

View File

@ -27,14 +27,16 @@ G_BEGIN_DECLS
typedef struct _SysprofKallsyms SysprofKallsyms;
SYSPROF_AVAILABLE_IN_ALL
SysprofKallsyms *sysprof_kallsyms_new (const gchar *path);
SysprofKallsyms *sysprof_kallsyms_new (const gchar *path);
SYSPROF_AVAILABLE_IN_ALL
gboolean sysprof_kallsyms_next (SysprofKallsyms *self,
const gchar **name,
guint64 *address,
guint8 *type);
SysprofKallsyms *sysprof_kallsyms_new_take (gchar *data);
SYSPROF_AVAILABLE_IN_ALL
void sysprof_kallsyms_free (SysprofKallsyms *self);
gboolean sysprof_kallsyms_next (SysprofKallsyms *self,
const gchar **name,
guint64 *address,
guint8 *type);
SYSPROF_AVAILABLE_IN_ALL
void sysprof_kallsyms_free (SysprofKallsyms *self);
G_DEFINE_AUTOPTR_CLEANUP_FUNC (SysprofKallsyms, sysprof_kallsyms_free)