diff options
author | William Jon McCann <jmccann@redhat.com> | 2008-03-24 00:22:03 +0000 |
---|---|---|
committer | William Jon McCann <mccann@src.gnome.org> | 2008-03-24 00:22:03 +0000 |
commit | 896b850edc9d8aa3e5257c3cdb262a3a5ffb5f33 (patch) | |
tree | 106c41e1448a69b3f8f1af7f49c2b1c9985eac9b | |
parent | 469270ac3117c9839d98ab216aafe71496bff5b4 (diff) | |
download | gdm-896b850edc9d8aa3e5257c3cdb262a3a5ffb5f33.tar.gz |
Add a function to help with profiling.
2008-03-23 William Jon McCann <jmccann@redhat.com>
* common/Makefile.am:
* common/gdm-profile.c: (_gdm_profile_log):
* common/gdm-profile.h:
Add a function to help with profiling.
svn path=/trunk/; revision=6052
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | common/Makefile.am | 2 | ||||
-rw-r--r-- | common/gdm-profile.c | 65 | ||||
-rw-r--r-- | common/gdm-profile.h | 53 |
4 files changed, 127 insertions, 0 deletions
@@ -1,3 +1,10 @@ +2008-03-23 William Jon McCann <jmccann@redhat.com> + + * common/Makefile.am: + * common/gdm-profile.c: (_gdm_profile_log): + * common/gdm-profile.h: + Add a function to help with profiling. + 2008-03-19 William Jon McCann <jmccann@redhat.com> * data/session-setup.entries: diff --git a/common/Makefile.am b/common/Makefile.am index 3ad15686..f698bcef 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -69,6 +69,8 @@ libgdmcommon_la_SOURCES = \ gdm-common.c \ gdm-common-unknown-origin.h \ gdm-common-unknown-origin.c \ + gdm-profile.c \ + gdm-profile.h \ gdm-settings.c \ gdm-settings.h \ gdm-settings-backend.c \ diff --git a/common/gdm-profile.c b/common/gdm-profile.c new file mode 100644 index 00000000..0b71e3bb --- /dev/null +++ b/common/gdm-profile.c @@ -0,0 +1,65 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright (C) 2005 William Jon McCann <mccann@jhu.edu> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Authors: William Jon McCann <mccann@jhu.edu> + * + */ + +#include "config.h" + +#include <stdio.h> +#include <string.h> +#include <stdarg.h> +#include <signal.h> +#include <time.h> +#include <unistd.h> + +#include <glib.h> +#include <glib/gstdio.h> + +#include "gdm-profile.h" + +void +_gdm_profile_log (const char *func, + const char *note, + const char *format, + ...) +{ + va_list args; + char *str; + char *formatted; + + if (format == NULL) { + formatted = g_strdup (""); + } else { + va_start (args, format); + formatted = g_strdup_vprintf (format, args); + va_end (args); + } + + if (func != NULL) { + str = g_strdup_printf ("MARK: %s %s: %s %s", g_get_prgname(), func, note ? note : "", formatted); + } else { + str = g_strdup_printf ("MARK: %s: %s %s", g_get_prgname(), note ? note : "", formatted); + } + + g_free (formatted); + + g_access (str, F_OK); + g_free (str); +} diff --git a/common/gdm-profile.h b/common/gdm-profile.h new file mode 100644 index 00000000..6b4fdd90 --- /dev/null +++ b/common/gdm-profile.h @@ -0,0 +1,53 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright (C) 2005 William Jon McCann <mccann@jhu.edu> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Authors: William Jon McCann <mccann@jhu.edu> + * + */ + +#ifndef __GDM_PROFILE_H +#define __GDM_PROFILE_H + +#include <glib.h> + +G_BEGIN_DECLS + +#ifdef ENABLE_PROFILING +#ifdef G_HAVE_ISO_VARARGS +#define gdm_profile_start(...) _gdm_profile_log (G_STRFUNC, "start", __VA_ARGDM__) +#define gdm_profile_end(...) _gdm_profile_log (G_STRFUNC, "end", __VA_ARGDM__) +#define gdm_profile_msg(...) _gdm_profile_log (NULL, NULL, __VA_ARGDM__) +#elif defined(G_HAVE_GNUC_VARARGS) +#define gdm_profile_start(format...) _gdm_profile_log (G_STRFUNC, "start", format) +#define gdm_profile_end(format...) _gdm_profile_log (G_STRFUNC, "end", format) +#define gdm_profile_msg(format...) _gdm_profile_log (NULL, NULL, format) +#endif +#else +#define gdm_profile_start(...) +#define gdm_profile_end(...) +#define gdm_profile_msg(...) +#endif + +void _gdm_profile_log (const char *func, + const char *note, + const char *format, + ...) G_GNUC_PRINTF (3, 4); + +G_END_DECLS + +#endif /* __GDM_PROFILE_H */ |