Added `void *closure' argument.
2000-11-27 Martin Baulig <martin@home-of-linux.org> * include/glibtop/glibtop-backend-info.h (glibtop_backend_close_func_t): Added `void *closure' argument. * include/glibtop/call-vector.h: Changed the second argument of all function in the call vector from `glibtop_backend *' to `void *closure'.
This commit is contained in:
committed by
Martin Baulig
parent
8a78a93e0c
commit
478be2d170
@@ -29,10 +29,7 @@ static int
|
||||
_open_server (glibtop_server *, glibtop_backend *, u_int64_t, const char **);
|
||||
|
||||
static int
|
||||
_close_server (glibtop_server *, glibtop_backend *);
|
||||
|
||||
static int backend_server_initialized = 0;
|
||||
GQuark backend_server_quark;
|
||||
_close_server (glibtop_server *, glibtop_backend *, void *);
|
||||
|
||||
extern glibtop_call_vector glibtop_backend_server_call_vector;
|
||||
|
||||
@@ -54,15 +51,9 @@ _open_server (glibtop_server *server, glibtop_backend *backend,
|
||||
{
|
||||
backend_server_private *priv;
|
||||
|
||||
if (!backend_server_initialized) {
|
||||
backend_server_quark = g_quark_from_string ("backend-server-private");
|
||||
|
||||
backend_server_initialized = 1;
|
||||
}
|
||||
|
||||
priv = glibtop_calloc_r (server, 1, sizeof (backend_server_private));
|
||||
|
||||
g_object_set_qdata (G_OBJECT (backend), backend_server_quark, priv);
|
||||
glibtop_backend_set_closure_data (backend, priv);
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf (stderr, "open_server - %p, %p, %p\n", server, backend, priv);
|
||||
@@ -102,12 +93,10 @@ _open_server (glibtop_server *server, glibtop_backend *backend,
|
||||
}
|
||||
|
||||
static int
|
||||
_close_server (glibtop_server *server, glibtop_backend *backend)
|
||||
_close_server (glibtop_server *server, glibtop_backend *backend,
|
||||
void *closure)
|
||||
{
|
||||
backend_server_private *priv;
|
||||
|
||||
priv = g_object_steal_qdata (G_OBJECT (backend), backend_server_quark);
|
||||
g_assert (priv != NULL);
|
||||
backend_server_private *priv = closure;
|
||||
|
||||
kill (priv->pid, SIGKILL);
|
||||
close (priv->input [0]);
|
||||
|
||||
@@ -46,10 +46,8 @@ struct _backend_server_private
|
||||
glibtop_server *server;
|
||||
};
|
||||
|
||||
extern GQuark backend_server_quark;
|
||||
|
||||
void *
|
||||
glibtop_call_i (glibtop_server *server, glibtop_backend *backend,
|
||||
glibtop_call_i (glibtop_server *server, backend_server_private *priv,
|
||||
unsigned command, size_t send_size, const void *send_ptr,
|
||||
size_t data_size, const void *data_ptr,
|
||||
size_t recv_size, void *recv_ptr,
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
#include "command.h"
|
||||
|
||||
void *
|
||||
glibtop_call_i (glibtop_server *server, glibtop_backend *backend,
|
||||
glibtop_call_i (glibtop_server *server, backend_server_private *priv,
|
||||
unsigned command, size_t send_size, const void *send_buf,
|
||||
size_t data_size, const void *data_buf,
|
||||
size_t recv_size, void *recv_ptr,
|
||||
@@ -36,7 +36,6 @@ glibtop_call_i (glibtop_server *server, glibtop_backend *backend,
|
||||
{
|
||||
glibtop_command cmnd;
|
||||
glibtop_response resp;
|
||||
backend_server_private *priv;
|
||||
#if 0
|
||||
int retval;
|
||||
#endif
|
||||
@@ -44,9 +43,6 @@ glibtop_call_i (glibtop_server *server, glibtop_backend *backend,
|
||||
memset (&cmnd, 0, sizeof (glibtop_command));
|
||||
memset (&resp, 0, sizeof (glibtop_response));
|
||||
|
||||
priv = g_object_get_qdata (G_OBJECT (backend), backend_server_quark);
|
||||
g_assert (priv != NULL);
|
||||
|
||||
cmnd.command = command;
|
||||
|
||||
/* If send_size is less than _GLIBTOP_PARAM_SIZE (normally 16 Bytes), we
|
||||
|
||||
@@ -198,7 +198,7 @@ sub output {
|
||||
$send_buf_code .= "\t_LIBGTOP_DATA_ptr = _LIBGTOP_DATA_buf;\n";
|
||||
|
||||
$call_code = '';
|
||||
$call_code .= sprintf ("\t%sglibtop_call_i (server, backend, GLIBTOP_CMND_%s,\n",
|
||||
$call_code .= sprintf ("\t%sglibtop_call_i (server, closure, GLIBTOP_CMND_%s,\n",
|
||||
$call_prefix, &toupper($feature));
|
||||
$call_code .= sprintf ("\t\t\t%s%s, %s,\n", $call_prefix_space,
|
||||
"_LIBGTOP_SEND_len", "_LIBGTOP_SEND_buf");
|
||||
@@ -257,16 +257,16 @@ sub output {
|
||||
|
||||
$func_decl = 'static '.$retval."\n";
|
||||
if ($line_fields[3] eq '') {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, glibtop_backend *backend%s)\n",
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure%s)\n",
|
||||
$feature, $param_decl);
|
||||
} elsif ($line_fields[3] eq 'array') {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, glibtop_backend *backend, glibtop_array *array%s)\n",
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array%s)\n",
|
||||
$feature, $param_decl);
|
||||
} elsif ($line_fields[3] =~ /^array/) {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, glibtop_backend *backend, glibtop_array *array, %s *buf%s)\n",
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, glibtop_array *array, %s *buf%s)\n",
|
||||
$feature, 'glibtop_'.$feature, $param_decl);
|
||||
} else {
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, glibtop_backend *backend, %s *buf%s)\n",
|
||||
$func_decl .= sprintf ("_glibtop_get_%s_c (glibtop_server *server, void *closure, %s *buf%s)\n",
|
||||
$feature, 'glibtop_'.$feature, $param_decl);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user