Blame include/glibtop/procmap.h

Packit d37888
/* Copyright (C) 1998-99 Martin Baulig
Packit d37888
   This file is part of LibGTop 1.0.
Packit d37888
Packit d37888
   Contributed by Martin Baulig <martin@home-of-linux.org>, April 1998.
Packit d37888
Packit d37888
   LibGTop is free software; you can redistribute it and/or modify it
Packit d37888
   under the terms of the GNU General Public License as published by
Packit d37888
   the Free Software Foundation; either version 2 of the License,
Packit d37888
   or (at your option) any later version.
Packit d37888
Packit d37888
   LibGTop is distributed in the hope that it will be useful, but WITHOUT
Packit d37888
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
Packit d37888
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
Packit d37888
   for more details.
Packit d37888
Packit d37888
   You should have received a copy of the GNU General Public License
Packit d37888
   along with LibGTop; see the file COPYING. If not, write to the
Packit d37888
   Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Packit d37888
   Boston, MA 02110-1301, USA.
Packit d37888
*/
Packit d37888
Packit d37888
#ifndef __GLIBTOP_PROC_MAP_H__
Packit d37888
#define __GLIBTOP_PROC_MAP_H__
Packit d37888
Packit d37888
#include <glibtop.h>
Packit d37888
#include <glibtop/global.h>
Packit d37888
Packit d37888
G_BEGIN_DECLS
Packit d37888
Packit d37888
#define GLIBTOP_PROC_MAP_NUMBER		0
Packit d37888
#define GLIBTOP_PROC_MAP_TOTAL		1
Packit d37888
#define GLIBTOP_PROC_MAP_SIZE		2
Packit d37888
Packit d37888
#define GLIBTOP_MAX_PROC_MAP		3
Packit d37888
Packit d37888
#define GLIBTOP_MAP_ENTRY_START		0
Packit d37888
#define GLIBTOP_MAP_ENTRY_END		1
Packit d37888
#define GLIBTOP_MAP_ENTRY_OFFSET	2
Packit d37888
#define GLIBTOP_MAP_ENTRY_PERM		3
Packit d37888
#define GLIBTOP_MAP_ENTRY_INODE		4
Packit d37888
#define GLIBTOP_MAP_ENTRY_DEVICE	5
Packit d37888
#define GLIBTOP_MAP_ENTRY_FILENAME	6
Packit d37888
Packit d37888
/* Smap support */
Packit d37888
#define GLIBTOP_MAP_ENTRY_SIZE			 7
Packit d37888
#define GLIBTOP_MAP_ENTRY_RSS			 8
Packit d37888
#define GLIBTOP_MAP_ENTRY_SHARED_CLEAN		 9
Packit d37888
#define GLIBTOP_MAP_ENTRY_SHARED_DIRTY		10
Packit d37888
#define GLIBTOP_MAP_ENTRY_PRIVATE_CLEAN		11
Packit d37888
#define GLIBTOP_MAP_ENTRY_PRIVATE_DIRTY		12
Packit d37888
#define GLIBTOP_MAP_ENTRY_PSS			13
Packit d37888
#define GLIBTOP_MAP_ENTRY_SWAP			14
Packit d37888
Packit d37888
#define GLIBTOP_MAX_MAP_ENTRY		15
Packit d37888
Packit d37888
#define GLIBTOP_MAP_FILENAME_LEN	215
Packit d37888
Packit d37888
#define GLIBTOP_MAP_PERM_READ		1
Packit d37888
#define GLIBTOP_MAP_PERM_WRITE		2
Packit d37888
#define GLIBTOP_MAP_PERM_EXECUTE	4
Packit d37888
#define GLIBTOP_MAP_PERM_SHARED		8
Packit d37888
#define GLIBTOP_MAP_PERM_PRIVATE	16
Packit d37888
Packit d37888
typedef struct _glibtop_map_entry	glibtop_map_entry;
Packit d37888
Packit d37888
typedef struct _glibtop_proc_map	glibtop_proc_map;
Packit d37888
Packit d37888
struct _glibtop_map_entry
Packit d37888
{
Packit d37888
	guint64 flags; 
Packit d37888
	guint64 start; 
Packit d37888
	guint64 end; 
Packit d37888
	guint64 offset; 
Packit d37888
	guint64 perm; 
Packit d37888
	guint64 inode; 
Packit d37888
	guint64 device;
Packit d37888
	guint64 size;
Packit d37888
	guint64 rss;
Packit d37888
	guint64 shared_clean; 
Packit d37888
	guint64 shared_dirty;
Packit d37888
	guint64 private_clean; 
Packit d37888
	guint64 private_dirty;
Packit d37888
	guint64 pss;
Packit d37888
	guint64 swap;
Packit d37888
	char filename [GLIBTOP_MAP_FILENAME_LEN+1];
Packit d37888
};
Packit d37888
Packit d37888
struct _glibtop_proc_map
Packit d37888
{
Packit d37888
	guint64	flags;
Packit d37888
	guint64 number;			/* GLIBTOP_PROC_MAP_NUMBER	*/
Packit d37888
	guint64 total;			/* GLIBTOP_PROC_MAP_TOTAL	*/
Packit d37888
	guint64 size;			/* GLIBTOP_PROC_MAP_SIZE	*/
Packit d37888
};
Packit d37888
Packit d37888
/**
Packit d37888
 * glibtop_get_proc_map:
Packit d37888
 * @buf:
Packit d37888
 * @pid:
Packit d37888
 *
Packit d37888
 * Returns: (transfer none):
Packit d37888
 */
