[libvirt] PATCH: rpcgen portability fixes for remote_protocol.c/h

Daniel P. Berrange berrange at redhat.com
Wed Jan 28 12:57:37 UTC 2009


As per previous patches from John for Solaris, we ned a couple more fixes
to the generated remote_protocol.c/h files for good portability.

Specifically we need

    s/u_quad_t/uint64_t/g;
    s/quad_t/int64_t/g;
    s/xdr_u_quad_t/xdr_uint64_t/g;
    s/xdr_quad_t/xdr_int64_t/g;
    s/IXDR_GET_LONG/IXDR_GET_INT32/g;

I have finally got around to verifying that this won't  change wire
ABI on Linux

The first two data types int64 and quad_t are all fixed 64-bit ints,
so that's safe.

And the xdr_quad functions have this in the source

  strong_alias (xdr_int64_t, xdr_quad_t)
  strong_alias (xdr_int64_t, xdr_u_quad_t)

So that change is no-op.


Finally the glibc  rpc/xdr.h has 

   #define IXDR_GET_LONG(buf) ((long)IXDR_GET_U_INT32(buf))

So I believe this is all safe.

Daniel

Index: configure.in
===================================================================
RCS file: /data/cvs/libvirt/configure.in,v
retrieving revision 1.202
diff -u -p -r1.202 configure.in
--- configure.in	27 Jan 2009 15:29:53 -0000	1.202
+++ configure.in	28 Jan 2009 12:30:59 -0000
@@ -92,9 +92,9 @@ AC_CHECK_LIB([intl],[gettext],[])
 
 dnl Do we have rpcgen?
 AC_PATH_PROG([RPCGEN], [rpcgen], [no])
-AM_CONDITIONAL([RPCGEN], [test "x$ac_cv_path_RPCGEN" != "xno"])
+AM_CONDITIONAL([HAVE_RPCGEN], [test "x$ac_cv_path_RPCGEN" != "xno"])
 dnl Is this GLIBC's buggy rpcgen?
-AM_CONDITIONAL([GLIBC_RPCGEN],
+AM_CONDITIONAL([HAVE_GLIBC_RPCGEN],
 	       [test "x$ac_cv_path_RPCGEN" != "xno" &&
 	        $ac_cv_path_RPCGEN -t </dev/null >/dev/null 2>&1])
 
Index: qemud/Makefile.am
===================================================================
RCS file: /data/cvs/libvirt/qemud/Makefile.am,v
retrieving revision 1.72
diff -u -p -r1.72 Makefile.am
--- qemud/Makefile.am	12 Jan 2009 19:19:22 -0000	1.72
+++ qemud/Makefile.am	28 Jan 2009 12:31:00 -0000
@@ -1,7 +1,5 @@
 ## Process this file with automake to produce Makefile.in
 
-RPCGEN = $(RPCGEN)
-
 DAEMON_SOURCES =					\
 		event.c event.h				\
 		qemud.c qemud.h				\
@@ -33,32 +31,34 @@ EXTRA_DIST =						\
 	$(AVAHI_SOURCES)				\
 	$(DAEMON_SOURCES)
 
-if RPCGEN
-SUFFIXES = .x
-# The subshell ensures that remote_protocol.c ends up
-# including <config.h> before "remote_protocol.h".
-.x.c:
-	rm -f $@ $@-t $@-t1 $@-t2
-	$(RPCGEN) -c -o $@-t $<
-	(echo '#include <config.h>'; cat $@-t) > $@-t1
-if GLIBC_RPCGEN
-	perl -w rpcgen_fix.pl $@-t1 > $@-t2
-	rm $@-t1
-	chmod 444 $@-t2
-	mv $@-t2 $@
+if HAVE_RPCGEN
+#
+# Maintainer-only target for re-generating the derived .c/.h source
+# files, which are actually derived from the .x file.
+#
+# For committing protocol changes to CVS, the GLIBC rpcgen *must*
+# be used.
+#
+# Support for non-GLIB rpcgen is here as a convenience for
+# non-Linux people needing to test changes during dev.
+#
+rpcgen:
+	rm -f rp.c-t rp.h-t rp.c-t1 rp.c-t2 rp.h-t1
+	$(RPCGEN) -h -o rp.h-t $(srcdir)/remote_protocol.x
+	$(RPCGEN) -c -o rp.c-t $(srcdir)/remote_protocol.x
+if HAVE_GLIBC_RPCGEN
+	perl -w $(srcdir)/rpcgen_fix.pl rp.h-t > rp.h-t1
+	perl -w $(srcdir)/rpcgen_fix.pl rp.c-t > rp.c-t1
+	(echo '#include <config.h>'; cat rp.c-t1) > rp.c-t2
+	chmod 0444 rp.c-t2 rp.h-t1
+	mv -f rp.h-t1 $(srcdir)/remote_protocol.h
+	mv -f rp.c-t2 $(srcdir)/remote_protocol.c
+	rm -f rp.c-t rp.h-t rp.c-t1
 else
-	chmod 444 $@-t1
-	mv $@-t1 $@
-endif
-
-.x.h:
-	rm -f $@ $@-t
-	$(RPCGEN) -h -o $@-t $<
-if GLIBC_RPCGEN
-	perl -pi -e 's/\t/        /g' $@-t
+	chmod 0444 rp.c-t rp.h-t
+	mv -f rp.h-t $(srcdir)/remote_protocol.h
+	mv -f rp.c-t $(srcdir)/remote_protocol.c
 endif
-	chmod 444 $@-t
-	mv $@-t $@
 endif
 
 remote_protocol.c: remote_protocol.h
Index: qemud/remote_protocol.c
===================================================================
RCS file: /data/cvs/libvirt/qemud/remote_protocol.c,v
retrieving revision 1.27
diff -u -p -r1.27 remote_protocol.c
--- qemud/remote_protocol.c	6 Jan 2009 18:32:03 -0000	1.27
+++ qemud/remote_protocol.c	28 Jan 2009 12:31:00 -0000
@@ -183,7 +183,7 @@ xdr_remote_vcpu_info (XDR *xdrs, remote_
                  return FALSE;
          if (!xdr_int (xdrs, &objp->state))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->cpu_time))
