On 20.05.2015 07:19, Martin Kletzander wrote:
For now there are only CONNECT_OPEN and CONNECT_CLOSE procedures.
Signed-off-by: Martin Kletzander <mkletzan(a)redhat.com>
---
.gitignore | 1 +
src/Makefile.am | 13 +++++++++-
src/admin/admin_protocol.x | 65 ++++++++++++++++++++++++++++++++++++++++++++++
src/admin_protocol-structs | 9 +++++++
4 files changed, 87 insertions(+), 1 deletion(-)
create mode 100644 src/admin/admin_protocol.x
create mode 100644 src/admin_protocol-structs
diff --git a/.gitignore b/.gitignore
index 1a5cf8e..b60c162 100644
--- a/.gitignore
+++ b/.gitignore
@@ -111,6 +111,7 @@
/src/access/viraccessapichecklxc.h
/src/access/viraccessapicheckqemu.c
/src/access/viraccessapicheckqemu.h
+/src/admin/admin_protocol.[ch]
/src/esx/*.generated.*
/src/hyperv/*.generated.*
/src/libvirt*.def
diff --git a/src/Makefile.am b/src/Makefile.am
index 7e95cf1..d625874 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -392,6 +392,16 @@ REMOTE_DRIVER_SOURCES = \
EXTRA_DIST += $(REMOTE_DRIVER_PROTOCOL) \
$(REMOTE_DRIVER_GENERATED)
+ADMIN_PROTOCOL = $(srcdir)/admin/admin_protocol.x
+
+ADMIN_PROTOCOL_GENERATED = \
+ admin/admin_protocol.c \
+ admin/admin_protocol.h
+
+EXTRA_DIST += $(ADMIN_PROTOCOL) $(ADMIN_PROTOCOL_GENERATED)
+BUILT_SOURCES += $(ADMIN_PROTOCOL_GENERATED)
+MAINTAINERCLEANFILES += $(ADMIN_PROTOCOL_GENERATED)
+
# Ensure that we don't change the struct or member names or member ordering
# in remote_protocol.x The embedded perl below needs a few comments, and
# presumes you know what pdwtags output looks like:
@@ -2093,7 +2103,8 @@ RPC_PROBE_FILES = $(srcdir)/rpc/virnetprotocol.x \
$(srcdir)/remote/lxc_protocol.x \
$(srcdir)/remote/qemu_protocol.x \
$(srcdir)/lxc/lxc_monitor_protocol.x \
- $(srcdir)/locking/lock_protocol.x
+ $(srcdir)/locking/lock_protocol.x \
+ $(srcdir)/admin/admin_protocol.x
libvirt_functions.stp: $(RPC_PROBE_FILES) $(srcdir)/rpc/gensystemtap.pl
$(AM_V_GEN)$(PERL) -w $(srcdir)/rpc/gensystemtap.pl $(RPC_PROBE_FILES) > $@
diff --git a/src/admin/admin_protocol.x b/src/admin/admin_protocol.x
new file mode 100644
index 0000000..63f6a53
--- /dev/null
+++ b/src/admin/admin_protocol.x
@@ -0,0 +1,65 @@
+/* -*- c -*-
+ * admin_protocol.x: private protocol for communicating between
+ * remote_internal driver and libvirtd. This protocol is
+ * internal and may change at any time.
+ *
+ * Copyright (C) 2014-2015 Red Hat, Inc.
2014?
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <
http://www.gnu.org/licenses/>.
+ *
+ * Author: Martin Kletzander <mkletzan(a)redhat.com>
+ */
+
+%#include "remote_protocol.h"
+
+
+/*----- Protocol. -----*/
+struct admin_connect_open_args {
+ unsigned int flags;
+};
+
+
+/* Define the program number, protocol version and procedure numbers here. */
+const ADMIN_PROGRAM = 0x06900690;
+const ADMIN_PROTOCOL_VERSION = 1;
+
+enum admin_procedure {
+ /* Each function must be preceded by a comment providing one or
+ * more annotations:
+ *
+ * - @generate: none|client|server|both
+ *
+ * Whether to generate the dispatch stubs for the server
+ * and/or client code.
+ *
+ * - @readstream: paramnumber
+ * - @writestream: paramnumber
+ *
+ * The @readstream or @writestream annotations let daemon and src/remote
+ * create a stream. The direction is defined from the src/remote point
+ * of view. A readstream transfers data from daemon to src/remote. The
+ * <paramnumber> specifies at which offset the stream parameter is inserted
+ * in the function parameter list.
+ */
+ /**
+ * @generate: client
+ */
+ ADMIN_PROC_CONNECT_OPEN = 1,
+
+ /**
+ * @generate: client
+ */
+ ADMIN_PROC_CONNECT_CLOSE = 2
+};
diff --git a/src/admin_protocol-structs b/src/admin_protocol-structs
new file mode 100644
index 0000000..bc1d489
--- /dev/null
+++ b/src/admin_protocol-structs
@@ -0,0 +1,9 @@
+/* -*- c -*- */
+struct admin_connect_open_args {
+ unsigned int flags;
+};
+
+enum admin_procedure {
+ ADMIN_PROC_CONNECT_OPEN = 1,
+ ADMIN_PROC_CONNECT_CLOSE = 2,
+};
ACK
Michal