Packit d37888
glibtop_map_entry *
Packit d37888
glibtop_get_proc_map(glibtop_proc_map *buf, pid_t pid);
Packit d37888
Packit d37888
Packit d37888
Packit d37888
/**
Packit d37888
 * glibtop_get_proc_map_l:
Packit d37888
 * @server:
Packit d37888
 * @buf: (out):
Packit d37888
 * @pid:
Packit d37888
 *
Packit d37888
 * Returns: (transfer none):
Packit d37888
 */
Packit d37888
Packit d37888
/**
Packit d37888
 * glibtop_get_proc_map_p:
Packit d37888
 * @server:
Packit d37888
 * @buf: (out):
Packit d37888
 * @pid:
Packit d37888
 *
Packit d37888
 * Returns: (transfer none):
Packit d37888
 */
Packit d37888
Packit d37888
/**
Packit d37888
 * glibtop_get_proc_map_s:
Packit d37888
 * @server:
Packit d37888
 * @buf: (out):
Packit d37888
 * @pid:
Packit d37888
 *
Packit d37888
 * Returns: (transfer none):
Packit d37888
 */
Packit d37888
Packit d37888
#if GLIBTOP_SUID_PROC_MAP
Packit d37888
#define glibtop_get_proc_map_r		glibtop_get_proc_map_p
Packit d37888
#else
Packit d37888
#define glibtop_get_proc_map_r		glibtop_get_proc_map_s
Packit d37888
#endif
Packit d37888
Packit d37888
glibtop_map_entry *
Packit d37888
glibtop_get_proc_map_l (glibtop *server, glibtop_proc_map *buf, pid_t pid);
Packit d37888
Packit d37888
#if GLIBTOP_SUID_PROC_MAP
Packit d37888
void _glibtop_init_proc_map_p (glibtop *server);
Packit d37888
Packit d37888
glibtop_map_entry *
Packit d37888
glibtop_get_proc_map_p (glibtop *server, glibtop_proc_map *buf, pid_t pid);
Packit d37888
#else
Packit d37888
void _glibtop_init_proc_map_s (glibtop *server);
Packit d37888
Packit d37888
glibtop_map_entry *
Packit d37888
glibtop_get_proc_map_s (glibtop *server, glibtop_proc_map *buf, pid_t pid);
Packit d37888
#endif
Packit d37888
Packit d37888
GType     glibtop_map_entry_get_type (void) G_GNUC_CONST;
Packit d37888
GType     glibtop_proc_map_get_type (void) G_GNUC_CONST;
Packit d37888
Packit d37888
G_END_DECLS
Packit d37888
Packit d37888
#endif