+         if (!xdr_uint64_t (xdrs, &objp->cpu_time))
                  return FALSE;
          if (!xdr_int (xdrs, &objp->cpu))
                  return FALSE;
@@ -205,11 +205,11 @@ xdr_remote_sched_param_value (XDR *xdrs,
                          return FALSE;
                 break;
         case VIR_DOMAIN_SCHED_FIELD_LLONG:
-                 if (!xdr_quad_t (xdrs, &objp->remote_sched_param_value_u.l))
+                 if (!xdr_int64_t (xdrs, &objp->remote_sched_param_value_u.l))
                          return FALSE;
                 break;
         case VIR_DOMAIN_SCHED_FIELD_ULLONG:
-                 if (!xdr_u_quad_t (xdrs, &objp->remote_sched_param_value_u.ul))
+                 if (!xdr_uint64_t (xdrs, &objp->remote_sched_param_value_u.ul))
                          return FALSE;
                 break;
         case VIR_DOMAIN_SCHED_FIELD_DOUBLE:
@@ -279,7 +279,7 @@ bool_t
 xdr_remote_get_version_ret (XDR *xdrs, remote_get_version_ret *objp)
 {
 
-         if (!xdr_quad_t (xdrs, &objp->hv_ver))
+         if (!xdr_int64_t (xdrs, &objp->hv_ver))
                  return FALSE;
         return TRUE;
 }
@@ -330,7 +330,7 @@ xdr_remote_node_get_info_ret (XDR *xdrs,
                  if (!xdr_vector (xdrs, (char *)objp->model, 32,
                         sizeof (char), (xdrproc_t) xdr_char))
                          return FALSE;
-                 if (!xdr_quad_t (xdrs, &objp->memory))
+                 if (!xdr_int64_t (xdrs, &objp->memory))
                          return FALSE;
                 buf = (int32_t*)XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
                 if (buf == NULL) {
@@ -359,7 +359,7 @@ xdr_remote_node_get_info_ret (XDR *xdrs,
                  if (!xdr_vector (xdrs, (char *)objp->model, 32,
                         sizeof (char), (xdrproc_t) xdr_char))
                          return FALSE;
-                 if (!xdr_quad_t (xdrs, &objp->memory))
+                 if (!xdr_int64_t (xdrs, &objp->memory))
                          return FALSE;
                 buf = (int32_t*)XDR_INLINE (xdrs, 6 * BYTES_PER_XDR_UNIT);
                 if (buf == NULL) {
@@ -376,12 +376,12 @@ xdr_remote_node_get_info_ret (XDR *xdrs,
                          if (!xdr_int (xdrs, &objp->threads))
                                  return FALSE;
                 } else {
-                        objp->cpus = IXDR_GET_LONG(buf);
-                        objp->mhz = IXDR_GET_LONG(buf);
-                        objp->nodes = IXDR_GET_LONG(buf);
-                        objp->sockets = IXDR_GET_LONG(buf);
-                        objp->cores = IXDR_GET_LONG(buf);
-                        objp->threads = IXDR_GET_LONG(buf);
+                        objp->cpus = IXDR_GET_INT32(buf);
+                        objp->mhz = IXDR_GET_INT32(buf);
+                        objp->nodes = IXDR_GET_INT32(buf);
+                        objp->sockets = IXDR_GET_INT32(buf);
+                        objp->cores = IXDR_GET_INT32(buf);
+                        objp->threads = IXDR_GET_INT32(buf);
                 }
          return TRUE;
         }
@@ -389,7 +389,7 @@ xdr_remote_node_get_info_ret (XDR *xdrs,
          if (!xdr_vector (xdrs, (char *)objp->model, 32,
                 sizeof (char), (xdrproc_t) xdr_char))
                  return FALSE;
-         if (!xdr_quad_t (xdrs, &objp->memory))
+         if (!xdr_int64_t (xdrs, &objp->memory))
                  return FALSE;
          if (!xdr_int (xdrs, &objp->cpus))
                  return FALSE;
@@ -432,7 +432,7 @@ xdr_remote_node_get_cells_free_memory_re
         char **objp_cpp0 = (char **) (void *) &objp->freeMems.freeMems_val;
 
          if (!xdr_array (xdrs, objp_cpp0, (u_int *) &objp->freeMems.freeMems_len, REMOTE_NODE_MAX_CELLS,
-                sizeof (quad_t), (xdrproc_t) xdr_quad_t))
+                sizeof (int64_t), (xdrproc_t) xdr_int64_t))
                  return FALSE;
         return TRUE;
 }
@@ -441,7 +441,7 @@ bool_t
 xdr_remote_node_get_free_memory_ret (XDR *xdrs, remote_node_get_free_memory_ret *objp)
 {
 
-         if (!xdr_quad_t (xdrs, &objp->freeMem))
+         if (!xdr_int64_t (xdrs, &objp->freeMem))
                  return FALSE;
         return TRUE;
 }
@@ -516,15 +516,15 @@ bool_t
 xdr_remote_domain_block_stats_ret (XDR *xdrs, remote_domain_block_stats_ret *objp)
 {
 
-         if (!xdr_quad_t (xdrs, &objp->rd_req))
+         if (!xdr_int64_t (xdrs, &objp->rd_req))
                  return FALSE;
-         if (!xdr_quad_t (xdrs, &objp->rd_bytes))
+         if (!xdr_int64_t (xdrs, &objp->rd_bytes))
                  return FALSE;
-         if (!xdr_quad_t (xdrs, &objp->wr_req))
+         if (!xdr_int64_t (xdrs, &objp->wr_req))
                  return FALSE;
-         if (!xdr_quad_t (xdrs, &objp->wr_bytes))
+         if (!xdr_int64_t (xdrs, &objp->wr_bytes))
                  return FALSE;
-         if (!xdr_quad_t (xdrs, &objp->errs))
+         if (!xdr_int64_t (xdrs, &objp->errs))
                  return FALSE;
         return TRUE;
 }
@@ -544,21 +544,21 @@ bool_t
 xdr_remote_domain_interface_stats_ret (XDR *xdrs, remote_domain_interface_stats_ret *objp)
 {
 
-         if (!xdr_quad_t (xdrs, &objp->rx_bytes))
+         if (!xdr_int64_t (xdrs, &objp->rx_bytes))
                  return FALSE;
-         if (!xdr_quad_t (xdrs, &objp->rx_packets))
+         if (!xdr_int64_t (xdrs, &objp->rx_packets))
                  return FALSE;
-         if (!xdr_quad_t (xdrs, &objp->rx_errs))
+         if (!xdr_int64_t (xdrs, &objp->rx_errs))
                  return FALSE;
-         if (!xdr_quad_t (xdrs, &objp->rx_drop))
+         if (!xdr_int64_t (xdrs, &objp->rx_drop))
                  return FALSE;
-         if (!xdr_quad_t (xdrs, &objp->tx_bytes))
+         if (!xdr_int64_t (xdrs, &objp->tx_bytes))
                  return FALSE;
-         if (!xdr_quad_t (xdrs, &objp->tx_packets))
+         if (!xdr_int64_t (xdrs, &objp->tx_packets))
                  return FALSE;
-         if (!xdr_quad_t (xdrs, &objp->tx_errs))
+         if (!xdr_int64_t (xdrs, &objp->tx_errs))
                  return FALSE;
-         if (!xdr_quad_t (xdrs, &objp->tx_drop))
+         if (!xdr_int64_t (xdrs, &objp->tx_drop))
                  return FALSE;
         return TRUE;
 }
@@ -571,7 +571,7 @@ xdr_remote_domain_block_peek_args (XDR *
                  return FALSE;
          if (!xdr_remote_nonnull_string (xdrs, &objp->path))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->offset))
+         if (!xdr_uint64_t (xdrs, &objp->offset))
                  return FALSE;
          if (!xdr_u_int (xdrs, &objp->size))
                  return FALSE;
@@ -596,7 +596,7 @@ xdr_remote_domain_memory_peek_args (XDR 
 
          if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->offset))
