mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-21 19:02:25 +00:00
admin: Enable usage of typed parameters
Make all relevant changes to admin protocol, in order to achieve $(subj) Signed-off-by: Erik Skultety <eskultet@redhat.com>
This commit is contained in:
parent
f5d9c5d00c
commit
84d21591a8
2
cfg.mk
2
cfg.mk
@ -1248,7 +1248,7 @@ exclude_file_name_regexp--sc_prohibit_include_public_headers_brackets = \
|
||||
^(tools/|examples/|include/libvirt/(virterror|libvirt(-(admin|qemu|lxc))?)\.h$$)
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_int_ijk = \
|
||||
^(src/remote_protocol-structs|src/remote/remote_protocol.x|cfg.mk|include/)$
|
||||
^(src/remote_protocol-structs|src/remote/remote_protocol.x|cfg.mk|include/|src/admin_protocol-structs|src/admin/admin_protocol.x)$
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_getenv = \
|
||||
^tests/.*\.[ch]$$
|
||||
|
@ -22,6 +22,7 @@
|
||||
* Author: Martin Kletzander <mkletzan@redhat.com>
|
||||
*/
|
||||
|
||||
%#include <libvirt/libvirt-admin.h>
|
||||
%#include "virxdrdefs.h"
|
||||
|
||||
/*----- Data types. -----*/
|
||||
@ -41,12 +42,35 @@ typedef string admin_nonnull_string<ADMIN_STRING_MAX>;
|
||||
/* A long string, which may be NULL. */
|
||||
typedef admin_nonnull_string *admin_string;
|
||||
|
||||
union admin_typed_param_value switch (int type) {
|
||||
case VIR_TYPED_PARAM_INT:
|
||||
int i;
|
||||
case VIR_TYPED_PARAM_UINT:
|
||||
unsigned int ui;
|
||||
case VIR_TYPED_PARAM_LLONG:
|
||||
hyper l;
|
||||
case VIR_TYPED_PARAM_ULLONG:
|
||||
unsigned hyper ul;
|
||||
case VIR_TYPED_PARAM_DOUBLE:
|
||||
double d;
|
||||
case VIR_TYPED_PARAM_BOOLEAN:
|
||||
int b;
|
||||
case VIR_TYPED_PARAM_STRING:
|
||||
admin_nonnull_string s;
|
||||
};
|
||||
|
||||
struct admin_typed_param {
|
||||
admin_nonnull_string field;
|
||||
admin_typed_param_value value;
|
||||
};
|
||||
|
||||
/* A server which may NOT be NULL */
|
||||
struct admin_nonnull_server {
|
||||
admin_nonnull_string name;
|
||||
};
|
||||
|
||||
/*----- Protocol. -----*/
|
||||
|
||||
struct admin_connect_open_args {
|
||||
unsigned int flags;
|
||||
};
|
||||
|
@ -1,4 +1,29 @@
|
||||
/* -*- c -*- */
|
||||
enum {
|
||||
VIR_TYPED_PARAM_INT = 1,
|
||||
VIR_TYPED_PARAM_UINT = 2,
|
||||
VIR_TYPED_PARAM_LLONG = 3,
|
||||
VIR_TYPED_PARAM_ULLONG = 4,
|
||||
VIR_TYPED_PARAM_DOUBLE = 5,
|
||||
VIR_TYPED_PARAM_BOOLEAN = 6,
|
||||
VIR_TYPED_PARAM_STRING = 7,
|
||||
};
|
||||
struct admin_typed_param_value {
|
||||
int type;
|
||||
union {
|
||||
int i;
|
||||
u_int ui;
|
||||
int64_t l;
|
||||
uint64_t ul;
|
||||
double d;
|
||||
int b;
|
||||
admin_nonnull_string s;
|
||||
} admin_typed_param_value_u;
|
||||
};
|
||||
struct admin_typed_param {
|
||||
admin_nonnull_string field;
|
||||
admin_typed_param_value value;
|
||||
};
|
||||
struct admin_nonnull_server {
|
||||
admin_nonnull_string name;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user