Blame include/glibtop/procopenfiles.h

Packit d37888
/* Copyright (C) 1998-99 Martin Baulig
Packit d37888
   Copyright (C) 2004 Nicolás Lichtmaier
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
   Modified by Nicolás Lichtmaier to give open process files.
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_OPEN_FILES_H__
Packit d37888
#define __GLIBTOP_PROC_OPEN_FILES_H__
Packit d37888
Packit d37888
#include <glibtop.h>
Packit d37888
#include <glibtop/global.h>
Packit d37888
Packit d37888
Packit d37888
G_BEGIN_DECLS
Packit d37888
Packit d37888
#define GLIBTOP_PROC_OPEN_FILES_NUMBER		0
Packit d37888
#define GLIBTOP_PROC_OPEN_FILES_TOTAL		1
Packit d37888
#define GLIBTOP_PROC_OPEN_FILES_SIZE		2
Packit d37888
Packit d37888
#define GLIBTOP_MAX_PROC_OPEN_FILES		3
Packit d37888
Packit d37888
#define GLIBTOP_FILE_ENTRY_FD				0
Packit d37888
#define GLIBTOP_FILE_ENTRY_NAME				1
Packit d37888
#define GLIBTOP_FILE_ENTRY_TYPE				2
Packit d37888
#define GLIBTOP_FILE_ENTRY_INETSOCKET_DST_HOST		3
Packit d37888
#define GLIBTOP_FILE_ENTRY_INETSOCKET_DST_PORT		4
Packit d37888
Packit d37888
#define GLIBTOP_MAX_OPEN_FILE_ENTRY		5
Packit d37888
Packit d37888
#define GLIBTOP_OPEN_FILENAME_LEN	215
Packit d37888
 /* ready for IPv6 */
Packit d37888
#define GLIBTOP_OPEN_DEST_HOST_LEN	46
Packit d37888
Packit d37888
enum glibtop_file_type {
Packit d37888
	GLIBTOP_FILE_TYPE_FILE		= 1,
Packit d37888
	GLIBTOP_FILE_TYPE_PIPE		= 2,
Packit d37888
	GLIBTOP_FILE_TYPE_INETSOCKET	= 4,
Packit d37888
	GLIBTOP_FILE_TYPE_LOCALSOCKET	= 8,
Packit d37888
	GLIBTOP_FILE_TYPE_INET6SOCKET	= 16
Packit d37888
};
Packit d37888
Packit d37888
typedef struct _glibtop_open_files_entry glibtop_open_files_entry;
Packit d37888
Packit d37888
typedef struct _glibtop_proc_open_files	glibtop_proc_open_files;
Packit d37888
Packit d37888
struct _glibtop_open_files_entry
Packit d37888
{
Packit d37888
	int fd;
Packit d37888
	guint16 type; /* An "enum glibtop_file_type" value. */
Packit d37888
	union {
Packit d37888
		/* When type == GLIBTOP_FILE_TYPE_INETSOCKET or
Packit d37888
		 * when type == GLIBTOP_FILE_TYPE_INET6SOCKET */
Packit d37888
		struct {
Packit d37888
			char dest_host[GLIBTOP_OPEN_DEST_HOST_LEN+1];
Packit d37888
			int dest_port;
Packit d37888
		} sock;
Packit d37888
Packit d37888
		/* When type == GLIBTOP_FILE_TYPE_FILE */
Packit d37888
		struct {
Packit d37888
			char name[GLIBTOP_OPEN_FILENAME_LEN+1];
Packit d37888
		} file;
Packit d37888
Packit d37888
		/* When type == GLIBTOP_FILE_TYPE_LOCALSOCKET */
Packit d37888
		struct {
Packit d37888
			char name[GLIBTOP_OPEN_FILENAME_LEN+1];
Packit d37888
		} localsock;
Packit d37888
Packit d37888
	} info;
Packit d37888
};
Packit d37888
Packit d37888
struct _glibtop_proc_open_files
Packit d37888
{
Packit d37888
	guint64	flags;
Packit d37888
	guint64 number;			/* GLIBTOP_PROC_OPEN_FILES_NUMBER */
Packit d37888
	guint64 total;			/* GLIBTOP_PROC_OPEN_FILES_TOTAL  */
Packit d37888
	guint64 size;			/* GLIBTOP_PROC_OPEN_FILES_SIZE   */
Packit d37888
};
Packit d37888
Packit d37888
/**
Packit d37888
 * glibtop_get_proc_open_files:
Packit d37888
 * @buf:
Packit d37888
 * @pid:
Packit d37888
 *
Packit d37888
 * Returns: (transfer none):
Packit d37888
 */
Packit d37888
Packit d37888
glibtop_open_files_entry *
Packit d37888
glibtop_get_proc_open_files(glibtop_proc_open_files *buf, pid_t pid);
Packit d37888
Packit d37888
#if GLIBTOP_SUID_PROC_FILE
Packit d37888
#define glibtop_get_proc_open_files_r		glibtop_get_proc_open_files_p
Packit d37888
#else
Packit d37888
#define glibtop_get_proc_open_files_r		glibtop_get_proc_open_files_s
Packit d37888
#endif
Packit d37888
Packit d37888
Packit d37888
/**
Packit d37888
 * glibtop_get_proc_open_files_l:
Packit d37888
 * @server:
Packit d37888
 * @buf: (out):
Packit d37888
 * @pid:
Packit d37888
 *
Packit d37888
 * Returns: (transfer none):
Packit d37888
 */
Packit d37888
Packit d37888
glibtop_open_files_entry *
Packit d37888
glibtop_get_proc_open_files_l (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
Packit d37888
Packit d37888
#if GLIBTOP_SUID_PROC_FILE
Packit d37888
void _glibtop_init_proc_open_files_p (glibtop *server);
Packit d37888
Packit d37888
Packit d37888
/**
Packit d37888
 * glibtop_get_proc_open_files_p:
Packit d37888
 * @server:
Packit d37888
 * @buf: (out):
Packit d37888
 * @pid:
Packit d37888
 *
Packit d37888
 * Returns: (transfer none):
Packit d37888
 */
Packit d37888
Packit d37888
glibtop_open_files_entry *
Packit d37888
glibtop_get_proc_open_files_p (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
Packit d37888
#else
Packit d37888
void _glibtop_init_proc_open_files_s (glibtop *server);
Packit d37888
Packit d37888
glibtop_open_files_entry *
Packit d37888
glibtop_get_proc_open_files_s (glibtop *server, glibtop_proc_open_files *buf, pid_t pid);
Packit d37888
#endif
Packit d37888
Packit d37888
GType     glibtop_open_files_entry_get_type (void) G_GNUC_CONST;
Packit d37888
GType     glibtop_proc_open_files_get_type (void) G_GNUC_CONST;
Packit d37888
Packit d37888
G_END_DECLS
Packit d37888
Packit d37888
#endif