+         if (!xdr_uint64_t (xdrs, &objp->offset))
                  return FALSE;
          if (!xdr_u_int (xdrs, &objp->size))
                  return FALSE;
@@ -796,7 +796,7 @@ bool_t
 xdr_remote_domain_get_max_memory_ret (XDR *xdrs, remote_domain_get_max_memory_ret *objp)
 {
 
-         if (!xdr_u_quad_t (xdrs, &objp->memory))
+         if (!xdr_uint64_t (xdrs, &objp->memory))
                  return FALSE;
         return TRUE;
 }
@@ -807,7 +807,7 @@ xdr_remote_domain_set_max_memory_args (X
 
          if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->memory))
+         if (!xdr_uint64_t (xdrs, &objp->memory))
                  return FALSE;
         return TRUE;
 }
@@ -818,7 +818,7 @@ xdr_remote_domain_set_memory_args (XDR *
 
          if (!xdr_remote_nonnull_domain (xdrs, &objp->dom))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->memory))
+         if (!xdr_uint64_t (xdrs, &objp->memory))
                  return FALSE;
         return TRUE;
 }
@@ -838,13 +838,13 @@ xdr_remote_domain_get_info_ret (XDR *xdr
 
          if (!xdr_u_char (xdrs, &objp->state))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->max_mem))
+         if (!xdr_uint64_t (xdrs, &objp->max_mem))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->memory))
+         if (!xdr_uint64_t (xdrs, &objp->memory))
                  return FALSE;
          if (!xdr_u_short (xdrs, &objp->nr_virt_cpu))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->cpu_time))
+         if (!xdr_uint64_t (xdrs, &objp->cpu_time))
                  return FALSE;
         return TRUE;
 }
@@ -908,11 +908,11 @@ xdr_remote_domain_migrate_prepare_args (
 
          if (!xdr_remote_string (xdrs, &objp->uri_in))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->flags))
+         if (!xdr_uint64_t (xdrs, &objp->flags))
                  return FALSE;
          if (!xdr_remote_string (xdrs, &objp->dname))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->resource))
+         if (!xdr_uint64_t (xdrs, &objp->resource))
                  return FALSE;
         return TRUE;
 }
@@ -940,11 +940,11 @@ xdr_remote_domain_migrate_perform_args (
                  return FALSE;
          if (!xdr_remote_nonnull_string (xdrs, &objp->uri))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->flags))
+         if (!xdr_uint64_t (xdrs, &objp->flags))
                  return FALSE;
          if (!xdr_remote_string (xdrs, &objp->dname))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->resource))
+         if (!xdr_uint64_t (xdrs, &objp->resource))
                  return FALSE;
         return TRUE;
 }
@@ -960,7 +960,7 @@ xdr_remote_domain_migrate_finish_args (X
                  return FALSE;
          if (!xdr_remote_nonnull_string (xdrs, &objp->uri))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->flags))
+         if (!xdr_uint64_t (xdrs, &objp->flags))
                  return FALSE;
         return TRUE;
 }
@@ -980,11 +980,11 @@ xdr_remote_domain_migrate_prepare2_args 
 
          if (!xdr_remote_string (xdrs, &objp->uri_in))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->flags))
+         if (!xdr_uint64_t (xdrs, &objp->flags))
                  return FALSE;
          if (!xdr_remote_string (xdrs, &objp->dname))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->resource))
+         if (!xdr_uint64_t (xdrs, &objp->resource))
                  return FALSE;
          if (!xdr_remote_nonnull_string (xdrs, &objp->dom_xml))
                  return FALSE;
@@ -1014,7 +1014,7 @@ xdr_remote_domain_migrate_finish2_args (
                  return FALSE;
          if (!xdr_remote_nonnull_string (xdrs, &objp->uri))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->flags))
+         if (!xdr_uint64_t (xdrs, &objp->flags))
                  return FALSE;
          if (!xdr_int (xdrs, &objp->retcode))
                  return FALSE;
@@ -1798,11 +1798,11 @@ xdr_remote_storage_pool_get_info_ret (XD
 
          if (!xdr_u_char (xdrs, &objp->state))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->capacity))
+         if (!xdr_uint64_t (xdrs, &objp->capacity))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->allocation))
+         if (!xdr_uint64_t (xdrs, &objp->allocation))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->available))
+         if (!xdr_uint64_t (xdrs, &objp->available))
                  return FALSE;
         return TRUE;
 }
@@ -2000,9 +2000,9 @@ xdr_remote_storage_vol_get_info_ret (XDR
 
          if (!xdr_char (xdrs, &objp->type))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->capacity))
+         if (!xdr_uint64_t (xdrs, &objp->capacity))
                  return FALSE;
-         if (!xdr_u_quad_t (xdrs, &objp->allocation))
+         if (!xdr_uint64_t (xdrs, &objp->allocation))
                  return FALSE;
         return TRUE;
 }
Index: qemud/remote_protocol.h
===================================================================
RCS file: /data/cvs/libvirt/qemud/remote_protocol.h,v
retrieving revision 1.26
diff -u -p -r1.26 remote_protocol.h
--- qemud/remote_protocol.h	17 Dec 2008 17:23:21 -0000	1.26
+++ qemud/remote_protocol.h	28 Jan 2009 12:31:00 -0000
@@ -3,8 +3,8 @@
  * It was generated using rpcgen.
  */
 
-#ifndef _REMOTE_PROTOCOL_H_RPCGEN
-#define _REMOTE_PROTOCOL_H_RPCGEN
+#ifndef _RP_H_RPCGEN
+#define _RP_H_RPCGEN
 
 #include <rpc/rpc.h>
 
@@ -107,7 +107,7 @@ typedef enum remote_auth_type remote_aut
 struct remote_vcpu_info {
         u_int number;
         int state;
-        u_quad_t cpu_time;
+        uint64_t cpu_time;
         int cpu;
 };
 typedef struct remote_vcpu_info remote_vcpu_info;
@@ -117,8 +117,8 @@ struct remote_sched_param_value {
         union {
                 int i;
                 u_int ui;
-                quad_t l;
-                u_quad_t ul;
+                int64_t l;
+                uint64_t ul;
                 double d;
                 int b;
         } remote_sched_param_value_u;
@@ -153,7 +153,7 @@ struct remote_get_type_ret {
 typedef struct remote_get_type_ret remote_get_type_ret;
 
 struct remote_get_version_ret {
-        quad_t hv_ver;
+        int64_t hv_ver;
 };
 typedef struct remote_get_version_ret remote_get_version_ret;
 
@@ -179,7 +179,7 @@ typedef struct remote_get_max_vcpus_ret 
 
 struct remote_node_get_info_ret {
         char model[32];
-        quad_t memory;
+        int64_t memory;
         int cpus;
         int mhz;
         int nodes;
@@ -203,13 +203,13 @@ typedef struct remote_node_get_cells_fre
 struct remote_node_get_cells_free_memory_ret {
         struct {
                 u_int freeMems_len;
-                quad_t *freeMems_val;
+                int64_t *freeMems_val;
         } freeMems;
 };
 typedef struct remote_node_get_cells_free_memory_ret remote_node_get_cells_free_memory_ret;
 
 struct remote_node_get_free_memory_ret {
-        quad_t freeMem;
+        int64_t freeMem;
 };
 typedef struct remote_node_get_free_memory_ret remote_node_get_free_memory_ret;
 
@@ -254,11 +254,11 @@ struct remote_domain_block_stats_args {
 typedef struct remote_domain_block_stats_args remote_domain_block_stats_args;
 
 struct remote_domain_block_stats_ret {
-        quad_t rd_req;
-        quad_t rd_bytes;
-        quad_t wr_req;
-        quad_t wr_bytes;
-        quad_t errs;
+        int64_t rd_req;
+        int64_t rd_bytes;
+        int64_t wr_req;
+        int64_t wr_bytes;
+        int64_t errs;
 };
 typedef struct remote_domain_block_stats_ret remote_domain_block_stats_ret;
 
@@ -269,21 +269,21 @@ struct remote_domain_interface_stats_arg
 typedef struct remote_domain_interface_stats_args remote_domain_interface_stats_args;
 
 struct remote_domain_interface_stats_ret {
-        quad_t rx_bytes;
-        quad_t rx_packets;
-        quad_t rx_errs;
-        quad_t rx_drop;
-        quad_t tx_bytes;
-        quad_t tx_packets;
-        quad_t tx_errs;
-        quad_t tx_drop;
+        int64_t rx_bytes;
+        int64_t rx_packets;
+        int64_t rx_errs;
+        int64_t rx_drop;
+        int64_t tx_bytes;
+        int64_t tx_packets;
+        int64_t tx_errs;
+        int64_t tx_drop;
 };
 typedef struct remote_domain_interface_stats_ret remote_domain_interface_stats_ret;
 
 struct remote_domain_block_peek_args {
         remote_nonnull_domain dom;
         remote_nonnull_string path;
-        u_quad_t offset;
+        uint64_t offset;
         u_int size;
         u_int flags;
 };
@@ -299,7 +299,7 @@ typedef struct remote_domain_block_peek_
 
 struct remote_domain_memory_peek_args {
         remote_nonnull_domain dom;
-        u_quad_t offset;
+        uint64_t offset;
         u_int size;
         u_int flags;
 };
@@ -414,19 +414,19 @@ struct remote_domain_get_max_memory_args
 typedef struct remote_domain_get_max_memory_args remote_domain_get_max_memory_args;
 
 struct remote_domain_get_max_memory_ret {
-        u_quad_t memory;
+        uint64_t memory;
 };
 typedef struct remote_domain_get_max_memory_ret remote_domain_get_max_memory_ret;
 
 struct remote_domain_set_max_memory_args {
         remote_nonnull_domain dom;
-        u_quad_t memory;
+        uint64_t memory;
 };
 typedef struct remote_domain_set_max_memory_args remote_domain_set_max_memory_args;
 
 struct remote_domain_set_memory_args {
         remote_nonnull_domain dom;
-        u_quad_t memory;
+        uint64_t memory;
 };
 typedef struct remote_domain_set_memory_args remote_domain_set_memory_args;
 
@@ -437,10 +437,10 @@ typedef struct remote_domain_get_info_ar
 
 struct remote_domain_get_info_ret {
         u_char state;
-        u_quad_t max_mem;
-        u_quad_t memory;
+        uint64_t max_mem;
+        uint64_t memory;
         u_short nr_virt_cpu;
-        u_quad_t cpu_time;
+        uint64_t cpu_time;
 };
 typedef struct remote_domain_get_info_ret remote_domain_get_info_ret;
 
@@ -475,9 +475,9 @@ typedef struct remote_domain_dump_xml_re
 
 struct remote_domain_migrate_prepare_args {
         remote_string uri_in;
-        u_quad_t flags;
+        uint64_t flags;
         remote_string dname;
-        u_quad_t resource;
+        uint64_t resource;
 };
 typedef struct remote_domain_migrate_prepare_args remote_domain_migrate_prepare_args;
 
@@ -497,9 +497,9 @@ struct remote_domain_migrate_perform_arg
                 char *cookie_val;
         } cookie;
         remote_nonnull_string uri;
-        u_quad_t flags;
+        uint64_t flags;
         remote_string dname;
-        u_quad_t resource;
+        uint64_t resource;
 };
 typedef struct remote_domain_migrate_perform_args remote_domain_migrate_perform_args;
 
@@ -510,7 +510,7 @@ struct remote_domain_migrate_finish_args
                 char *cookie_val;
         } cookie;
         remote_nonnull_string uri;
-        u_quad_t flags;
+        uint64_t flags;
 };
 typedef struct remote_domain_migrate_finish_args remote_domain_migrate_finish_args;
 
@@ -521,9 +521,9 @@ typedef struct remote_domain_migrate_fin
 
 struct remote_domain_migrate_prepare2_args {
         remote_string uri_in;
-        u_quad_t flags;
+        uint64_t flags;
         remote_string dname;
-        u_quad_t resource;
+        uint64_t resource;
         remote_nonnull_string dom_xml;
 };
 typedef struct remote_domain_migrate_prepare2_args remote_domain_migrate_prepare2_args;
@@ -544,7 +544,7 @@ struct remote_domain_migrate_finish2_arg
                 char *cookie_val;
         } cookie;
         remote_nonnull_string uri;
-        u_quad_t flags;
+        uint64_t flags;
         int retcode;
 };
 typedef struct remote_domain_migrate_finish2_args remote_domain_migrate_finish2_args;
@@ -1002,9 +1002,9 @@ typedef struct remote_storage_pool_get_i
 
 struct remote_storage_pool_get_info_ret {
         u_char state;
-        u_quad_t capacity;
-        u_quad_t allocation;
-        u_quad_t available;
+        uint64_t capacity;
+        uint64_t allocation;
+        uint64_t available;
 };
 typedef struct remote_storage_pool_get_info_ret remote_storage_pool_get_info_ret;
 
@@ -1115,8 +1115,8 @@ typedef struct remote_storage_vol_get_in
 
 struct remote_storage_vol_get_info_ret {
         char type;
-        u_quad_t capacity;
-        u_quad_t allocation;
+        uint64_t capacity;
+        uint64_t allocation;
 };
 typedef struct remote_storage_vol_get_info_ret remote_storage_vol_get_info_ret;
 
@@ -1793,4 +1793,4 @@ extern bool_t xdr_remote_message_header 
 }
 #endif
 
-#endif /* !_REMOTE_PROTOCOL_H_RPCGEN */
+#endif /* !_RP_H_RPCGEN */
Index: qemud/rpcgen_fix.pl
===================================================================
RCS file: /data/cvs/libvirt/qemud/rpcgen_fix.pl,v
retrieving revision 1.4
diff -u -p -r1.4 rpcgen_fix.pl
--- qemud/rpcgen_fix.pl	6 Jan 2009 18:32:03 -0000	1.4
+++ qemud/rpcgen_fix.pl	28 Jan 2009 12:31:00 -0000
@@ -26,6 +26,14 @@ while (<>) {
 
     s/\t/        /g;
 
+    # Portability for Solaris RPC
+    s/u_quad_t/uint64_t/g;
+    s/quad_t/int64_t/g;
+    s/xdr_u_quad_t/xdr_uint64_t/g;
+    s/xdr_quad_t/xdr_int64_t/g;
+    s/IXDR_GET_LONG/IXDR_GET_INT32/g;
+    s,#include "\./remote_protocol\.h",#include "remote_protocol.h",;
+
     if (m/^}/) {
 	$in_function = 0;
 


-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list